一种网络攻击行为的检测方法和装置与流程

文档序号:30529385发布日期:2022-06-25 09:29阅读:164来源:国知局
一种网络攻击行为的检测方法和装置与流程

1.本技术涉及计算机领域,并且更具体地,涉及一种网络攻击行为的检测方法和装置。


背景技术:

2.随着网络安全技术的不断发展,在风险对抗场景中,对客户端进行网络攻击的攻击手法越来越多,这可能导致客户受到损失。因此,对客户端所受到的网络攻击进行早期判断就显得尤为重要。
3.目前,在判断客户端所受到的网络攻击的类型时,通常采用决策树(decision tree)的方式来实现。决策树是一种利用树的模型进行决策的多分类模型,利用决策树可对客户端所受到的网络攻击的类型进行判断。然而,决策树是基于已知类型的网络攻击的相关特征来构建的,在客户端受到未知的、新的网络攻击时,决策树无法判断、甚至会给出客户端未受到网络攻击的误判。由于决策树无法判断出新类型的网络攻击,只有在客户端遭受到的网络攻击产生严重后果引起技术人员关注时,才会去通过技术人员来确定客户端是否受到了新类型的网络攻击,此时再针对新发现的网络攻击类型去做攻防策略的调整已经稍显迟滞。
4.因此,如何及时发现新类型的网络攻击,成为一项亟待解决的技术问题。


技术实现要素:

