异常访问行为的检测方法、装置、存储介质以及电子设备与流程

文档序号:32493106发布日期:2022-12-10 03:41阅读:36来源:国知局
异常访问行为的检测方法、装置、存储介质以及电子设备与流程

1.本技术涉及网络安全领域,具体而言,涉及一种异常访问行为的检测方法、装置、存储介质以及电子设备。


背景技术:

2.webshell(网页脚本)是一种类似于shell(脚本)的接口,可以通过使用webshell远程访问web(网络)服务器,可以向web服务器发起网络攻击,从而控制web服务器。为了实现与web服务器的连接并进行攻击,攻击端可以使用web服务器支持的任何编程语言对webshell进行编程,然后控制端通过访问特定url地址获取web服务器的相关权限,最终达成攻击目的。
3.为了防止web服务器被webshell攻击,需要对webshell进行检测,从而在检测到webshell后及时的进行防御。对于webshell的检测通常有两个阶段,第一阶段是webshell后门代码上传阶段;第二阶段是webshell后门利用阶段。在两个不同的阶段中因为控制端的行为方式和行为目标的不同,导致对应的检测方法也存在不同。
4.在第二阶段的后门应用阶段中,通常使用的webshell访问的检测的技术方法为通过注释信息提取模块获取代码文件的注释信息,并将其与“注释信息特征库”进行匹配,获取权限值,通过判断权限值是否超过预设阈值,来判断某一访问是否为webshell访问。
5.但是,现有技术中在对访问是否为webshell访问进行检测的时候,依赖于代码的注释信息,比较容易绕过,并且容易对注释信息进行伪造,进一步的,仅通过将权限值直接阈值比较的方法容易产生检测误报,使得正常访问被误判为webshell访问,从而影响正常访问的操作。
6.针对相关技术中通过代码文件的注释信息对访问行为进行检测的准确度低的问题,目前尚未提出有效的解决方案。


技术实现要素:

