一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种异常访问检测方法、装置、电子设备及存储介质与流程

2022-06-22 19:10:45 来源:中国专利 TAG:


1.本发明涉及计算机技术领域,尤其涉及一种异常访问检测方法、装置、电子设备及存储介质。


背景技术:

2.相关技术在进行异常访问检测时,通常是基于参数、请求字段和内容等方向进行异常挖掘。但是应用程序编程接口(api,application programming interface)逻辑缺陷仅用上述异常检测方法难以有效检测出。


技术实现要素:

3.为了解决上述问题,本发明实施例提供了一种异常访问检测方法、装置、电子设备及存储介质,以至少解决相关技术难以检测出api逻辑缺陷的问题。
4.本发明的技术方案是这样实现的:
5.第一方面,本发明实施例提供了一种异常访问检测方法,异常访问检测方法包括:
6.确定第一应用程序编程接口api流量对应的至少一个节点;所述节点表征第一api流量的网络地址;
7.获取所述至少一个节点的每个节点对应的节点信息;
8.检测各个节点信息之间是否满足第一行为关系图对应的访问关系,得到检测结果;所述检测结果表征所述第一api流量是否为异常访问流量;所述至少一个节点为所述第一行为关系图中的节点;所述第一行为关系图的边表征该边对应的两个节点之间的访问关系。
9.在上述方案中,所述检测各个节点信息之间是否满足第一行为关系图对应的访问关系,得到检测结果,包括:
10.将各个节点信息分别与所述第一行为关系图中对应的节点的特征信息进行匹配;
11.若各个节点信息都与所述第一行为关系图中对应的节点的特征信息匹配成功,得到所述第一api流量为正常访问流量的检测结果;
12.若存在节点信息与所述第一行为关系图中对应的节点的特征信息匹配失败,得到所述第一api流量为异常访问流量的检测结果。
13.第二方面,本发明实施例提供了一种行为关系图的构建方法,行为关系图的构建方法包括:
14.获取至少两个第二api流量的每个第二api流量的网络地址;
15.基于每个第二api流量的网络地址构建第一行为关系图;其中,所述第一行为关系图的节点表征第二api流量的网络地址,所述第一行为关系图的边表征该边对应的两个节点之间的访问关系;所述第一行为关系图用于执行第一方面提供的异常访问检测方法。
16.在上述方案中,所述基于每个第二api流量的网络地址构建第一行为关系图,包括:
17.对所述至少两个第二api流量进行解析,得到每个第二api流量中的设定字段;所述设定字段表征对应的第二api流量的上下文信息;
18.基于所述设定字段,确定所述第一行为关系图中具有直接访问关系的节点,并在具有直接访问关系的节点之间进行连线,得到所述第一行为关系图的边。
19.在上述方案中,在基于每个第二api流量的网络地址构建第一行为关系图时,所述方法包括:
20.获取所述第一行为关系图中的边的信息;所述边的信息表征边对应的节点之间的访问概率;
21.基于所述第一行为关系图中的边的信息,更新所述第一行为关系图的各个节点的特征信息。
22.在上述方案中,在基于至少两个第二api流量构建第一行为关系图之后,所述方法还包括:
23.获取所述第一行为关系图的各个节点的设定访问参数的参数值;
24.基于各个节点的设定访问参数的参数值,确定所述第一行为关系图中表征低频访问行为的相连节点;
25.删除所述第一行为关系图中表征低频访问行为的相连节点之间的连线。
26.第三方面,本发明实施例提供了一种异常访问检测装置,该异常访问检测装置包括:
27.第一确定模块,用于确定第一api流量对应的至少一个节点;所述节点表征第一api流量对应的网络地址;
28.第一获取模块,用于获取所述至少一个节点的每个节点对应的节点信息;
29.检测模块,用于检测各个节点信息之间是否满足第一行为关系图对应的访问关系,得到检测结果;所述检测结果表征所述第一api流量是否为异常访问流量;所述至少一个节点为所述第一行为关系图中的节点;所述第一行为关系图的任一边表征该边对应的两个节点之间的访问关系。
30.第四方面,本发明实施例提供了一种行为关系图的构建装置,该装置包括:
31.第二获取模块,用于获取至少两个第二api流量的每个第二api流量的网络地址;
32.构建模块,用于基于每个第二api流量的网络地址构建第一行为关系图;其中,所述第一行为关系图的节点表征第二api流量的网络地址,所述第一行为关系图的边表征该边对应的两个节点之间的访问关系;所述第一行为关系图用于执行本发明实施例第一方面提供的异常访问检测方法。
33.第五方面,本发明实施例提供了一种电子设备,包括处理器和存储器,所述处理器和存储器相互连接,其中,所述存储器用于存储计算机程序,所述计算机程序包括程序指令,所述处理器被配置用于调用所述程序指令,执行本发明实施例第一方面提供的异常访问检测方法的步骤或第二方面提供的行为关系图的构建方法。
34.第六方面,本发明实施例提供了一种计算机可读存储介质,包括:所述计算机可读存储介质存储有计算机程序。所述计算机程序被处理器执行时实现如本发明实施例第一方面提供的异常访问检测方法的步骤或第二方面提供的行为关系图的构建方法。
35.本发明实施例通过确定第一api流量对应的至少一个节点,获取每个节点对应的
节点信息,检测各个节点信息之间是否满足第一行为关系图对应的访问关系,得到检测结果,检测结果表征第一api流量是否为异常访问流量。其中,节点表征第一api流量的网络地址,至少一个节点为第一行为关系图中的节点,第一行为关系图的任一边表征该边对应的两个节点之间的访问关系。本发明实施例通过第一行为关系图对应的访问关系,可以有效识别api流量的逻辑错误,实现异常状态下访问限制性的功能和敏感信息的行为检测,例如可以识别重放攻击和绕过攻击等攻击行为,弥补了当前市场上api逻辑缺陷检测缺失的问题。
附图说明
36.图1是本发明实施例提供的一种行为关系图的构建方法的实现流程示意图;
37.图2是本发明实施例提供的另一种行为关系图的构建方法的实现流程示意图;
38.图3是本发明实施例提供的另一种行为关系图的构建方法的实现流程示意图;
39.图4是本发明实施例提供的另一种行为关系图的构建方法的实现流程示意图;
40.图5是本发明实施例提供的一种异常访问检测方法的实现流程示意图;
41.图6是本发明实施例提供的一种第一行为关系图的示意图;
42.图7是本发明实施例提供的一种异常检测流程的示意图;
43.图8是本发明实施例提供的一种异常访问检测装置的示意图;
44.图9是本发明实施例提供的一种行为关系图的构建装置的示意图;
45.图10是本发明一实施例提供的电子设备的示意图。
具体实施方式
46.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
47.万维网(web,world wide web)api是网络应用程序接口,可以对接各种客户端(例如浏览器、移动设备),包含了广泛的功能,网络应用通过api接口,可以实现存储服务、消息服务、计算服务、信息服务、搜索服务等功能,利用这些功能可以开发出各种各样的web应用。
48.随着webapi业务蓬勃发展,webapi安全问题也得到越来越多关注。攻击者可以通过webapi对网站进行篡改数据、敏感信息获取和非法操作等行为。目前,业内大多api安全解决方案关注显式的输入输出攻击(例如sql注入、跨站脚本(xss,cross-site scripting)、文件上传等),从参数、请求字段和内容等方向进行异常挖掘。但是应用程序编程接口(api,application programming interface)逻辑缺陷,及其引起的应用程序在不适当的状态下访问限制性的功能和敏感信息的问题至关重要,例如,攻击者跳过登陆接口直接访问业务数据。目前,业内现有的解决方案还不具备api逻辑缺陷的检出能力。
49.针对上述相关技术的缺点,本发明实施例提供了一种异常访问检测方法,能够有效检出api逻辑缺陷。为了说明本发明所述的技术方案,下面通过具体实施例来进行说明。
50.本发明实施例的关键点在于构建节点之间的访问关系,这种访问关系可以用图、
树和链表等数据结构进行表示。图、树和链表都是基于节点之间的连接关系构成的,在一些情况下可以相互装换,例如,树是有向无环的特殊的图,但是图不一定是树。由于访问关系是可以包括循环的,而树是有向无环的。而且链表是通过指针来关联下一个节点的,相比指针,图的边更能直观展示节点之间的连接关系,所以本技术一实施例采用图来构建节点之间的访问关系。
51.在一实施例中,本技术基于第一行为关系图进行异常访问检测,第一行为关系图基于非攻击行为下的用户行为数据学习得到。图是连接数据网络结构的一种常用表示形式,图学习即对图进行机器学习,基于图算法可以有效学习图中节点距离,节点间关系等,实现事物间关系特征表达学习。图通常由两个集合定义,即节点集和边集。节点表示图形中的实体,而边表示这些实体之间的关系。
52.参考图1,图1是本发明实施例提供的一种行为关系图的构建方法的实现流程示意图,所述行为关系图的构建方法的执行主体可以是台式电脑、笔记本电脑、服务器等电子设备。其中,所述服务器可以是实体的设备,也可以是部署在云端的虚拟化设备。行为关系图的构建方法包括:
53.s101,获取至少两个第二api流量的每个第二api流量的网络地址。
54.这里,至少两个第二api流量都是历史网络流量,并且都是同一个应用软件对应的api流量,比如,至少两个第二api流量可以是淘宝这个域下某个30天内产生到的api流量。
55.在一实施例中,在获取至少两个第二api流量的每个第二api流量的网络地址之前,所述方法还包括:
56.基于设定过滤方法对历史网络流量进行过滤,过滤得到所述至少两个第二api流量。
57.设定过滤方法至少包括以下任意一项:
58.host聚类;
59.参数过滤;
60.请求方法过滤;
61.响应码过滤。
62.这里,至少两个第二api流量是从历史网络流量中过滤得到的,比如可以从终端历史一个月的访问流量中,过滤得到至少两个第二api流量。终端的历史网络流量包含各种类型的流量,本发明实施例只需要api流量,可以通过host聚类、参数过滤、请求方法过滤和响应码过滤等过滤方法,从历史网络流量中过滤提取api流量。
63.对历史网络流量进行host聚类,指将历史网络流量中与host文件中的ip地址相关联的api数据聚集在一起,作为至少两个第二api流量。hosts是一个没有扩展名的系统文件,其作用是将一些常用的网址域名与其对应的ip地址建立一个关联数据库,当用户在浏览器中输入一个需要登录的网址时,系统会首先自动从hosts文件中寻找对应的ip地址,一旦找到,系统会立即打开对应网页。
64.对历史网络流量进行参数过滤,过滤出包含设定参数的网络流量,作为至少两个第二api流量。参数指api流量中的参数,例如可以是域名、用户名等参数。
65.对历史网络流量进行请求方法过滤,例如将历史网络流量中请求方法为get方法的网络流量过滤出来,作为至少两个第二api流量。
66.对历史网络流量进行响应码过滤,例如,过滤出500、501等5开头的响应码流量,作为至少两个第二api流量。
67.在一实施例中,所述第二api流量表征为表现层状态转移(rest,representational state transfer)api流量。
68.在一实施例中,本发明实施例只从历史网络流量中提取restapi流量,根据设定好的restapi传参格式和规范要求,提取restapi流量。由于restapi可能存在某一级路径为可变参数,例如,baiduv1.com和baiduv2.com都指向同一个restapi,因此还需要识别可变参数部分,将指向相同restapi的api流量进行合并。
69.在一实施例中,至少两个第二api流量都是正常api流量。
70.在实际应用中,可以将提取出的api流量保存为api审计日志。
71.对至少两个第二api流量进行解析,获取每个第二api流量中的网络地址,这里网络地址可以指统一资源定位系统(url,uniform resource locator)。
72.s102,基于每个第二api流量的网络地址构建第一行为关系图;其中,所述第一行为关系图的节点表征第二api流量的网络地址,所述第一行为关系图的边表征该边对应的两个节点之间的访问关系。
73.在网络地址为url的情况下,以url作为图节点,url间访问关系作为边,含有直接访问关系的节点相连接,得到第一行为关系图的初始结构。第一行为关系图的结构由节点v集和边e集构成,因此图可以表示成g=(v,e)。
74.例如,用户从第一url页面跳转到第二url页面,这是一种url间访问关系。第一行为关系图可以将具有非直接访问关系的节点相关联,例如,用户从第一url页面跳转到第二url页面,再从第二url页面跳转到第三url页面,其中,第一url节点和第三url节点是非直接访问关系。
75.参考图2,在一实施例中,所述基于每个第二api流量的网络地址构建第一行为关系图,包括:
76.s201,对所述至少两个第二api流量进行解析,得到每个第二api流量中的设定字段;所述设定字段表征对应的第二api流量的上下文信息。
77.通过解析第二api流量中的请求头、请求体、响应头和响应体,获取其中的设定字段,设定字段表示第二api流量的上下文信息,上下文信息表示当前访问行为的上一个访问行为或下一个访问行为。
78.比如,设定字段可以是“referer”或“location”,其中,referer字段位于请求头中,location字段位于响应体中。referer字段表示当前访问行为的上一个访问行为,例如在购物场景下,购买商品的上一个访问行为是浏览商品信息,则referer字段则带有浏览商品信息的api信息。
79.s202,基于所述设定字段,确定所述第一行为关系图中具有直接访问关系的节点,并在具有直接访问关系的节点之间进行连线,得到所述第一行为关系图的边。
80.通过第二api流量中的设定字段,可以将不同的第二api流量(url)进行关联,从而可以得知第一行为关系图中具有直接访问关系的节点,在具有直接访问关系的节点之间使用带有方向的线条进行连线,得到第一行为关系图的边。
81.这里,第一行为关系图可以是有向图,使用带箭头的连线连接图中的节点,箭头方
向表示节点之间的访问关系,比如a节点与b节点之间的连线,箭头方向是由a节点指向b节点,说明是从a节点访问的b节点。
82.图中的度:所谓节点的度(degree),就是指和该节点相关联的边数。在有向图中,度又分为入度和出度。入度就是:有向图的某个节点作为终点的次数和。出度就是:有向图的某个顶点作为起点的次数和。
83.图有多种存储方式,第一种存储方式为存储为边列表;第二种存储方式使用邻接矩阵;第三种存储方式使用邻接列表。
84.在一实施例中,所述基于每个第二api流量的网络地址构建第一行为关系图,包括:
85.基于所述至少两个第二api流量,确定所述第一行为关系图中的节点之间的访问关系;
86.基于所述节点之间的访问关系,确定所述第一行为关系图中的每个节点的特征信息;所述特征信息表征对应的节点的节点类型。
87.这里,节点的特征信息指节点类型。在其他实施例中,节点特征还可以包括更多信息,例如还可以包括图节点间访问频率、图节点间访问概率、访问ip个数、访问时间和域内访问总次数等信息。
88.在本发明实施例中,节点类型可以包括:仅可被动访问节点、仅可被访问一次节点、可被多次访问节点、重要节点、业务必经节点、业务起始节点或业务结束节点这七类节点。
89.通过每个第二api流量,确定第一行为关系图中的节点之间的访问关系。节点之间的访问关系包括:节点被访问的次数、节点主动访问其他节点的次数、节点被访问的时间、节点主动访问其他节点的时间和访问顺序等信息。根据第二api流量中的设定字段,可以将节点进行关联,从而得到完整的业务流程。
90.根据节点之间的访问关系,确定第一行为关系图中的每个节点的节点类型。
91.例如,如果某节点主动访问其他节点的次数为0,而被其他节点访问的次数大于或等于2,则可以将该节点的节点类型确定为仅可被动访问节点。
92.如果某节点在每个业务流程中被访问的次数为1,则可以将该节点的节点类型确定为仅可被访问一次节点。
93.如果某节点在每个业务流程中被访问次数大于或等于2,则可以将该节点的节点类型确定为可被多次访问节点。
94.如果至少两个api流量构成的若干业务流程中,某节点都为其中的业务节点,则可以将该节点的节点类型确定为业务必经节点。
95.重要节点可以由用户人工设置,或者可以将业务必经节点确定为重要节点。
96.如果某节点被其他节点访问的次数为0,即该节点只有出度,没有入度,则可以确定该节点的节点类型是业务起始节点。
97.如果某节点主动访问其他节点的次数为0,即该节点只有入度,没有出度,则可以确定该节点的节点类型是业务结束节点。
98.第一行为关系图用于进行异常访问检测时,节点的特征信息可以作为异常访问行为的判断标准。例如,第一节点是仅可被访问一次节点,若当前访问行为短时间内重复访问
第一节点,则可以确定当前访问行为是异常访问行为。又例如,若第一节点是仅可被动访问节点,若第一节点主动访问了其他节点,则可以确定当前访问行为是异常访问行为。又例如,若第一节点是业务必经节点,但是当前访问行为没有访问过第一节点,则可以确定当前访问行为是异常访问行为。
99.参考图3,在一实施例中,在基于至少两个第二api流量构建第一行为关系图时,所述方法包括:
100.s301,获取所述第一行为关系图中的边的信息;所述边的信息表征边对应的节点之间的访问概率。
101.这里,第一行为关系图中的边的信息主要指边对应的2个节点之间的访问概率。例如,在第一行为关系图中,a节点直接访问了b节点和c节点,则a节点与b节点之间的访问概率=a节点访问b节点的次数/(a节点访问b节点的次数 a节点访问c节点的次数)。
102.s302,基于所述第一行为关系图中的边的信息,更新所述第一行为关系图的各个节点的特征信息。
103.将边的信息写入边对应的节点的特征信息中,边的信息可以在异常检测时作为辅助。在边的信息为节点间访问概率的情况下,第一行为关系图在检测出异常时,节点间访问概率可以作为异常结果的可信度。
104.例如,假设a节点-b节点-c节点是一条完整访问链路,a节点访问b节点的访问概率是70%,b节点访问c节点的访问概率是80%。这里,a节点访问b节点的访问概率=a节点访问b节点的次数/a节点访问所有节点的次数;b节点访问c节点的访问概率=b节点访问c节点的次数/b节点访问所有节点的次数。如果当前访问行为是a节点直接访问c节点,并没有访问中间的b节点,而如果b节点是业务必经节点,则可以有70%的可信度认为当前访问行为是异常访问行为。将这条完整访问链路中,最低的节点间访问概率作为异常检测结果的可信度。
105.参考图4,在一实施例中,在获取所述第一行为关系图的各个节点的设定访问参数的参数值之后,所述方法还包括:
106.s401,获取所述第一行为关系图的各个节点的设定访问参数的参数值。
107.这里,设定访问参数可以包括以下一项或多项:图节点间访问频率、图节点间访问概率、访问网际互连协议(ip,internet protocol)个数、访问时间和域内访问总次数。
108.通过解析至少两个第二api流量,可以得知第一行为关系图的各个节点之间的设定访问参数的参数值。
109.图节点间访问频率在上述实施例中有介绍如何计算,这里不再赘述。
110.统计每个节点直接访问其他节点的次数,将次数累加起来,就可以得到该节点的域内访问总次数。
111.节点在单位时间内访问其他节点的次数,称为图节点间访问频率。
112.s402,基于各个节点的设定访问参数的参数值,确定所述第一行为关系图中表征低频访问行为的相连节点。
113.例如,设定访问参数为图节点间访问频率的情况下,可以将图节点间访问频率小于设定值的相连节点确定为表征低频访问行为的相连节点。
114.s403,删除所述第一行为关系图中表征低频访问行为的相连节点之间的连线。
115.通过删除第一行为关系图中表征低频访问行为的相连节点之间的连线,过滤第一行为关系图中的低频访问行为,可以增加第一行为关系图的异常检测精度。
116.构建好的第一行为关系图可以用来检测异常访问流量,第一行为关系图在进行异常访问检测时,用于获取当前访问流量中的节点信息,判断节点信息是否满足第一行为关系图对应的访问关系。
117.参考图5,图5是本发明实施例提供的一种异常访问检测方法的实现流程示意图,所述异常访问检测方法可以由上述第一行为关系图执行,所述异常访问检测方法的物理执行主体可以是台式电脑、笔记本电脑等电子设备,第一行为关系图实现的功能可通过电子设备中的处理器实现。异常访问检测方法包括:
118.s501,确定第一api流量对应的至少一个节点;所述节点表征第一api流量的网络地址。
119.这里,第一api流量单可以指一条访问流量,也可以指一个业务访问流程对应的全部访问流量。例如,用户从登陆购物应用软件到下单成功,这一个业务访问流程所对应的访问流量都属于第一api流量。
120.第一api流量也可以指在设定时间段内接收到的所有访问流量,比如,将每隔10分钟内接受到的访问流量作为第一api流量。
121.这里,节点指第一api流量对应的网络地址,网络地址可以是url。第一api流量对应至少一个节点,例如,在重放攻击场景下,攻击者重复访问同一个url,则第一api流量对应一个节点。
122.s502,获取所述至少一个节点的每个节点对应的节点信息。
123.这里,节点信息可以包括节点访问其他节点的访问频率、访问次数、访问时间、访问ip个数等信息。节点信息具体包含哪些信息,本技术并不做限定。
124.例如,在重放攻击场景下,统计访问同一个url的访问次数,以及每一次访问的访问时间。又例如,在多节点访问场景下,记录每一个节点被访问的时间和被访问的次数,根据节点访问时间,可以得知多节点的访问顺序。
125.s503,检测各个节点信息之间是否满足第一行为关系图对应的访问关系,得到检测结果;所述检测结果表征所述第一api流量是否为异常访问流量;所述至少一个节点为所述第一行为关系图中的节点;述第一行为关系图的边表征该边对应的两个节点之间的访问关系。
126.第一行为关系图是从用户行为角度出发,根据用户与应用程序功能交互的网络轨迹,挖掘出用户正常的访问行为,抽象为图表示方式。第一行为关系图表示的是正常访问逻辑,第一行为关系图可以识别数据流中api逻辑异常。
127.第一行为关系图对应的访问关系,例如,第一行为关系图中a节点连接b节点,b节点连接c节点。连线的箭头方向为a指向b,b指向c。该访问关系表示a节点、b节点和c节点具有依赖关系,表示必须先基于a节点访问b节点,才能基于b节点访问c节点。如果a节点直接访问c节点,则不满足第一行为关系图对应的访问关系;或者a节点先访问c节点,c节点再访问b节点,也不满足第一行为关系图对应的访问关系。
128.在一实施例中,所述检测各个节点信息之间是否满足第一行为关系图对应的访问关系,得到检测结果,包括:
129.在各个节点信息之间满足所述第一行为关系图对应的访问关系的情况下,得到所述第一api流量为正常访问流量的检测结果;
130.在各个节点信息之间不满足所述第一行为关系图对应的访问关系的情况下,得到所述第一api流量为异常访问流量的检测结果。
131.这里,如果第一api流量只对应一个节点,则只需要判断这个节点是否满足第一行为关系图对应的访问关系。如果第一api流量对应至少两个节点,则需要分别判断各个节点信息之间是否满足第一行为关系图对应的访问关系。
132.第一api流量只对应一个节点的场景,例如在重放攻击场景下,第一行为关系图对应的访问关系限定a节点是仅可访问一次节点,如果a节点的节点信息表征第一api流量在短时间内多次重复访问了a节点,因此a节点的节点信息不满足第一行为关系图对应的访问关系,确定第一api流量是异常访问流量。
133.又例如,第一行为关系图对应的访问关系限定要先访问a节点,再访问b节点。但是通过a节点和b节点的节点信息,可以得知b节点的访问时间在a节点的访问时间之前,说明第一api流量先访问了b节点,再访问的a节点。因此a节点的节点信息和b节点的节点信息之间不满足第一行为关系图对应的访问关系,确定第一api流量是异常访问流量。
134.又例如,第一行为关系图对应的访问关系限定了访问顺序,必须先a节点访问b节点,然后b节点访问c节点。但是通过各个节点信息中的访问时间,可以得知第一api流量是a节点先访问c节点,再访问b节点。因此a节点、b节点和c节点的节点信息之间不满足第一行为关系图对应的访问关系,确定第一api流量是异常访问流量。
135.或者,第一api流量对应的节点并不在第一行为关系图中,说明第一api流量超出了访问权限,属于越权访问,确定第一api流量是异常访问流量。
136.在一实施例中,所述检测各个节点信息之间是否满足第一行为关系图对应的访问关系,得到检测结果,包括:
137.将各个节点信息分别与所述第一行为关系图中对应的节点的特征信息进行匹配。
138.若各个节点信息都与所述第一行为关系图中对应的节点的特征信息匹配成功,得到所述第一api流量为正常访问流量的检测结果。
139.若存在节点信息与所述第一行为关系图中对应的节点的特征信息匹配失败,得到所述第一api流量为异常访问流量的检测结果。
140.这里,每个节点都有对应的特征信息,特征信息可以包括:节点类型、图节点间访问频率、图节点间访问概率、图节点间访问顺序、访问ip个数、访问时间和域内访问总次数等信息。特征信息具体包含哪些信息,本技术并不做限定。
141.将节点信息与对应节点的特征信息进行匹配,例如,a节点的特征信息包括节点类型,a节点为仅可访问一次节点,但是a节点的节点信息表示短时间内对a节点进行了多次重复访问,因此a节点的节点信息与a节点的特征信息匹配失败,第一api流量为异常访问流量。
142.又例如,a节点的特征信息包括访问顺序,a节点的特征信息限定了a节点的访问顺序应该在b节点之前。但是通过a节点和b节点的节点信息中的访问时间,得知a节点的访问时间在b节点的访问时间之后,因此a节点的节点信息与a节点的特征信息匹配失败,确定第一api流量为异常访问流量。
143.如果特征信息还包括图节点间访问概率,则在检测到异常时,根据图节点间访问概率输出异常结果的可信度。
144.本技术的第一行为关系图可以用于多种场景的异常访问检测,可以识别api逻辑异常,例如以下5种场景:
145.1、重放攻击,即大量重复访问某一url。
146.通过计算该url的访问频次,如果超出了第一行为关系图规定的访问频次,检测为异常访问。
147.2、绕过,即绕过工作流中某一业务环节,例如电子商务中绕过付款业务,实现零元购。
148.例如,第一行为关系图规定的正常购物流程是“选择商品-加入购物车-下单结算”,需要依次访问这3个节点。如果用户绕过付款业务实现零元购,则可以检测出没有访问“下单结算”这个节点,业务流程不正常,检测为异常访问。
149.3、打乱工作流中业务访问顺序,例如审计业务中先提交业务再审计。
150.例如,a节点和b节点,第一行为关系图规定的业务访问顺序为a-b,要先访问a节点,才能访问b节点。通过获取a节点和b节点的访问时间,如果a节点的访问时间在b节点的访问时间之前,说明业务访问顺序是正确的;如果a节点的访问时间在b节点的访问时间之后,说明业务访问顺序是错误的,检测为异常访问。
151.4、直接访问某一业务中间节点,例如直接访问登录后的业务节点。
152.该行为与绕过场景类似,正常的业务访问顺序应该是先登录再访问业务节点,如果没有访问登录节点,检测为异常访问。
153.5、访问未学习过业务,例如越权访问高权限业务。
154.未学习过业务即为不在第一行为关系图中的节点,如果用户访问的url并不是第一行为关系图中的节点,可能是用户在越权访问,检测为异常访问。
155.在实际应用中,如果检测出异常访问流量,可以进行告警,通知用户进行安全维护。
156.本发明实施例通过确定第一api流量对应的至少一个节点,获取每个节点对应的节点信息,检测各个节点信息之间是否满足第一行为关系图对应的访问关系,得到检测结果,检测结果表征第一api流量是否为异常访问流量。其中,节点表征第一api流量的网络地址,至少一个节点为第一行为关系图中的节点,第一行为关系图的任一边表征该边对应的两个节点之间的访问关系。本发明实施例通过第一行为关系图对应的访问关系,可以有效识别api流量的逻辑错误,实现异常状态下访问限制性的功能和敏感信息的行为检测,例如可以识别重放攻击和绕过攻击等攻击行为,弥补了当前市场上api逻辑缺陷检测缺失的问题。
157.参考图6,图6是本发明实施例提供的一种第一行为关系图的示意图,第一行为关系图表示各个业务间的访问关系,可以将第一行为关系图中的访问关系抽象为如下邻接表(表1)。如图6所示,从a节点到f节点存在两条路径,路径长度分别为3,5。即a节点和f节点之间存在业务访问关系,但a节点不能直接访问f节点,由此推断如果存在a节点直接访问f节点行为时,则出现绕过异常行为。
[0158][0159]
表1
[0160]
参考图7,图7是本发明实施例提供的一种异常检测流程的示意图,异常检测流程包括:
[0161]
第一步,api接口识别和流量提取。
[0162]
从历史流量数据中过滤出api流量,可以采用host聚类,参数过滤,请求方法过滤,响应码过滤等过滤方法从历史流量数据中过滤得到api流量,将api流量保存为api审计日志。
[0163]
在一实施例中,本发明实施例只从历史网络流量中提取restapi流量,根据设定好的restapi传参格式和规范要求,提取restapi流量。由于restapi可能存在某一级路径为可变参数,例如,baiduv1.com和baiduv2.com都指向同一个restapi,因此还需要识别可变参数部分,将指向相同restapi的api流量进行合并。
[0164]
第二步,构建访问行为关系图。
[0165]
访问行为关系图即为上述实施例中的第一行为关系图,基于至少两个第二api流量构建第一行为关系图的节点和边;其中,api流量的网络地址表征为第一行为关系图的节点,第一行为关系图的任一边表示任一边对应的两个节点之间的访问关系。
[0166]
基于第一行为关系图中各个节点之间的访问关系,确定第一行为关系图中的每个节点的节点特征;节点特征表征节点类型。
[0167]
第三步,特征图学习更新。
[0168]
获取第一行为关系图的各个节点的设定访问参数的参数值;基于各个节点的设定访问参数的参数值,更新第一行为关系图的各个节点的特征信息。
[0169]
基于各个节点的设定访问参数的参数值,确定第一行为关系图中表征低频访问行为的相连节点;
[0170]
删除第一行为关系图中表征低频访问行为的相连节点之间的连线。
[0171]
通过第一行为关系图进行特征图学习更新,得到强关联访问行为关系图。
[0172]
第四步,检测是否为异常访问行为。
[0173]
基于上述强关联访问行为关系图对第一api流量进行异常检测,确定第一api流量对应的至少一个节点;节点表征第一api流量对应的网络地址。获取至少一个节点的每个节点对应的节点信息,检测各个节点信息之间是否满足强关联访问行为关系图对应的访问关系,得到检测结果;检测结果表征所述第一api流量是否为异常访问流量。
[0174]
如果检测出异常访问流量,可以进行告警,通知用户进行安全维护。
[0175]
本发明实施例关注api逻辑漏洞,从用户行为角度出发,根据用户与应用程序功能
交互的网络轨迹,挖掘用户正常访问行为,将用户正常访问行为抽象为图表示方式,基于自适应图学习算法,优化图节点间的依赖关系,生成强关联访问行为关系图。通过非攻击行为下的强关联访问行为关系图,可以识别工作流中任意异常访问行为,实现异常状态下访问限制性的功能和敏感信息的行为检测。例如可以检测出绕过,重放等攻击行为。
[0176]
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
[0177]
应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
[0178]
需要说明的是,本发明实施例所记载的技术方案之间,在不冲突的情况下,可以任意组合。
[0179]
另外,在本发明实施例中,“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
[0180]
参考图8,图8是本发明实施例提供的一种异常访问检测装置的示意图,如图8所示,该异常访问检测装置包括:第一确定模块、第一获取模块和检测模块。
[0181]
第一确定模块,用于确定第一api流量对应的至少一个节点;所述节点表征第一api流量对应的网络地址;
[0182]
第一获取模块,用于获取所述至少一个节点的每个节点对应的节点信息;
[0183]
检测模块,用于检测各个节点信息之间是否满足第一行为关系图对应的访问关系,得到检测结果;所述检测结果表征所述第一api流量是否为异常访问流量;所述至少一个节点为所述第一行为关系图中的节点;所述第一行为关系图的任一边表征该边对应的两个节点之间的访问关系。
[0184]
在一实施例中,所述检测模块检测各个节点信息之间是否满足第一行为关系图对应的访问关系,得到检测结果,包括:
[0185]
将各个节点信息分别与所述第一行为关系图中对应的节点的特征信息进行匹配;
[0186]
若各个节点信息都与所述第一行为关系图中对应的节点的特征信息匹配成功,得到所述第一api流量为正常访问流量的检测结果;
[0187]
若存在节点信息与所述第一行为关系图中对应的节点的特征信息匹配失败,得到所述第一api流量为异常访问流量的检测结果。
[0188]
参考图9,图9是本发明实施例提供的一种行为关系图的构建装置的示意图,如图9所示,该行为关系图的构建装置包括:第二获取模块和构建模块。
[0189]
第二获取模块,用于获取至少两个第二api流量的每个第二api流量的网络地址;
[0190]
构建模块,用于基于每个第二api流量的网络地址构建第一行为关系图;其中,所述第一行为关系图的节点表征第二api流量的网络地址,所述第一行为关系图的边表征该边对应的两个节点之间的访问关系;所述第一行为关系图用于执行本发明实施例第一方面提供的异常访问检测方法。
[0191]
在一实施例中,所述构建模块基于每个第二api流量的网络地址构建第一行为关系图,包括:
[0192]
对所述至少两个第二api流量进行解析,得到每个第二api流量中的设定字段;所述设定字段表征对应的第二api流量的上下文信息;
[0193]
基于所述设定字段,确定所述第一行为关系图中具有直接访问关系的节点,并在具有直接访问关系的节点之间进行连线,得到所述第一行为关系图的边。
[0194]
在一实施例中,所述构建模块在基于每个第二api流量的网络地址构建第一行为关系图时,用于:
[0195]
获取所述第一行为关系图中的边的信息;所述边的信息表征边对应的节点之间的访问概率;
[0196]
基于所述第一行为关系图中的边的信息,更新所述第一行为关系图的各个节点的特征信息。
[0197]
在一实施例中,所述装置还包括:
[0198]
第三获取模块,用于获取所述第一行为关系图的各个节点的设定访问参数的参数值;
[0199]
第二确定模块,用于基于各个节点的设定访问参数的参数值,确定所述第一行为关系图中表征低频访问行为的相连节点;
[0200]
删除模块,用于删除所述第一行为关系图中表征低频访问行为的相连节点之间的连线。
[0201]
实际应用时,所述第一确定模块、第一获取模块、检测模块、构建模块和第二获取模块可通过电子设备中的处理器,比如中央处理器(cpu,central processing unit)、数字信号处理器(dsp,digital signal processor)、微控制单元(mcu,microcontrollerunit)或可编程门阵列(fpga,field-programmable gatearray)等实现。
[0202]
需要说明的是:上述实施例提供的异常访问检测装置在进行异常访问检测时,仅以上述各模块的划分进行举例说明,实际应用中,可以根据需要而将上述处理分配由不同的模块完成,即将装置的内部结构划分成不同的模块,以完成以上描述的全部或者部分处理。另外,上述实施例提供的异常访问检测装置与异常访问检测方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
[0203]
上述异常访问检测装置可以是镜像文件形式,该镜像文件被执行后,可以以容器或者虚拟机的形式运行,以实现本技术所述的异常访问检测方法。当然也不局限为镜像文件形式,只要能够实现本技术所述的数据处理方法的一些软件形式都在本技术的保护范围之内。
[0204]
基于上述程序模块的硬件实现,且为了实现本技术实施例的方法,本技术实施例还提供了一种电子设备。图10为本技术实施例电子设备的硬件组成结构示意图,如图10所示,电子设备包括:
[0205]
通信接口,能够与其它设备比如网络设备等进行信息交互;
[0206]
处理器,与所述通信接口连接,以实现与其它设备进行信息交互,用于运行计算机程序时,执行上述电子设备侧一个或多个技术方案提供的方法。而所述计算机程序存储在存储器上。
[0207]
当然,实际应用时,电子设备中的各个组件通过总线系统耦合在一起。可理解,总线系统用于实现这些组件之间的连接通信。总线系统除包括数据总线之外,还包括电源总
线、控制总线和状态信号总线。但是为了清楚说明起见,在图10中将各种总线都标为总线系统。
[0208]
上述电子设备可以是集群形式,比如是云计算平台形式,所谓云计算平台是采用计算虚拟化、网络虚拟化、存储虚拟化技术把多个独立的服务器物理硬件资源组织成池化资源的一种业务形态,它是一种基于虚拟化技术发展基础上软件定义资源的结构,可以提供虚拟机、容器等形态的资源能力。通过消除硬件与操作系统之间的固定关系,依赖网络的连通统一资源调度,然后提供所需要的虚拟资源和服务,是一种新型的it,软件交付模式,具备灵活,弹性,分布式,多租户,按需等特点。
[0209]
目前的云计算平台支持几种服务模式:
[0210]
saas(software as a service,软件即服务):云计算平台用户无需购买软件,而改为租用部署于云计算平台的软件,用户无需对软件进行维护,软件服务提供商会全权管理和维护软件;
[0211]
paas(platform as a service,平台即服务):云计算平台用户(此时通常为软件开发商)可以在云计算平台提供的架构上建设新的应用,或者扩展已有的应用,同时却不必购买开发、质量控制或生产服务器;
[0212]
iaas(infrastructure as a service,基础架构即服务):云计算平台通过互联网提供了数据中心、基础架构硬件和软件资源,iaas模式下的云计算平台可以提供服务器、操作系统、磁盘存储、数据库和/或信息资源。
[0213]
本技术实施例中的存储器用于存储各种类型的数据以支持电子设备的操作。这些数据的示例包括:用于在电子设备上操作的任何计算机程序。
[0214]
可以理解,存储器可以是易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(rom,read only memory)、可编程只读存储器(prom,programmable read-only memory)、可擦除可编程只读存储器(eprom,erasable programmable read-only memory)、电可擦除可编程只读存储器(eeprom,electrically erasable programmable read-only memory)、磁性随机存取存储器(fram,ferromagnetic random access memory)、快闪存储器(flash memory)、磁表面存储器、光盘、或只读光盘(cd-rom,compact disc read-only memory);磁表面存储器可以是磁盘存储器或磁带存储器。易失性存储器可以是随机存取存储器(ram,random access memory),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的ram可用,例如静态随机存取存储器(sram,static random access memory)、同步静态随机存取存储器(ssram,synchronous static randomaccess memory)、动态随机存取存储器(dram,dynamic random access memory)、同步动态随机存取存储器(sdram,synchronous dynamic randomaccess memory)、双倍数据速率同步动态随机存取存储器(ddrsdram,double data rate synchronous dynamic random access memory)、增强型同步动态随机存取存储器(esdram,enhanced synchronous dynamic randomaccess memory)、同步连接动态随机存取存储器(sldram,synclink dynamic random access memory)、直接内存总线随机存取存储器(drram,direct rambus random access memory)。本技术实施例描述的存储器旨在包括但不限于这些和任意其它适合类型的存储器。
[0215]
上述本技术实施例揭示的方法可以应用于处理器中,或者由处理器实现。处理器
可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是通用处理器、dsp,或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。处理器可以实现或者执行本技术实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本技术实施例所公开的方法的步骤,可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于存储介质中,该存储介质位于存储器,处理器读取存储器中的程序,结合其硬件完成前述方法的步骤。
[0216]
可选地,所述处理器执行所述程序时实现本技术实施例的各个方法中由电子设备实现的相应流程,为了简洁,在此不再赘述。
[0217]
在示例性实施例中,本技术实施例还提供了一种存储介质,即计算机存储介质,具体为计算机可读存储介质,例如包括存储计算机程序的第一存储器,上述计算机程序可由电子设备的处理器执行,以完成前述方法所述步骤。计算机可读存储介质可以是fram、rom、prom、eprom、eeprom、flash memory、磁表面存储器、光盘、或cd-rom等存储器。
[0218]
在本技术所提供的几个实施例中,应该理解到,所揭露的装置、电子设备和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。
[0219]
上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元,即可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。
[0220]
另外,在本技术各实施例中的各功能单元可以全部集成在一个处理单元中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
[0221]
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。
[0222]
或者,本技术上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本技术各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。
[0223]
需要说明的是,本技术实施例所记载的技术方案之间,在不冲突的情况下,可以任意组合。
[0224]
另外,在本技术实例中,“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
[0225]
以上所述,仅为本技术的具体实施方式,但本技术的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应以所述权利要求的保护范围为准。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献