5.本技术提供了一种网络攻击行为的检测方法和装置,以期可以及时发现新类型的网络攻击。
6.第一方面,本技术提供了一种网络攻击行为的检测方法,该方法包括:接收来自客户端的至少一个维度的特征数据;基于该至少一个维度的特征数据,以及预先构建的模型,确定异常分值,该模型包括与该至少一个维度一一对应的至少一个孤独树,每个孤独树基于历史数据中对应维度的特征数据构建得到;基于异常分值,确定客户端是否存在被攻击的风险。
7.第二方面,本技术提供了一种网络攻击行为的检测装置,该装置包括:收发模块和处理模块。其中,收发模块用于接收来自客户端的至少一个维度的特征数据;处理模块用于基于该至少一个维度的特征数据,以及预先构建的模型,确定异常分值,该模型包括与该至少一个维度一一对应的至少一个孤独树,每个孤独树基于历史数据中对应维度的特征数据构建得到;并用于基于异常分值,确定客户端是否存在被攻击的风险。
8.应理解,各个模块可通过执行计算机程序来实现相应的功能。
9.第三方面,本技术提供了一种网络攻击行为的检测装置,该装置包括处理器,用于执行计算机程序,以使得该装置实现上述第一方面中的方法。
10.第四方法,本技术提供了一种计算机程序产品,包括计算机程序,当计算机程序被运行时,实现上述第一方面中的方法。
11.第五方面,本技术提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,当计算机程序被处理器执行时,使处理器实现上述第一方面中的方法。
12.由于无论客户端是否受到网络攻击,还是受到的网络攻击是否为未知的、新类型的网络攻击,其网络行为均可通过客户端的至少一个维度的特征数据体现出来。本技术提供的方法,基于网络行为会涉及到的各种维度的特征数据来构建模型,使得构建所得的模型能够对新接收到的网络行为的特征数据进行分析,通过异常分值来表征其偏离正常的网络行为的程度,进而根据该异常分值来确定出客户端是否可能受到攻击。例如,如果异常分值高,则认为该网络行为偏离正常的网络行为的程度高,被攻击的风险较大;如果异常分值低,则认为该网络行为偏离正常的网络行为的程度低,被攻击的风险较小。因此,无论客户端受到已知类型的网络攻击,还是未知的、新类型的网络攻击,都可通过该异常分值来做出初步的判断,及时地确定出客户端是否存在被攻击的风险,尤其是针对未知的、新类型的网络攻击,无需等到网络攻击产生严重后果时才检测到。如此一来,便可针对被攻击的客户端做出响应,比如人工分析、做出相应攻防策略的调整等,进而提高网络安全性,提高用户的使用体验。
附图说明
13.图1是本技术实施例利用决策树来确定网络攻击类型的示意图;
14.图2是本技术实施例提供的模型构建方法的示意性流程图;
15.图3是本技术实施例提供的模型示意图;
16.图4是本技术实施例提供的网络攻击行为的检测方法的示意性流程图;
17.图5是本技术实施例提供的确定客户端异常分值的示意性流程图;
18.图6是本技术实施例提供的网络攻击行为的检测装置的示意图框图;
19.图7是本技术实施例提供的网络攻击行为的检测装置的另一示意性框图。
具体实施方式
20.下面将结合附图,对本技术中的技术方案进行描述。
21.本技术提供的技术方案可以应用于网络安全领域,特别是面向设备风险、流量推广、游戏返外挂等攻防激烈的场景中。
22.图1是适用于本技术实施例提供的利用决策树来确定网络攻击类型的示意图。图1所示的决策树可包含根节点、内部节点和叶节点。其中,根节点可为开启无障碍模式,内部节点可为重启次数和应用程序数量,叶节点为最终的类别,即a类型攻击、b类型攻击和c类型攻击。除叶节点外,每个节点处有相应的逻辑判断条件,比如,在无障碍模式处需要判断是否开启了无障碍模式,在重启次数节点处需要判断重启次数是否小于10次,以及在应用程序数量节点处需要判断应用程序数量是否小于15次。而在叶节点处,则输出了最终的攻击类别,比如可确定出网络攻击为a类型攻击、b类型攻击或c类型攻击。简而言之,决策树是一个利用树的模型进行决策的多分类模型。
23.当客户端将各种维度的特征数据上报给服务端时,服务端利用该模型的层层节点以及每个节点处的逻辑判断条件,就可确定出该客户受到了哪种类型的网络攻击。应理解,当客户端上报的各种维度的特征数据不满足决策树中的判断逻辑时,认为客户端没有受到
网络攻击。
24.应理解,图1所示的决策树的构造仅为示例性说明,本领域技术人员可根据实际需求设置包含有更多内部节点、更多叶节点、甚至更复杂的逻辑判断条件的决策树,本技术对此不加以限制。
25.目前,在网络安全风险对抗场景中,技术人员基于已知类型的网络攻击的相关特征来构建决策树,也就是利用决策树来对客户端所受到的网络攻击的类型进行判断时,仅能判断出已知类型的网络攻击,例如,图1中的决策树只能实现三种攻击类型的判断。然而,随着黑产的不断发展,新类型的网络攻击不断迭代产生。决策树无法判断出客户端是否受到了新类型的网络攻击,甚至会给出客户端未受到网络攻击的误判。只有在客户端所遭受的网络攻击产生严重后果时,才能通过技术人员的排查来确定出该客户端是否受到了新的网络攻击,此时再去做攻防策略的调整已经稍显迟滞。
26.鉴于此,本技术提供一种网络攻击行为的检测方法和装置。基于网络行为会涉及到的各种维度的特征数据来构建模型,使得构建所得的模型能够对新接收到的网络行为的特征数据进行分析,通过异常分值来表征其偏离正常的网络行为的程度,进而根据该异常分值来确定出客户端是否可能受到攻击。因此,无论客户端受到已知类型的网络攻击,还是未知的、新类型的网络攻击,都可通过该异常分值来做出初步的判断,及时地确定出客户端是否存在被攻击的风险,尤其是针对未知的、新类型的网络攻击,无需等到网络攻击产生严重后果时才检测到。如此一来,便可针对被攻击的客户端做出响应,比如人工分析、做出相应攻防策略的调整等,进而提高网络安全性,提高用户的使用体验。
27.下面将结合附图对本技术实施例提供的网络攻击行为的检测方法做详细说明。
28.为便于理解本技术实施例所提供的方法,下文先结合图2对本技术实施例提供的模型构建方法进行详细说明,然后结合图4对本技术实施例提供的网络攻击行为的检测方法进行详细说明。
29.图2为本技术实施例提供的模型构建方法的示意性流程图。图2所示的模型构建方法200可以包括步骤201和步骤202。应理解,该模型构建方法可以由模型构建设备来执行,该模型构建设备可以是服务端,也可以是其他设备。本技术对此不作限定。为了便于说明,本技术以服务端为例来进行说明。还应理解,该模型构建方法可以是离线构建,或者,也可以是在线构建,或者,先离线构建再在线构建,以对模型进行实时地更新。本技术对此不作限定。
30.下面详细说明图2所示的模型构建方法200中的各个步骤。
31.步骤201,服务端从历史数据中获取多个维度的特征数据。
32.具体地,服务端可以从过去预设时段内的历史数据中获取到多组数据,比如,服务端获取到了过去一周的五百组历史数据。每组数据包含多个维度的特征数据,其中,多个维度可以包括以下一项或多项:操作系统版本、是否开发者模式、是否充电状态、是否开启无障碍模式、是否调试模式、是否设置锁屏密码、是否充电时常亮、是否关闭调试模式连接鉴权、重启次数、启动时间、应用程序的数量,以及应用程序的安装时间。其中,调试模式例如可以为安卓系统的调试桥(android bebug bridge,adb)模式。因此,不同组数据包含的特征数据的维度可以不同,可以部分相同,也可以全部相同。在本技术中,服务端所获取到的多组数据可以为来自不同客户端的历史数据。
33.在网络行为中,客户端可能会产生正常的网络行为,也可能会产生异常的网络行为,但异常的网络行为发生的概率比较小。因此,服务端所获取的多组历史数据中,可以包括有正常的网络行为的特征数据,也可以包括有异常的网络行为的特征数据,异常的网络行为的特征数据在历史数据中占比较小。
34.应理解,本领域技术人员可根据实际需求设置预设时段,本技术对此不加以限制。
35.步骤202,服务端基于多个维度的特征数据构建模型,该模型包括对应于多个维度的多个孤独树(isolation tree),该多个孤独树中的每个孤独树由所对应维度的特征数据构建得到。
36.应理解,孤独森林(isolation forest)是一种快速异常检测方法,具有线性时间复杂度和高精准度,且无需定义黑白样本,可以用于进行异常数据的检测。用统计学来解释,在数据空间里面,分布稀疏的区域表示数据发生在此区域的概率很低,因而可以认为落在这些区域里的数据是异常的。即,异常数据可以为分布稀疏且离密度高的群体较远的点。
37.具体地,服务端在获取到多组数据后,由于每组数据都包含多个维度的特征数据,服务端就可提取到不同维度的特征数据集合。根据不同维度的特征数据集合,结合孤独森林算法,就可构建出用以表征不同维度的孤独树。应理解,由于不同组数据包含的维度可以不同,或部分相同,因此,不同维度的特征数据集合所包含的数据量也可以不同。
38.示例性地,假设服务端获取到了七组数据,且每组数据中均包含了操作系统版本、是否开发者模式、是否充电状态、是否开启无障碍模式、是否调试模式、是否设置锁屏密码、是否充电时常亮、是否关闭调试模式连接鉴权、重启次数、启动时间、应用程序的数量,及应用程序的安装时间这十二种维度的特征数据。针对重启次数这个维度,服务端可从每组数据中提取出对应的重启次数的信息,从而得到一个包含有七个重启次数的信息的特征数据集合。根据这个特征数据集合,利用孤独森林算法,就可构建出用以表征在重启次数的维度下的一个孤独树。因此,采用相同的方式,针对不同维度的特征数据集合,就可构建出十二个用于表征十二个不同维度的孤独树。
39.应理解,上述构建十二个不同维度的孤独树仅为示例性说明,本领域技术人员可根据实际需求构建更多或更少维度的孤独树,本技术对此不加以限制。
40.还应理解,在实际获取历史数据时,服务端获取到的为成千上万组的数据,本技术为了便于理解,以七组数据进行示例性说明,并不构成对本技术的限定。
41.进一步地,根据不同维度的特征数据集合,结合孤独森林算法,来构建用以表征不同维度的孤独树的具体过程可以如下。
42.服务端在确定出某一维度的特征数据集合后,确定出在该维度下,该特征数据集合中数据的最大值和最小值。以该特征为起始节点,并在该特征的最大值和最小值之间随机选择一个值,将该特征数据集合中小于该取值的数据划分到左分支,大于或等于该取值的数据划分到右分支。然后,在左右两个分支数据中,重复上述过程,构建出一个二叉树,即孤独树。如此,针对每个维度的特征数据集合,均可构建出一个孤独树。
43.应理解,在满足如下条件时,可不再继续对数据进行左右分支的划分。该条件为:在该分支下,数据不可再分,即该分支下只包含一条数据,或在该分支中数据相同,无法再划分为左右两个分支的数据;或者,二叉树达到限定的最大深度。
44.示例性地,下面结合图3对孤独树的构建过程进行说明。
45.如图3中的(a)所示,示出了构建重启次数维度下的孤独树的过程。
46.假设服务端确定出包含有七个重启次数的信息的特征数据集合,该特征数据集合中,这七个数据的重启次数分别为重启1次、重启2次、重启4次、重启5次、重启6次、重启8次和重启16次。
47.在构建孤独树时,以重启次数为起始节点,确定出这七个数据中重启次数的最大值为16次,最小值为1次,则可随机选择一个值,如选择10次,将重启次数小于10次的数据划分到左分支,将重启次数大于或等于10次的数据划分到右分支。如此,重启次数小于10的左分支中就划分有6个数据,重启次数大于或等于10的右侧分支划分仅有1个数据。
48.由于重启次数大于或等于10的右分支的数据只包含了一个数据,则不再进行下一步划分。针对重启次数小于10的左分支,重新确定出重启次数的最大值为10次,最小值为1次,则可随机选择一个值,如选择5次,进一步将重启次数小于5次的数据划分到左分支,将重启次数大于或等于5次的数据划分到右分支。如此,重启次数小于5的左分支和重启次数大于或等于5的右分支分别划分有三个数据。
49.进一步地,针对重启次数小于5的左分支和重启次数大于或等于5的右分支,分别重新随机选择一个值,比如,重启次数小于5的左分支再次选择重启次数为3次,重启次数大于或等于5的右分支再次选择重启次数为7次。则,重启次数小于5的左分支进一步将重启次数小于3次的数据划分到左分支,将重启次数大于或等于3次的数据划分到右分支。此时,重启次数大于或等于3次的分支只包含了一个数据,不再进行划分。重启次数小于3次的分支可再次随机选择一个值,如选择2次,则再次得到重启次数小于2的左分支和重启次数大于或等于2的右分支,且这两个分支均只包含一个数据,不再进行划分。同样地,重启次数大于或等于5的右分支再次选择重启次数为7次的划分方式与前述划分左右分支的方式相同,在此不再赘述。如此,经过上述每层左右分支的划分,就可将每个数据均划分出来,从而得到一个构建好的孤独树。
50.应理解,其它维度的孤独树的构建方式也可参考对图3中的(a)的说明实现,不再赘述。
51.还应理解,对于无法表征具体数值的维度,例如,是否开发者模式、是否充电模式、是否设置锁屏、是否充电时常亮、是否关闭调试模式连接鉴权,在确定孤独树的起始节点的最大值和最小值时,对于“是”的情况,可设定值1,对于“否”的情况,可设定值为0。因此,在划分左右分支时,在0至1之间随机选择一个值即可。
52.上述对数据的划分过程也可在空间维度上表现出来。如图3中的(b),示出了在一维平面下的数据切割示意图,即图3中的(b)中的坐标轴可代表的维度为重启次数。当服务端确定出前述包含有七个重启次数的信息的特征数据集合时,可将这七个数据显示在一维平面上,并根据前述划分左右分支的原理,在一维平面上不断随机选择一个值,经过多次切分后,可将各个数据切分出来。可以看出,重启次数为16次的数据点跟其它数据比较疏离,通过一次切分就可把它分离出来,而其它的数据点都聚在一起,需要更多次的切分才能分离出来。因此,重启次数为16次的数据点可以认为是异常数据点,其它数据点可以认为是正常数据点。
53.应理解,每个孤独树可对应一个维度,当孤独树的数量为多个时,数据在空间中的切分也是在多维度下的切分,此时,每个维度可对应一个坐标轴。
54.下面结合图4介绍网络攻击行为的检测方法。
55.图4是本技术实施例提供的网络攻击行为的检测方法的示意性流程图。图4所示的方法400可以应用于服务端。图4所示的方法400可以包括步骤401至步骤403。下面详细说明方法400中的各个步骤。
56.步骤401,服务端接收来自客户端的至少一个维度的特征数据。
57.具体地,可由客户端中的软件开发工具包(software development kit,sdk)将包含有至少一个维度的特征数据实时上报给服务端。其中,服务端在当前时刻可仅接收到一个客户端的特征数据,也可在当前时刻同时接收到多个客户端的特征数据。
58.sdk所上报的特征数据同样可以包括以下一项或多项维度:操作系统版本、是否开发者模式、是否充电状态、是否开启无障碍模式、是否调试模式、是否设置锁屏密码、是否充电时常亮、是否关闭调试模式连接鉴权、重启次数、启动时间、应用程序的数量,以及应用程序的安装时间。
59.步骤402,服务端基于该至少一个维度的特征数据,以及预构建的模型,确定异常分值,该模型包括与该至少一个维度一一对应的至少一个孤独树,每个孤独树基于历史数据中对应维度的特征数据构建得到。
60.在本技术中,针对每一个客户端所发送的特征数据,服务端就可根据每个客户端所发送的包含有至少一个维度的特征数据,结合预先构建好的相应维度的孤独树,来确定异常分值。
61.应理解,由于上文已经结合图2和图3对模型构建的方法进行了详细说明,此处不再赘述。
62.可选地,参照图5,步骤402具体可以通过步骤4021和步骤4022来实现。
63.在步骤4021中,服务端将至少一个维度的特征数据中每个维度的特征数据输入至所对应的孤独树,以确定每个维度的特征数据在孤独树中的深度值。
64.具体地,服务端在接收到任意一个客户端的特征数据后,可确定出该特征数据包含了哪些维度的特征数据,从而在预先构建好的多个孤独树中确定出对应维度的孤独树,将每个维度的特征数据输入进相应维度的孤独树中,从而确定出每个维度的特征数据在每个相应维度的孤独树中的深度值。
65.任一维度的特征数据在对应的任一维度的孤独树上的深度值h(x),可通过下面的公式计算:
66.h(x)=e+c(t.size)
67.其中,e表示某一维度的特征数据从对应维度的孤独树的根节点到叶节点过程中经过的边的数目,t.size表示同样落在该特征数据所在叶子节点的特征数据的数量,c(t.size)为修正值,表示用t.size个数据构建的二叉树的平均路径长度。
68.此时,c(t.size)的计算公式如下:
[0069][0070]
其中,h(t.size-1)可用ln(t.size-1)+0.5772156649估算。
[0071]
在本技术中,服务端接收到一个客户端的特征数据时,t.size可取值为0。
[0072]
示例性地,服务端接收到来自客户端a的特征数据,该特征数据包括以下维度的特
征数据:重启次数、启动时间、应用程序的数量。则,服务端从预先构建好的多个孤独树中寻找出在重启次数维度下的孤独树、在启动时间维度下的孤独树、在应用程序的数量维度下的孤独树。将这三个特征数据分别输入进三棵孤独树,确定出这三个特征数据分别会落在三棵孤独树的哪个叶子节点上。假设客户端a的重启次数为15次,结合图3所示的构建好的孤独树,可知e=1。并且,由于服务端在当前只接收到了客户端a的特征数据,此时t.size=0。则可结合前述h(x)确定出客户端a在重启次数维度下的特征数据在重启次数维度下的孤独树的深度值。因此,服务端采用上述同样的方式就可确定出客户端a的三个维度的特征数据分别在三棵孤独树上的三个深度值。
[0073]
在本技术中,服务端在接收到多个客户端的特征数据时,t.size的取值取决于有多少客户端的特征数据中包含了与该孤独树相应维度的特征数据,以及在该孤独树中,有多少特征数据也落在了该特征数据所在的叶子节点。
[0074]
比如,服务端在接收到500个客户端的特征数据时,若这500个客户端的特征数据中只有400个客户端的特征数据中包含了重启次数,则有400个数据落在重启次数维度下的孤独树的根节点上,经过对每个数据的各自所在节点的划分,即每个数据找到各自的叶子节点后。假设服务端要确定客户端a的重启次数在该孤独树中的深度值,若发现该客户端a的重启次数所在的叶子节点上同样落有30个其它客户端的数据,则t.size可取值为30。
[0075]
在步骤4022中,服务端基于该至少一个维度的特征数据分别在所对应的孤独树中的深度值,确定该异常分值。
[0076]
具体地,对于任意一个客户端,服务端在确定出该客户端的每个维度的特征数据在相应维度的孤独树中的深度值后,就可通过下面的公式确定异常分值score(x):
[0077][0078]
其中,e(h(x))表示客户端的特征数据在多棵孤独树上的深度值的均值,ψ为单棵孤独树中落在起始节点的特征数据的数量,c(ψ)表示用ψ个数据构建的二叉树的平均路径长度。
[0079]
此时,c(ψ)的计算公式如下:
[0080][0081]
其中,h(ψ-1)可用ln(ψ-1)+0.5772156649估算。
[0082]
应理解,在服务端接收到来自一个客户端的特征数据时,ψ=1。在服务端接收到来自多个客户端的特征数据时,ψ取决于有多少客户端的特征数据中包含了与该孤独树相应维度的特征数据。比如,服务端在接收到500个客户端的特征数据时,若这500个客户端的特征数据中有400个客户端的特征数据中包含了重启次数,则ψ=400。
[0083]
步骤403,服务端基于异常分值,确定客户端是否存在被攻击的风险。
[0084]
可选地,步骤403具体可以包括:在异常分值大于或等于预设门限的情况下,服务端确定客户端存在被攻击的风险;或,在异常分值小于预设门限的情况下,服务端确定客户端不存在被攻击的风险。
[0085]
具体地,服务端确定出客户端的异常分值后,在异常分值大于或等于预设门限的
情况下,说明该客户端发送的至少一个维度的特征数据有异常,例如,每个维度的特征数据在对应的每个维度的孤独树中的深度值均较小,或部分维度的特征数据在对应的部分维度的孤独树中的深度值较小。换言之,存在部分或全部维度的特征数据相比正常的特征数据偏离度较大的情况。则服务端可确定客户端存在被攻击的风险,而客户端所受到的攻击可能是已知类型的网络攻击,也可能是未知的、新类型的网络攻击。相反,在异常分值小于预设门限的情况下,说明客户端发送的特征数据正常,则服务端可确定客户端不存在被攻击的风险。
[0086]
应理解,本领域技术人员可根据实际需求设置预设门限的具体大小,比如可设置预先门限为0.6,本技术对此不加以限制。
[0087]
可选地,服务端在确定客户端存在被攻击的风险之后,方法400还可以包括:
[0088]
服务端输出异常分值,以用于人工分析;获取人工分析结果,该人工分析结果基于人工分析得到,该人工分析结果指示客户端是否被攻击。
[0089]
具体地,服务端在确定出客户端存在被攻击的风险时,说明该客户端可能被黑产进行了攻击,黑产可能进行了已知类型的网络攻击,也可能进行了新类型的网络攻击。或者,该客户端也可能并没有被黑产攻击,只是客户端失误性地发出了异常的特征数据,模型产生了判断误差。此时,服务端就可将该异常分值输出给技术人员,由技术人员通过进一步地分析来确定该客户端是否真的被攻击、被攻击的攻击类型是什么,是否受到了新类型的网络攻击。其中,技术人员可根据异常分值的大小来确定客户端异常的程度,在异常程度比较大时,可根据更多维度的特征数据进行分析;在异常程度比较小时,可根据较少维度的特征数据进行分析。技术人员在进行人工分析后,可将分析的结果反馈给服务端。
[0090]
可选地,服务端在获取人工分析结果之后,还可以包括:基于人工分析结果和来自客户端的至少一个维度的特征数据,对模型进行优化。
[0091]
具体地,基于人工分析结果和来自客户端的至少一个维度的特征数据,执行如下一项或多项:在模型中增加孤独树;删除模型中的一个或多个孤独树;以及对模型中的一个或多个孤独树进行更新。
[0092]
在人工分析出客户端被攻击时,若判断出对该客户端的攻击类型是已知的网络攻击类型,则可基于来自该客户端送的至少一个维度的特征数据来对模型中的一个或多个孤独树进行更新,以提高模型的精度;若判断出对该客户端的攻击类型为未知的、新产生的网络攻击类型,则可通过对该新的网络攻击手法的相关特征进行分析,在模型中增加新的孤独树,从而在后续出现同类型的网络攻击时,可快速识别出客户端存在异常。在人工分析出客户端并未被攻击时,说明当前的模型的精度不够高,则可根据实际情况在模型中增加孤独树,或者删除模型中的一个或多个孤独树,亦或者利用该客户端上报的至少一个维度的特征数据对模型中的一个或多个孤独树进行更新,来提高模型的精度。
[0093]
由于无论客户端是否受到网络攻击,还是受到的网络攻击是否为未知的、新类型的网络攻击,其网络行为均可通过客户端的至少一个维度的特征数据体现出来。本技术提供的方法,基于网络行为会涉及到的各种维度的特征数据来构建模型,使得构建所得的模型能够对新接收到的网络行为的特征数据进行分析,通过异常分值来表征其偏离正常的网络行为的程度,进而根据该异常分值来确定出客户端是否可能受到攻击。例如,如果异常分值高,则认为该网络行为偏离正常的网络行为的程度高,被攻击的风险较大;如果异常分值
低,则认为该网络行为偏离正常的网络行为的程度低,被攻击的风险较小。因此,无论客户端受到已知类型的网络攻击,还是未知的、新类型的网络攻击,都可通过该异常分值来做出初步的判断,及时地确定出客户端是否存在被攻击的风险,尤其是针对未知的、新类型的网络攻击,无需等到网络攻击产生严重后果时才检测到。如此一来,便可针对被攻击的客户端做出响应,比如人工分析、做出相应攻防策略的调整等,进而提高网络安全性,提高用户的使用体验。
[0094]
以上,结合图2至图5详细描述了本技术实施例提供的方法。以下,结合图6至图7详细说明本技术实施例提供的装置。
[0095]
图6是本技术实施例提供的网络攻击行为的检测装置的示意性框图。如图6所示,该检测装置600可以包括:收发模块610和处理模块620。该检测装置600中的各模块可用于实现上文方法实施例中服务端的相应流程。
[0096]
具体地,收发模块610,可以用于接收来自客户端的至少一个维度的特征数据;处理模块620,可以用于基于该至少一个维度的特征数据,以及预先构建的模型,确定异常分值,该模型包括与该至少一个维度一一对应的至少一个孤独树,每个孤独树基于历史数据中对应维度的特征数据构建得到;基于异常分值,确定客户端是否存在被攻击的风险。
[0097]
可选地,该处理模块620可具体用于将该至少一个维度的特征数据中每个维度的特征数据输入至所对应的孤独树,以确定每个维度的特征数据在孤独树中的深度值;基于该至少一个维度的特征数据分别在所对应的孤独树中的深度值,确定异常分值。
[0098]
可选地,该处理模块620可具体用于在异常分值大于或等于预设门限的情况下,确定客户端存在被攻击的风险;或在异常分值小于预设门限的情况下,确定客户端不存在被攻击的风险。
[0099]
可选地,该处理模块620还可用于输出客户端的异常分值,以用于人工分析;获取人工分析结果,该人工分析结果基于人工分析得到,该人工分析结果指示客户端是否被攻击。
[0100]
可选地,该处理模块620还可用于基于人工分析结果和来自客户端的至少一个维度的特征数据,对模型进行优化。
[0101]
可选地,基于人工分析结果和来自客户端的至少一个维度的特征数据,执行如下一项或多项:在模型中增加孤独树;删除模型中的一个或多个孤独树;以及对模型中的一个或多个孤独树进行更新。
[0102]
可选地,该处理模块620还可用于从历史数据中获取多个维度的特征数据;基于多个维度的特征数据构建模型,该模型包括对应于多个维度的多个孤独树,该多个孤独树中的每个孤独树由所对应维度的特征数据构建得到。
[0103]
可选地,该多个维度包括以下一项或多项:操作系统版本、是否开发者模式、是否充电状态、是否开启无障碍模式、是否调试模式、是否设置锁屏密码、是否充电时常亮、是否关闭调试模式连接鉴权、重启次数、启动时间、应用程序的数量,以及应用程序的安装时间。
[0104]
应理解,本技术实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。另外,在本技术各个实施例中的各功能模块可以集成在一个处理器中,也可以是单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
[0105]
图7是本技术实施例提供的网络攻击行为的检测装置的另一示意性框图。该检测装置700可用于实现上述方法400中服务端的功能。该装置700可以为芯片系统。本技术实施例中,芯片系统可以由芯片构成,也可以包含芯片和其他分立器件。
[0106]
如图7所示,该检测装置700可以包括至少一个处理器710,用于实现上文方法实施例中服务端的功能。
[0107]
可选地,该检测装置700还可以包括通信接口720,用于通过传输介质和其它设备进行通信,从而用于检测装置700可以和其它设备进行通信,当该检测装置700用于实现服务端的功能时,其它设备可以为客户端。该通信接口730例如可以是收发器、接口、总线、电路或者能够实现收发功能的装置。处理器710可利用通信接口730收发数据和/或信息,并用于实现图4对应的实施例中服务端所执行的方法。
[0108]
示例性地,当该装置700用于实现上文方法实施例中服务端的功能时,处理器710可用于控制通信接口720接收来自客户端的至少一个维度的特征数据;并可用于基于该至少一个维度的特征数据,以及预先构建的模型,确定异常分值,该模型包括与该至少一个维度一一对应的至少一个孤独树,每个孤独树基于历史数据中对应维度的特征数据构建得到;基于异常分值,确定客户端是否存在被攻击的风险。具体参见方法示例中的详细描述,此处不做赘述。
[0109]
该检测装置700还可以包括至少一个存储器730,用于存储程序指令和/或数据。存储器730和处理器710耦合。本技术实施例中的耦合是装置、单元或模块之间的间接耦合或通信连接,可以是电性,机械或其它的形式,用于装置、单元或模块之间的信息交互。处理器710可能和存储器730协同操作。处理器710可能执行存储器730中存储的程序指令。该至少一个存储器中的至少一个可以包括于处理器中。
[0110]
本技术实施例中不限定上述处理器710、通信接口720以及存储器730之间的具体连接介质。本技术实施例在图7中以处理器710、通信接口720以及存储器730通过总线连接。总线在图7中以粗线表示,其它部件之间的连接方式,仅是进行示意性说明,并不引以为限。该总线可以分为地址总线、数据总线、控制总线等。为便于表示,图7中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
[0111]
应理解,本技术实施例中的处理器可以是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法实施例的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是通用处理器、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列(field programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本技术实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本技术实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。
[0112]
还应理解,本技术实施例中的存储器可以是易失性存储器或非易失性存储器,或
可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(read-only memory,rom)、可编程只读存储器(programmable rom,prom)、可擦除可编程只读存储器(erasable prom,eprom)、电可擦除可编程只读存储器(electrically eprom,eeprom)或闪存。易失性存储器可以是随机存取存储器(random access memory,ram),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的ram可用,例如静态随机存取存储器(static ram,sram)、动态随机存取存储器(dynamic ram,dram)、同步动态随机存取存储器(synchronous dram,sdram)、双倍数据速率同步动态随机存取存储器(double data rate sdram,ddr sdram)、增强型同步动态随机存取存储器(enhanced sdram,esdram)、同步连接动态随机存取存储器(synchlink dram,sldram)和直接内存总线随机存取存储器(direct rambus ram,dr ram)。应注意,本文描述的系统和方法的存储器旨在包括但不限于这些和任意其它适合类型的存储器。
[0113]
本技术还提供了一种芯片,所述芯片包括至少一个处理器,用于实现上述图2、图4或图5所示实施例中服务端所涉及的功能。
[0114]
在一种可能的设计中,所述芯片还包括存储器,所述存储器用于保存程序指令和数据,存储器位于处理器之内或处理器之外。
[0115]
本技术还提供一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序(也可以称为代码,或指令)。当该计算机程序被运行时,使得计算机执行如图2、图4或图5所示实施例的方法。
[0116]
本技术还提供一种计算机程序产品,包括计算机程序,当计算机程序被允许时,实现如图2、图4或图5所示实施例的方法。
[0117]
本说明书中使用的术语“单元”、“模块”等,可用于表示计算机相关的实体、硬件、固件、硬件和软件的组合、软件、或执行中的软件。
[0118]
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各种说明性逻辑块(illustrative logical block)和步骤(step),能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。在本技术所提供的几个实施例中,应该理解到,所揭露的装置、设备和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,该单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0119]
该作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0120]
另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
[0121]
在上述实施例中,各功能单元的功能可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。该计算机程序产品包括一个或多个计算机指令(程序)。在计算机上加载和执行该计算机程序指令(程序)时,全部或部分地产生按照本技术实施例该的流程或功能。该计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。该计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,该计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。该计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。该可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,数字视频光盘(digital video disc,dvd))、或者半导体介质(例如固态硬盘(solid state disk,ssd))等。
[0122]
该功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。
[0123]
以上所述,仅为本技术的具体实施方式,但本技术的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应以所述权利要求的保护范围为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1