7.本技术提供一种异常访问行为的检测方法、装置、存储介质以及电子设备,以解决相关技术中通过代码文件的注释信息对访问行为进行检测的准确度低的问题。
8.根据本技术的一个方面,提供了一种异常访问行为的检测方法。该方法包括:在网络服务器中获取多个访问日志,并获取每个访问日志中的访问路径和访问路径的至少一个路径引用来源,其中,每个访问日志中至少包括以下之一:访问路径、路径引用来源以及访问者ip;根据各个访问路径和每个访问路径的路径引用来源生成网络服务器的访问路径的有向图,其中,有向图中包括多个节点,每个节点表征一个访问路径;按照每个节点的节点连接数量从有向图中选取候选节点,得到多个候选节点,并根据各个候选节点的节点信息生成目标矩阵,其中,节点信息包括:节点对应的访问路径、访问路径的访问者ip,以及每个访问者ip的访问次数;通过目标矩阵从多个候选节点中确定异常节点,并将异常节点对应的访问路径确定为异常访问路径,将异常访问路径对应的访问行为确定为异常访问行为。
9.可选地,根据各个访问路径和每个访问路径的路径引用来源生成网络服务器的访问路径的有向图包括:生成每个访问路径的节点,以及每个路径引用来源的节点,得到多个节点;将多个节点根据引用关系进行连接,得到访问路径的有向图,其中,引用关系为访问路径与路径引用来源之间的引用关系。
10.可选地,按照每个节点的节点连接数量从有向图中选取候选节点包括:判断节点是否为孤立节点,其中,孤立节点表征节点在有向图中无连接关系;在节点为孤立节点的情况下,将节点确定为候选节点;和/或确定节点的父节点的数量,并判断父节点的数量是否大于第一预设数量;在父节点的数量大于第一预设数量的情况下,将节点确定为候选节点。
11.可选地,节点信息还包括第一访问次数和第二访问次数,第一访问次数为候选节点的访问路径被查找访问的访问次数,第二访问次数为候选节点的访问路径被跳转访问的访问次数,在根据各个候选节点的节点信息生成目标矩阵之前,该方法还包括:判断每个候选节点对应的访问者ip的数量是否大于第二预设数量;在候选节点对应的访问者ip的数量大于第二预设数量的情况下,删除候选节点,得到更新后的多个候选节点,并通过更新后的多个候选节点执行根据各个候选节点的节点信息生成目标矩阵的步骤;和/或将候选节点的第一访问次数与第二访问次数相除,得到候选节点的初次访问率;判断初次访问率是否小于等于访问率阈值;在初次访问率小于等于访问率阈值的情况下,删除候选节点,得到更新后的多个候选节点,并通过更新后的多个候选节点执行根据各个候选节点的节点信息生成目标矩阵的步骤。
12.可选地,根据各个候选节点的节点信息生成目标矩阵包括:以访问路径为列,以访问者ip为行,构建访问路径和访问者ip的表格,并将每个访问者ip访问每个访问路径的访问次数添加至表格中,得到初始关系矩阵;获取初始关系矩阵的转置矩阵,得到初始转置矩阵;将初始转置矩阵和初始关系矩阵相乘,得到度量矩阵;将度量矩阵中的对角线元素进行归一化,得到目标矩阵。
13.可选地,通过目标矩阵从多个候选节点中确定异常节点包括:在目标矩阵中确定每个访问路径对应的行矩阵中的非零元素的数量,得到多个元素数量;分别判断每个元素数量是否小于第三预设数量;在元素数量小于第三预设数量的情况下,将元素数量对应的访问路径对应的节点确定为异常节点;和/或在目标矩阵中确定每个访问路径对应的行矩阵中非零元素占行矩阵中全部元素的占比,得到多个元素占比;分别判断每个元素占比是否小于预设比例;在元素占比小于预设比例的情况下,将元素占比对应的访问路径对应的节点确定为异常节点。
14.可选地,在通过目标矩阵从多个候选节点中确定异常节点之前,该方法还包括:判断目标矩阵中的多个访问者ip中是否存在同一属地的访问者ip;在存在同一属地的访问者ip的情况下,在目标矩阵中将多个同一属地的访问者ip对应的列矩阵相加,得到更新后的目标矩阵,并根据更新后的目标矩阵执行通过目标矩阵从多个候选节点中确定异常节点的步骤。
15.根据本技术的另一方面,提供了一种异常访问行为的检测装置。该装置包括:获取单元,用于在网络服务器中获取多个访问日志,并获取每个访问日志中的访问路径和访问路径的至少一个路径引用来源,其中,每个访问日志中至少包括以下之一:访问路径、路径引用来源以及访问者ip;第一生成单元,用于根据各个访问路径和每个访问路径的路径引
用来源生成网络服务器的访问路径的有向图,其中,有向图中包括多个节点,每个节点表征一个访问路径;第二生成单元,用于按照每个节点的节点连接数量从有向图中选取候选节点,得到多个候选节点,并根据各个候选节点的节点信息生成目标矩阵,其中,节点信息包括:节点对应的访问路径、访问路径的访问者ip,以及每个访问者ip的访问次数;确定单元,用于通过目标矩阵从多个候选节点中确定异常节点,并将异常节点对应的访问路径确定为异常访问路径,将异常访问路径对应的访问行为确定为异常访问行为。
16.根据本发明实施例的另一方面,还提供了一种计算机存储介质,计算机存储介质用于存储程序,其中,程序运行时控制计算机存储介质所在的设备执行一种异常访问行为的检测方法。
17.根据本发明实施例的另一方面,还提供了一种电子设备,包含一个或多个处理器和存储器;存储器中存储有计算机可读指令,处理器用于运行计算机可读指令,其中,计算机可读指令运行时执行一种异常访问行为的检测方法。
18.通过本技术,采用以下步骤:在网络服务器中获取多个访问日志,并获取每个访问日志中的访问路径和访问路径的至少一个路径引用来源,其中,每个访问日志中至少包括以下之一:访问路径、路径引用来源以及访问者ip;根据各个访问路径和每个访问路径的路径引用来源生成网络服务器的访问路径的有向图,其中,有向图中包括多个节点,每个节点表征一个访问路径;按照每个节点的节点连接数量从有向图中选取候选节点,得到多个候选节点,并根据各个候选节点的节点信息生成目标矩阵,其中,节点信息包括:节点对应的访问路径、访问路径的访问者ip,以及每个访问者ip的访问次数;通过目标矩阵从多个候选节点中确定异常节点,并将异常节点对应的访问路径确定为异常访问路径,将异常访问路径对应的访问行为确定为异常访问行为。解决了相关技术中通过代码文件的注释信息对访问行为进行检测的准确度低的问题。通过使用访问路径,也即url,以及访问路径对应的路径引用来源,生成网络服务器的访问路径关系图,也即访问路径的有向图,并根据该有向图选取候选节点,并根据候选节点的节点信息生成目标矩阵,从而通过计算目标矩阵进行异常节点的确定,将异常节点对应的访问行为确定为异常访问,进而达到了准确的对异常访问进行检测的效果。
附图说明
19.构成本技术的一部分的附图用来提供对本技术的进一步理解,本技术的示意性实施例及其说明用于解释本技术,并不构成对本技术的不当限定。在附图中:
20.图1是根据本技术实施例提供的异常访问行为的检测方法的流程图;
21.图2是根据本技术实施例提供的可选的访问路径的第一有向图;
22.图3是根据本技术实施例提供的可选的访问路径的第二有向图;
23.图4是根据本技术实施例提供的可选的访问路径的第三有向图;
24.图5是根据本技术实施例提供的异常访问行为的检测装置的示意图。
具体实施方式
25.需要说明的是,在不冲突的情况下,本技术中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本技术。
26.为了使本技术领域的人员更好地理解本技术方案,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分的实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本技术保护的范围。
27.需要说明的是,本技术的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本技术的实施例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
28.需要说明的是,本公开所涉及的相关信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于展示的数据、分析的数据等),均为经用户授权或者经过各方充分授权的信息和数据。例如,本系统和相关用户或机构间设置有接口,在获取相关信息之前,需要通过接口向前述的用户或机构发送获取请求,并在接收到前述的用户或机构反馈的同意信息后,获取相关信息。
29.需要说明的是,本公开所确定的异常访问行为的检测方法、装置、存储介质以及电子设备可用于网络安全领域,也可用于除网络安全领域之外的任意领域,本公开所确定的异常访问行为的检测方法、装置、存储介质以及电子设备的应用领域不做限定。
30.根据本技术的实施例,提供了一种异常访问行为的检测方法。
31.图1是根据本技术实施例提供的异常访问行为的检测方法的流程图。如图1所示,该方法包括以下步骤:
32.步骤s102,在网络服务器中获取多个访问日志,并获取每个访问日志中的访问路径和访问路径的至少一个路径引用来源,其中,每个访问日志中至少包括以下之一:访问路径、路径引用来源以及访问者ip。
33.需要说明的是,webshell(网页脚本)主要用于网站管理、服务器管理等操作,webshell访问即为通过webshell进行网页访问。在通过webshell远程访问web(网络)服务器的时候,可以通过webshell向web服务器发起网络攻击,从而控制web服务器。为了实现与web服务器的连接并进行攻击,攻击端可以使用web服务器支持的任何编程语言对webshell进行编程,然后控制端通过访问特定url地址获取web服务器的相关权限,最终达成攻击目的。
34.具体的,在进行webshell访问的检测的时候,可以获取在网络服务器中获取任意时间段内的全部访问日志,根据访问日志中的访问路径和路径引用来源对每个访问进行检测,从而确定是否存在webshell访问。
35.需要说明的是,每个访问日志中包括访问路径,也即url(uniform resource locator,统一资源定位器),还包括该访问路径的访问人,也即访问者的ip,还包括该url的路径引用来源,也即referer(路径引用来源),其中,所述路径引用来源为所述访问路径的上一级访问路径,路径引用来源用于确定该url的来源网页,也即该url的上一级url,例如,a访问者通过www.a.com中的链接www.b.com对www.b.com进行访问,则访问路径www.b.com
的路径引用来源即为www.a.com。特殊的,如果通过直接输入访问路径的方式对访问路径进行访问,则该访问路径不存在路径引用来源。
36.步骤s104,根据各个访问路径和每个访问路径的路径引用来源生成网络服务器的访问路径的有向图,其中,有向图中包括多个节点,每个节点表征一个访问路径。
37.具体的,在从多个访问日志中得到多个访问路径以及每个访问路径对应的至少一个路径引用来源后,可以将每个访问路径作为一个节点,从而得到多个节点,由于一个访问日志中的路径引用来源在另一个访问日志中作为引用路径,因此可以通过访问路径与路径引用来源之间的关系生成网络服务器的访问路径的有向图。
38.例如,a访问日志的内容为:访问路径为a,路径引用来源为b,访问者ip为c,b访问日志的内容为:访问路径为b,路径引用来源为空,访问者ip为c,则可以根据上述内容生成访问路径的有向图为b

a,有向图中b即为a的父节点。
39.步骤s106,按照每个节点的节点连接数量从有向图中选取候选节点,得到多个候选节点,并根据各个候选节点的节点信息生成目标矩阵,其中,节点信息包括:节点对应的访问路径、访问路径的访问者ip,以及每个访问者ip的访问次数。
40.具体的,在得到有向图有,可以从有向图中挑选节点连接数量符合预设条件的节点,并将挑选出的节点作为候选节点,也即疑似异常的节点。例如,预设条件可以为,若某节点的节点连接数量小于10个,则该节点为候选节点。
41.进一步的,在得到候选节点后,可以通过每个候选节点的节点信息生成目标矩阵,其中,目标矩阵用于表征访问路径与访问ip之间的访问关系。例如,目标矩阵可以为:
[0042][0043]
其中,矩阵中的第一行表征ip1-ip4访问url1的次数,以此类推,每一行均为一个url对应的各个ip的访问次数。
[0044]
步骤s108,通过目标矩阵从多个候选节点中确定异常节点,并将异常节点对应的访问路径确定为异常访问路径,将异常访问路径对应的访问行为确定为异常访问行为。
[0045]
具体的,在得到目标矩阵后,即可通过目标矩阵从多个候选节点中确定异常节点,并将异常节点对应的访问路径所对应的访问行为确定为webshell访问。
[0046]
例如,矩阵一中的url2仅被ip2访问过,并且ip2仅访问过url2,同时访问次数也较多,因此,可以确定ip2访问url2的访问操作为webshell访问。通过确定目标矩阵并根据目标矩阵进行webshell访问的判断,达到了准确的对webshell访问进行检测的效果。
[0047]
本技术实施例提供的异常访问行为的检测方法,通过在网络服务器中获取多个访问日志,并获取每个访问日志中的访问路径和访问路径的至少一个路径引用来源,其中,每个访问日志中至少包括以下之一:访问路径、路径引用来源以及访问者ip;根据各个访问路径和每个访问路径的路径引用来源生成网络服务器的访问路径的有向图,其中,有向图中包括多个节点,每个节点表征一个访问路径;按照每个节点的节点连接数量从有向图中选取候选节点,得到多个候选节点,并根据各个候选节点的节点信息生成目标矩阵,其中,节点信息包括:节点对应的访问路径、访问路径的访问者ip,以及每个访问者ip的访问次数;
通过目标矩阵从多个候选节点中确定异常节点,并将异常节点对应的访问路径确定为异常访问路径,将异常访问路径对应的访问行为确定为异常访问行为。解决了相关技术中通过代码文件的注释信息对访问行为进行检测的准确度低的问题。通过使用访问路径,也即url,以及访问路径对应的路径引用来源,生成网络服务器的访问路径关系图,也即访问路径的有向图,并根据该有向图选取候选节点,并根据候选节点的节点信息生成目标矩阵,从而通过计算目标矩阵进行异常节点的确定,将异常节点对应的访问行为确定为异常访问,进而达到了准确的对异常访问进行检测的效果。
[0048]
为了生成准确的有向图,可选地,在本技术实施例提供的异常访问行为的检测方法中,根据各个访问路径和每个访问路径的路径引用来源生成网络服务器的访问路径的有向图包括:生成每个访问路径的节点,以及每个路径引用来源的节点,得到多个节点;将多个节点根据引用关系进行连接,得到访问路径的有向图,其中,引用关系为访问路径与路径引用来源之间的引用关系。
[0049]
具体的,由于访问日志中的路径引用来源在某个其他访问日志中为访问路径,因此可以生成每个访问路径和每个路径引用来源对应的节点,并根据访问路径与路径引用来源之间的引用关系将多个节点进行连接,从而得到该web服务器的访问路径有向图。
[0050]
例如,a访问日志的内容为:访问路径为a,路径引用来源为b,访问者ip为c,b访问日志的内容为:访问路径为c,路径引用来源为a,访问者ip为c,则可以根据上述内容生成访问路径的有向图为b
→a→
c。
[0051]
需要说明的是,每个节点中可以包括该节点对应的访问路径的多个属性信息,例如:属性一为访问路径被访问的次数,属性二为访问路径作为起始访问路径次数,属性三为访问当前路径的访问者ip的个数。其中,起始访问路径即为该访问路径为访问者通过查询得到的,而非通过跳转的方式得到的,并且,被访问次数中包括访问路径作为起始访问路径次数。
[0052]
图2是根据本技术实施例提供的可选的访问路径的第一有向图,如图2所示,多个访问日志中存在:a访问日志的内容为:访问路径为a,路径引用来源为c,访问者ip为c,b访问日志的内容为:访问路径为c,路径引用来源为a,访问者ip为c,则在访问路径的有向图中存在a访问路径和c访问路径之间相互指向对方的现象,同样的,a访问路径和d访问路径、c访问路径和d访问路径之间也相互指向对方,由于仅存在c访问日志的内容为:访问路径为b,路径引用来源为c,访问者ip为g,则访问路径有向图中仅存在c访问路径的节点指向b访问路径的节点的现象。
[0053]
为了准确的获取候选节点,可选地,在本技术实施例提供的异常访问行为的检测方法中,按照每个节点的节点连接数量从有向图中选取候选节点包括:判断节点是否为孤立节点,其中,孤立节点表征节点在有向图中无连接关系;在节点为孤立节点的情况下,将节点确定为候选节点;和/或确定节点的父节点的数量,并判断父节点的数量是否大于第一预设数量;在父节点的数量大于第一预设数量的情况下,将节点确定为候选节点。
[0054]
具体的,在得到访问路径有向图后,可以通过有向图直观的确定每个节点的连接关系,因此,可以通过两种方式在访问路径有向图中确定候选节点,一种方式是确定是否存在孤立节点,也即,该节点与任意节点均无连接关系,图3是根据本技术实施例提供的可选的访问路径的第二有向图,如图3所示,如图3中的节点1所示,节点1与任意一个节点均无连
接关系,则将节点1确定为候选节点。
[0055]
进一步的,当某个节点出现过多父节点的时候,该节点同样被确定为候选节点,图4是根据本技术实施例提供的可选的访问路径的第三有向图,如图4所示,图4中的节点2的存在8个父节点,在第一预设数量为5的情况下,节点2的父节点过多,则将节点2确定为候选节点。
[0056]
可选地,在本技术实施例提供的异常访问行为的检测方法中,节点信息还包括第一访问次数和第二访问次数,第一访问次数为候选节点的访问路径被查找访问的访问次数,第二访问次数为候选节点的访问路径被跳转访问的访问次数,在根据各个候选节点的节点信息生成目标矩阵之前,该方法还包括:判断每个候选节点对应的访问者ip的数量是否大于第二预设数量;在候选节点对应的访问者ip的数量大于第二预设数量的情况下,删除候选节点,得到更新后的多个候选节点,并通过更新后的多个候选节点执行根据各个候选节点的节点信息生成目标矩阵的步骤;和/或将候选节点的第一访问次数与第二访问次数相除,得到候选节点的初次访问率;判断初次访问率是否小于等于访问率阈值;在初次访问率小于等于访问率阈值的情况下,删除候选节点,得到更新后的多个候选节点,并通过更新后的多个候选节点执行根据各个候选节点的节点信息生成目标矩阵的步骤。
[0057]
需要说明的是,为了防止出现对候选节点的误判现象,在得到多个候选节点后,还需要对候选节点进行一次筛选,从而得到最终的候选节点。
[0058]
具体的,在得到多个候选节点后,确定每个候选节点的属性中的访问者ip的数量是否大于第二预设数量,在大于第二预设数量的情况下,表明该候选节点对应的访问路径被较多的ip访问过,则该访问路径对应的访问行为一定不是webshell访问,因此可以将该候选节点从多个候选节点中进行删除。
[0059]
进一步的,还可以通过候选节点的初次访问率对候选节点进行判断,其中,初次访问率由第一访问次数与第二访问次数相除计算得到,第一访问次数为候选节点的访问路径被查找访问的访问次数,也即访问路径为直接访问路径的次数,第二访问次数为候选节点的访问路径被跳转访问的访问次数,也即访问路径从其他访问路径跳转访问的次数,将两个访问次数相除,得到初次访问率。需要说明的是,第二访问次数即为非第一访问次数,也即,无论候选节点的访问路径之前经历过几个其他访问路径,只要所述候选节点的访问路径不是被查找访问,则即为第二访问次数。
[0060]
在得到初次访问率后,判断初次访问率是否小于等于访问率阈值,在小于等于访问率阈值的情况下,表明该访问路径并非经常被定向访问,因此该候选节点对应的访问路径的访问行为并非webshell访问,可以将该候选节点从多个候选节点中进行删除。
[0061]
可选地,在本技术实施例提供的异常访问行为的检测方法中,根据各个候选节点的节点信息生成目标矩阵包括:以访问路径为列,以访问者ip为行,构建访问路径和访问者ip的表格,并将每个访问者ip访问每个访问路径的访问次数添加至表格中,得到初始关系矩阵;获取初始关系矩阵的转置矩阵,得到初始转置矩阵;将初始转置矩阵和初始关系矩阵相乘,得到度量矩阵;将度量矩阵中的对角线元素进行归一化,得到目标矩阵。
[0062]
具体的,在得到多个候选节点后,可以根据候选节点的节点信息构建目标矩阵,并通过对目标矩阵进行变换,得到更新后的目标矩阵,从而可以通过更新后的目标矩阵更好的确定异常节点。
[0063]
例如,目标矩阵可以为:
[0064][0065]
其中,矩阵中的第一行表征ip1-ip4访问url1的次数,分别为10次、0次、10次、15次,以此类推,每一行均为一个url对应的各个ip的访问次数。
[0066]
进一步的,将目标矩阵进行转置,得到如下转置矩阵:
[0067][0068]
将目标矩阵和转置矩阵相乘,得到如下度量矩阵:
[0069][0070]
其中,度量矩阵中的行和列表征的内容均为ip信息,也即,矩阵中的每个数字表征ip与ip之间的相似度,例如,矩阵(1,1)的位置表征ip1和ip1之间的相似度。
[0071]
将度量矩阵中的对角线元素进行归一化,得到更新后的目标矩阵。
[0072][0073]
可选地,在本技术实施例提供的异常访问行为的检测方法中,在通过目标矩阵从多个候选节点中确定异常节点之前,该方法还包括:判断目标矩阵中的多个访问者ip中是否存在同一属地的访问者ip;在存在同一属地的访问者ip的情况下,在目标矩阵中将多个同一属地的访问者ip对应的列矩阵相加,得到更新后的目标矩阵,并根据更新后的目标矩阵执行通过目标矩阵从多个候选节点中确定异常节点的步骤。
[0074]
具体的,在得到上述目标矩阵后,可以将目标矩阵中ip地址属于同一属地的列矩阵进行相加,得到更新后的目标矩阵,从而减小矩阵中的数据量,进而减小矩阵的计算量。
[0075]
例如,目标矩阵如下所示:
[0076][0077]
在目标矩阵中的ip2和ip3的属地相同的情况下,可以将ip2和ip3的列矩阵进行相
加,得到变更后的目标矩阵。
[0078][0079]
可选地,在本技术实施例提供的异常访问行为的检测方法中,通过目标矩阵从多个候选节点中确定异常节点包括:在目标矩阵中确定每个访问路径对应的行矩阵中的非零元素的数量,得到多个元素数量;分别判断每个元素数量是否小于第三预设数量;在元素数量小于第三预设数量的情况下,将元素数量对应的访问路径对应的节点确定为异常节点;和/或在目标矩阵中确定每个访问路径对应的行矩阵中非零元素占行矩阵中全部元素的占比,得到多个元素占比;分别判断每个元素占比是否小于预设比例;在元素占比小于预设比例的情况下,将元素占比对应的访问路径对应的节点确定为异常节点。
[0080]
具体的,在得到目标矩阵后,可以通过确定每个访问路径对应的行矩阵中的非零元素的数量,或者访问路径对应的行矩阵中非零元素占行矩阵中全部元素的占比,对每个访问路径是否异常进行确定。
[0081]
在访问路径对应的行矩阵中的非零元素的数量小于第三预设数量的情况下,确定该访问路径对应的访问行为为webshell访问,例如,非0元素个数小于40,则该访问路径对应的访问行为为webshell访问;或是,访问路径对应的行矩阵中非零元素占行矩阵中全部元素的占比小于预设比例,例如访问路径对应的行矩阵中非零元素占行矩阵中全部元素的占比小于10%,则该访问路径对应的访问行为为webshell访问,从而通过计算目标矩阵进行异常节点的确定,从而将异常节点对应的访问行为确定为异常访问,进而达到了准确的对异常访问进行检测的效果。
[0082]
需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
[0083]
本技术实施例还提供了一种异常访问行为的检测装置,需要说明的是,本技术实施例的异常访问行为的检测装置可以用于执行本技术实施例所提供的用于异常访问行为的检测方法。以下对本技术实施例提供的异常访问行为的检测装置进行介绍。
[0084]
图5是根据本技术实施例提供的异常访问行为的检测装置的示意图。如图5所示,该装置包括:获取单元51,第一生成单元52,第二生成单元53,确定单元54。
[0085]
其中,获取单元51,用于在网络服务器中获取多个访问日志,并获取每个访问日志中的访问路径和访问路径的至少一个路径引用来源,其中,每个访问日志中至少包括以下之一:访问路径、路径引用来源以及访问者ip,路径引用来源为访问路径的上一级访问路。
[0086]
需要说明的是,webshell(网页脚本)是一种类似于shell(脚本)的接口,可以通过使用webshell远程访问web(网络)服务器,可以向web服务器发起网络攻击,从而控制web服务器。为了实现与web服务器的连接并进行攻击,攻击端可以使用web服务器支持的任何编程语言对webshell进行编程,然后控制端通过访问特定url地址获取web服务器的相关权限,最终达成攻击目的。
[0087]
具体的,在进行webshell访问的检测的时候,可以获取在网络服务器中获取任意
时间段内的全部访问日志,根据访问日志中的访问路径和路径引用来源对每个访问进行检测,从而确定是否存在webshell访问。
[0088]
需要说明的是,每个访问日志中包括访问路径,也即url(uniform resource locator,统一资源定位器),还包括该访问路径的访问人,也即访问者的ip,还包括该url的路径引用来源,也即referer(路径引用来源),其中,referer用于确定该url的来源网页,也即该url的上一级url,例如,a访问者通过www.a.com中的链接www.b.com对www.b.com进行访问,则访问路径www.b.com的路径引用来源即为www.a.com。特殊的,如果通过直接输入访问路径的方式对访问路径进行访问,则该访问路径不存在referer。
[0089]
第一生成单元52,用于根据各个访问路径和每个访问路径的路径引用来源生成网络服务器的访问路径的有向图,其中,有向图中包括多个节点,每个节点表征一个访问路径。
[0090]
具体的,在从多个访问日志中得到多个访问路径以及每个访问路径对应的至少一个路径引用来源后,可以将每个访问路径作为一个节点,从而得到多个节点,由于一个访问日志中的路径引用来源在另一个访问日志中作为引用路径,因此可以通过访问路径与路径引用来源之间的关系生成网络服务器的访问路径的有向图。
[0091]
例如,a访问日志的内容为:访问路径为a,路径引用来源为b,访问者ip为c,b访问日志的内容为:访问路径为b,路径引用来源为空,访问者ip为c,则可以根据上述内容生成访问路径的有向图为b

a,有向图中b即为a的父节点。
[0092]
第二生成单元53,用于按照每个节点的节点连接数量从有向图中选取候选节点,得到多个候选节点,并根据各个候选节点的节点信息生成目标矩阵,其中,节点信息包括:节点对应的访问路径、访问路径的访问者ip,以及每个访问者ip的访问次数。
[0093]
具体的,在得到有向图有,可以从有向图中挑选节点连接数量符合预设条件的节点,并将挑选出的节点作为候选节点,也即疑似异常的节点。例如,预设条件可以为,若某节点的节点连接数量小于10个,则该节点为候选节点。
[0094]
进一步的,在得到候选节点后,可以通过每个候选节点的节点信息生成目标矩阵,其中,目标矩阵用于表征访问路径与访问ip之间的访问关系。例如,目标矩阵可以为:
[0095][0096]
其中,矩阵中的第一行表征ip1-ip4访问url1的次数,以此类推,每一行均为一个url对应的各个ip的访问次数。
[0097]
确定单元54,用于通过目标矩阵从多个候选节点中确定异常节点,并将异常节点对应的访问路径确定为异常访问路径,将异常访问路径对应的访问行为确定为异常访问行为。
[0098]
具体的,在得到目标矩阵后,即可通过目标矩阵从多个候选节点中确定异常节点,并将异常节点对应的访问路径所对应的访问行为确定为webshell访问。
[0099]
例如,矩阵一中的url2仅被ip2访问过,并且ip2仅访问过url2,同时访问次数也较多,因此,可以确定ip2访问url2的访问操作为webshell访问。通过确定目标矩阵并根据目
标矩阵进行webshell访问的判断,达到了准确的对webshell访问进行检测的效果。
[0100]
本技术实施例提供的异常访问行为的检测装置,通过获取单元51在网络服务器中获取多个访问日志,并获取每个访问日志中的访问路径和访问路径的至少一个路径引用来源,其中,每个访问日志中至少包括以下之一:访问路径、路径引用来源以及访问者ip;第一生成单元52根据各个访问路径和每个访问路径的路径引用来源生成网络服务器的访问路径的有向图,其中,有向图中包括多个节点,每个节点表征一个访问路径;第二生成单元53按照每个节点的节点连接数量从有向图中选取候选节点,得到多个候选节点,并根据各个候选节点的节点信息生成目标矩阵,其中,节点信息包括:节点对应的访问路径、访问路径的访问者ip,以及每个访问者ip的访问次数;确定单元54通过目标矩阵从多个候选节点中确定异常节点,并将异常节点对应的访问路径确定为异常访问路径,将异常访问路径对应的访问行为确定为异常访问行为。解决了相关技术中通过代码文件的注释信息对访问行为进行检测的准确度低的问题。通过使用访问路径,也即url,以及访问路径对应的路径引用来源,生成网络服务器的访问路径关系图,也即访问路径的有向图,并根据该有向图选取候选节点,并根据候选节点的节点信息生成目标矩阵,从而通过计算目标矩阵进行异常节点的确定,将异常节点对应的访问行为确定为异常访问,进而达到了准确的对异常访问进行检测的效果。
[0101]
可选地,在本技术实施例提供的异常访问行为的检测装置中,第一生成单元52包括:生成模块,用于生成每个访问路径的节点,以及每个路径引用来源的节点,得到多个节点;连接模块,用于将多个节点根据引用关系进行连接,得到访问路径的有向图,其中,引用关系为访问路径与路径引用来源之间的引用关系。
[0102]
具体的,由于访问日志中的路径引用来源在某个其他访问日志中为访问路径,因此可以生成每个访问路径和每个路径引用来源对应的节点,并根据访问路径与路径引用来源之间的引用关系将多个节点进行连接,从而得到该web服务器的访问路径有向图。
[0103]
例如,a访问日志的内容为:访问路径为a,路径引用来源为b,访问者ip为c,b访问日志的内容为:访问路径为c,路径引用来源为a,访问者ip为c,则可以根据上述内容生成访问路径的有向图为b
→a→
c。
[0104]
需要说明的是,每个节点中可以包括该节点对应的访问路径的多个属性信息,例如:属性一为访问路径被访问的次数,属性二为访问路径作为起始访问路径次数,属性三为访问当前路径的访问者ip的个数。其中,起始访问路径即为该访问路径为访问者通过查询得到的,而非通过跳转的方式得到的,并且,被访问次数中包括访问路径作为起始访问路径次数。
[0105]
图2是根据本技术实施例提供的可选的访问路径的第一有向图,如图2所示,多个访问日志中存在:a访问日志的内容为:访问路径为a,路径引用来源为c,访问者ip为c,b访问日志的内容为:访问路径为c,路径引用来源为a,访问者ip为c,则在访问路径的有向图中存在a访问路径和c访问路径之间相互指向对方的现象,同样的,a访问路径和d访问路径、c访问路径和d访问路径之间也相互指向对方,由于仅存在c访问日志的内容为:访问路径为b,路径引用来源为c,访问者ip为g,则访问路径有向图中仅存在c访问路径的节点指向b访问路径的节点的现象。
[0106]
可选地,在本技术实施例提供的异常访问行为的检测装置中,第二生成单元53包
括:第一判断模块,用于判断节点是否为孤立节点,其中,孤立节点表征节点在有向图中无连接关系;第一确定模块,用于在节点为孤立节点的情况下,将节点确定为候选节点;和/或第二判断模块,用于确定节点的父节点的数量,并判断父节点的数量是否大于第一预设数量;第二确定模块,用于在父节点的数量大于第一预设数量的情况下,将节点确定为候选节点。
[0107]
具体的,在得到访问路径有向图后,可以通过有向图直观的确定每个节点的连接关系,因此,可以通过两种方式在访问路径有向图中确定候选节点,一种方式是确定是否存在孤立节点,也即,该节点与任意节点均无连接关系,图3是根据本技术实施例提供的可选的访问路径的第二有向图,如图3所示,如图3中的节点1所示,节点1与任意一个节点均无连接关系,则将节点1确定为候选节点。
[0108]
进一步的,当某个节点出现过多父节点的时候,该节点同样被确定为候选节点,图4是根据本技术实施例提供的可选的访问路径的第三有向图,如图4所示,图4中的节点2的存在8个父节点,在第一预设数量为5的情况下,节点2的父节点过多,则将节点2确定为候选节点。
[0109]
可选地,在本技术实施例提供的异常访问行为的检测装置中,节点信息还包括第一访问次数和第二访问次数,第一访问次数为候选节点的访问路径被查找访问的访问次数,第二访问次数为候选节点的访问路径被跳转访问的访问次数,在根据各个候选节点的节点信息生成目标矩阵之前,该装置还包括:第一判断单元,用于判断每个候选节点对应的访问者ip的数量是否大于第二预设数量;第一删除单元,用于在候选节点对应的访问者ip的数量大于第二预设数量的情况下,删除候选节点,得到更新后的多个候选节点,并通过更新后的多个候选节点执行根据各个候选节点的节点信息生成目标矩阵的步骤;和/或计算单元,用于将候选节点的第一访问次数与第二访问次数相除,得到候选节点的初次访问率;第二判断单元,用于判断初次访问率是否小于等于访问率阈值;第二删除单元,用于在初次访问率小于等于访问率阈值的情况下,删除候选节点,得到更新后的多个候选节点,并通过更新后的多个候选节点执行根据各个候选节点的节点信息生成目标矩阵的步骤。
[0110]
需要说明的是,为了防止出现对候选节点的误判现象,在得到多个候选节点后,还需要对候选节点进行一次筛选,从而得到最终的候选节点。
[0111]
具体的,在得到多个候选节点后,确定每个候选节点的属性中的访问者ip的数量是否大于第二预设数量,在大于第二预设数量的情况下,表明该候选节点对应的访问路径被较多的ip访问过,则该访问路径对应的访问行为一定不是webshell访问,因此可以将该候选节点从多个候选节点中进行删除。
[0112]
进一步的,还可以通过候选节点的初次访问率对候选节点进行判断,其中,初次访问率即为候选节点的访问路径被查找访问的访问次数,也即访问路径为直接访问路径的次数,和候选节点的访问路径被跳转访问的访问次数,也即访问路径从其他访问路径跳转访问的次数,将两个访问次数相除,得到初次访问率,并判断初次访问率是否小于等于访问率阈值,在小于等于访问率阈值的情况下,表明该访问路径并非经常被定向访问,因此该候选节点对应的访问路径的访问行为并非webshell访问,可以将该候选节点从多个候选节点中进行删除。
[0113]
可选地,在本技术实施例提供的异常访问行为的检测装置中,第二生成单元53包
括:构建模块,用于以访问路径为列,以访问者ip为行,构建访问路径和访问者ip的表格,并将每个访问者ip访问每个访问路径的访问次数添加至表格中,得到初始关系矩阵;获取模块,用于获取初始关系矩阵的转置矩阵,得到初始转置矩阵;第一计算模块,用于将初始转置矩阵和初始关系矩阵相乘,得到度量矩阵;第二计算模块,用于将度量矩阵中的对角线元素进行归一化,得到目标矩阵。
[0114]
具体的,在得到多个候选节点后,可以根据候选节点的节点信息构建目标矩阵,并通过对目标矩阵进行变换,得到更新后的目标矩阵,从而可以通过更新后的目标矩阵更好的确定异常节点。
[0115]
例如,目标矩阵可以为:
[0116][0117]
其中,矩阵中的第一行表征ip1-ip4访问url1的次数,分别为10次、0次、10次、15次,以此类推,每一行均为一个url对应的各个ip的访问次数。
[0118]
进一步的,将目标矩阵进行转置,得到如下转置矩阵:
[0119][0120]
将目标矩阵和转置矩阵相乘,得到如下度量矩阵:
[0121][0122]
其中,度量矩阵中的行和列表征的内容均为ip信息,也即,矩阵中的每个数字表征ip与ip之间的相似度,例如,矩阵(1,1)的位置表征ip1和ip1之间的相似度。
[0123]
将度量矩阵中的对角线元素进行归一化,得到更新后的目标矩阵。
[0124][0125]
可选地,在本技术实施例提供的异常访问行为的检测装置中,确定单元54包括:第三确定模块,用于在目标矩阵中确定每个访问路径对应的行矩阵中的非零元素的数量,得到多个元素数量;第三判断模块,用于分别判断每个元素数量是否小于第三预设数量;第四确定模块,用于在元素数量小于第三预设数量的情况下,将元素数量对应的访问路径对应的节点确定为异常节点;和/或第五确定模块,用于在目标矩阵中确定每个访问路径对应的行矩阵中非零元素占行矩阵中全部元素的占比,得到多个元素占比;第四判断模块,用于分
别判断每个元素占比是否小于预设比例;第六确定模块,用于在元素占比小于预设比例的情况下,将元素占比对应的访问路径对应的节点确定为异常节点。
[0126]
具体的,在得到目标矩阵后,可以通过确定每个访问路径对应的行矩阵中的非零元素的数量,或者访问路径对应的行矩阵中非零元素占行矩阵中全部元素的占比,对每个访问路径是否异常进行确定。
[0127]
在访问路径对应的行矩阵中的非零元素的数量小于第三预设数量的情况下,确定该访问路径对应的访问行为为webshell访问,例如,非0元素个数小于40,则该访问路径对应的访问行为为webshell访问;或是,访问路径对应的行矩阵中非零元素占行矩阵中全部元素的占比小于预设比例,例如访问路径对应的行矩阵中非零元素占行矩阵中全部元素的占比小于10%,则该访问路径对应的访问行为为webshell访问,从而通过计算目标矩阵进行异常节点的确定,从而将异常节点对应的访问行为确定为异常访问,进而达到了准确的对异常访问进行检测的效果。
[0128]
可选地,在本技术实施例提供的异常访问行为的检测装置中,在通过目标矩阵从多个候选节点中确定异常节点之前,该装置还包括:第三判断单元,用于判断目标矩阵中的多个访问者ip中是否存在同一属地的访问者ip;更新单元,用于在存在同一属地的访问者ip的情况下,在目标矩阵中将多个同一属地的访问者ip对应的列矩阵相加,得到更新后的目标矩阵,并根据更新后的目标矩阵执行通过目标矩阵从多个候选节点中确定异常节点的步骤。
[0129]
具体的,在得到上述目标矩阵后,可以将目标矩阵中ip地址属于同一属地的列矩阵进行相加,得到更新后的目标矩阵,从而减小矩阵中的数据量,进而减小矩阵的计算量。
[0130]
例如,目标矩阵如下所示:
[0131][0132]
在目标矩阵中的ip2和ip3的属地相同的情况下,可以将ip2和ip3的列矩阵进行相加,得到变更后的目标矩阵。
[0133][0134]
上述异常访问行为的检测装置包括处理器和存储器,上述获取单元51,第一生成单元52,第二生成单元53,确定单元54等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。
[0135]
处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数来解决相关技术中通过代码文件的注释信息对访问行为进行检测的准确度低的问题。
[0136]
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/
或非易失性内存等形式,如只读存储器(rom)或闪存(flash ram),存储器包括至少一个存储芯片。
[0137]
本发明实施例提供了一种计算机可读存储介质,其上存储有程序,该程序被处理器执行时实现所述异常访问行为的检测方法。
[0138]
本发明实施例提供了一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行所述异常访问行为的检测方法。
[0139]
本发明实施例提供了一种电子设备,所述电子设备包括处理器、存储器及存储在存储器上并可在处理器上运行的程序,处理器执行程序时实现以下步骤:在网络服务器中获取多个访问日志,并获取每个访问日志中的访问路径和访问路径的至少一个路径引用来源,其中,每个访问日志中至少包括以下之一:访问路径、路径引用来源以及访问者ip;根据各个访问路径和每个访问路径的路径引用来源生成网络服务器的访问路径的有向图,其中,有向图中包括多个节点,每个节点表征一个访问路径;按照每个节点的节点连接数量从有向图中选取候选节点,得到多个候选节点,并根据各个候选节点的节点信息生成目标矩阵,其中,节点信息包括:节点对应的访问路径、访问路径的访问者ip,以及每个访问者ip的访问次数;通过目标矩阵从多个候选节点中确定异常节点,并将异常节点对应的访问路径确定为异常访问路径,将异常访问路径对应的访问行为确定为异常访问行为。本文中的设备可以是服务器、pc、pad、手机等。
[0140]
本技术还提供了一种计算机程序产品,当在数据处理设备上执行时,适于执行初始化有如下方法步骤的程序:在网络服务器中获取多个访问日志,并获取每个访问日志中的访问路径和访问路径的至少一个路径引用来源,其中,每个访问日志中至少包括以下之一:访问路径、路径引用来源以及访问者ip;根据各个访问路径和每个访问路径的路径引用来源生成网络服务器的访问路径的有向图,其中,有向图中包括多个节点,每个节点表征一个访问路径;按照每个节点的节点连接数量从有向图中选取候选节点,得到多个候选节点,并根据各个候选节点的节点信息生成目标矩阵,其中,节点信息包括:节点对应的访问路径、访问路径的访问者ip,以及每个访问者ip的访问次数;通过目标矩阵从多个候选节点中确定异常节点,并将异常节点对应的访问路径确定为异常访问路径,将异常访问路径对应的访问行为确定为异常访问行为。
[0141]
本领域内的技术人员应明白,本技术的实施例可提供为方法、系统、或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
[0142]
本技术是参照根据本技术实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0143]
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特
定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0144]
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0145]
在一个典型的配置中,计算设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。
[0146]
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flash ram)。存储器是计算机可读介质的示例。
[0147]
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
[0148]
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
[0149]
以上仅为本技术的实施例而已,并不用于限制本技术。对于本领域技术人员来说,本技术可以有各种更改和变化。凡在本技术的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本技术的权利要求范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1