1.本发明涉及网络安全领域,尤其涉及一种网络扫描检测方法、装置及计算机存储介质。
背景技术:
2.网络扫描是网络攻击的侦查阶段,其目的是确定哪些ip地址已连接计算机,以及哪些应用程序正在这些计算机上运行。黑客在进行网络攻击时,一般首先会对目标网络进行扫描,目的就是要收集攻击目标的各种信息,然后就可以根据收集到的信息对目标进行分析,找到目标系统存在的漏洞,从而利用这些漏洞进行下一步攻击行动。
3.目前,对网络扫描的检测方法主要为统计特征与规则判断相结合的方式。例如专利cn106027559a中,对网络扫描的检测主要是对捕获的原始网络数据,按协议类型筛选分类;再从数据中还原每个会话,将会话按照ip聚类;统计每个ip所有会话的异常返回值数目,计算出异常返回值与正常返回值的数目比值;分析每个ip所有会话的请求模式,观察异常返回值对应的请求模式是否一致;根据比值和请求模式判断是否有攻击行为,当有攻击行为时,获取攻击者和攻击目标的ip信息,并相应地做出处理措施。
4.但上述方法是通过观察每个ip下所有会话的异常返回值来进行网络扫描判断的,属于先统计异常返回值比值特征,再利用规则设定来进行告警判断的方式。虽然该方法能够一定程度上发现网络扫描行为,但是其统计特征过于单一,且比值特征往往无法区分1/2与500/1000在实际业务上的区别;另一方面该检测方法最终判断是否有攻击行为是需要设定规则或阈值的,该方法往往对实际业务的理解要求较高,基于规则判断本身存在局限性,理论上是可以被绕过的,因此误报和漏报往往无法避免。而提高规则准确性的代价就是添加更多精细化规则,大量的规则不但给维护工作增加了难度,也拖累了整体性能。
5.针对现有技术中对不同网络扫描区分能力弱,误报率和漏报率较高的问题,目前还没有一个有效的解决办法。
技术实现要素:
6.为解决上述问题,本发明提供一种网络扫描检测方法、装置及计算机存储介质,提取每个报文信息中的目的ip端口特征值,根据目的ip端口特征值对每个目的ip进行打分,并综合所有目的ip的异常打分得到特殊的目的ip,以解决现有技术中对不同网络扫描区分能力弱,误报率和漏报率较高的问题。
7.为达到上述目的,一方面,本发明实施例提供了一种网络扫描检测方法,包括:提取各报文数据中的目的ip以及相应的目的ip端口特征值;采用孤立森林算法,根据各报文数据的目的ip端口特征值计算相应的所述目的ip的异常得分;通过四分位算法对所有目的ip的异常得分进行异常得分阈值计算,将大于所述异常得分阈值的所述目的ip的异常得分对应的目的ip标记为遭受网络扫描的目的ip。
8.进一步可选的,所述提取各报文数据中的目的ip以及相应的目的ip端口特征值,
包括:根据所述各报文数据的数据源类型解析所述各报文数据;对解析后的报文数据进行关键信息提取,得到初始关键信息;将所述初始关键信息进行格式标准化,得到关键信息;其中,所述关键信息至少包括所述目的ip以及相应的所述目的ip端口特征值。
9.进一步可选的,所述将所述初始关键信息进行格式标准化,得到关键信息之后,还包括:滤除所述关键信息中与白名单关联的关键信息,或与tcp协议以及udp协议无关的关键信息;删除所述关键信息中不符合业务逻辑的关键信息;对所述关键信息中缺失端口数据的关键信息进行数据补充。
10.进一步可选的,所述目的ip端口特征值,至少包括以下的一种或几种:目的ip下被访问的端口中top20端口的数量,其中,所述top20端口指黑客访问频率最高的20个端口;目的ip下被访问的端口中top1000端口的数量,其中,所述top1000端口指黑客访问频率最高的1000个端口;目的ip下被访问的端口总数;目的ip下被访问的关闭端口的数量;目的ip下被访问的udp端口数量。
11.进一步可选的,所述通过四分位算法对所有目的ip的异常得分进行异常得分阈值计算,包括:计算所有目的ip的异常得分的第三四分位数q3以及四分位距iqr;将所述第三四分位数q3与三倍的所述四分位距iqr之和q3 3iqr定义为所述异常得分阈值。
12.另一方面,本发明实施例还提供了一种网络扫描检测装置,包括:提取模块,用于提取各报文数据中的目的ip以及相应的目的ip端口特征值;评分模块,用于采用孤立森林算法,根据各报文数据的目的ip端口特征值计算相应的所述目的ip的异常得分;标记模块,用于通过四分位算法对所有目的ip的异常得分进行异常得分阈值计算,将大于所述异常得分阈值的所述目的ip的异常得分对应的目的ip标记为遭受网络扫描的目的ip。
13.进一步可选的,所述提取模块,包括:解析子模块,用于根据所述各报文数据的数据源类型解析所述各报文数据;关键信息提取子模块,用于对解析后的报文数据进行关键信息提取,得到初始关键信息;标准化子模块,用于将所述初始关键信息进行格式标准化,得到关键信息;其中,所述关键信息至少包括所述目的ip以及相应的所述目的ip端口特征值。
14.进一步可选的,所述提取模块还包括:过滤子模块,用于滤除所述关键信息中与白名单关联的关键信息,或与tcp协议以及udp协议无关的关键信息;删除子模块,用于删除所述关键信息中不符合业务逻辑的关键信息;数据补充子模块,用于对所述关键信息中缺失端口数据的关键信息进行数据补充。
15.进一步可选的,所述标记模块包括:计算子模块,用于计算所有目的ip的异常得分的第三四分位数q3以及四分位距iqr;阈值确定子模块,用于将所述第三四分位数q3与三倍的所述四分位距iqr之和q3 3iqr定义为所述异常得分阈值。
16.另一方面,本发明实施例还提供了一种计算机存储介质,其上存储有计算机程序,所述程序被处理器执行时实现上述的网络扫描检测方法。
17.上述技术方案具有如下有益效果:将端口作为分析切入点,获取每个目的ip的端口特征值,并根据端口特征值对每个目的ip进行评分,根据不同目的ip的异常得分,区分不同ip的异常程度,再综合这些ip异常得分确定一个异常阈值,将超过该异常阈值的目的ip确定为遭受网络扫描的目的ip,对网络扫描的检测是根据不同数据动态调节的,且无需人工参与,使对网络扫描的检测更加准确。
附图说明
18.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
19.图1是本发明实施例提供的网络扫描检测方法的流程图;图2是本发明实施例提供的提取关键信息方法的流程图;图3是本发明实施例提供的关键信息预处理方法的流程图;图4是本发明实施例提供的确定异常得分阈值方法的流程图;图5是本发明实施例提供的网络扫描检测装置的结构框图;图6是本发明实施例提供的提取模块的结构框图;图7是本发明实施例提供的标记模块的结构框图。
20.附图标记:100
‑
提取模块
ꢀꢀ
1001
‑
解析子模块
ꢀꢀ
1002
‑
关键信息提取子模块
ꢀꢀ
1003
‑
标准化子模块
ꢀꢀ
1004
‑
过滤子模块
ꢀꢀ
1005
‑
删除子模块
ꢀꢀ
1006
‑
数据补充子模块
ꢀꢀ
200
‑
评分模块
ꢀꢀ
300
‑
标记模块
ꢀꢀ
3001
‑
计算子模块
ꢀꢀ
3002
‑
阈值确定子模块。
具体实施方式
21.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
22.现有技术构造出的特征为异常返回值与正常返回值的比值,根据比值特征区分不同网络扫描时区分能力弱,且规则设定存在局限性,容易出现漏报和误报的问题。
23.为解决上述问题,本发明提供了一种网络扫描检测方法,图1是本发明实施例提供的网络扫描检测方法的流程图,如图1所示,包括:s101、提取各报文数据中的目的ip以及相应的目的ip端口特征值;报文数据是网络中交换与传输的数据单元,即站点一次性要发送的数据块,其中包含了将要发送的完整数据信息。
24.在各个报文数据中采集目的ip信息以及目的ip端口特征值信息,作为后续分析的基础。
25.s102、采用孤立森林算法,根据各报文数据的目的ip端口特征值计算相应的所述目的ip的异常得分;孤立森林是一种适用于连续数据的无监督异常检测方法,即不需要有标记的样本来训练模型,但是需要输入的特征是连续的。在孤立森林中,递归地随机分割数据集,直到所有的样本点都是孤立的。在这种随机分割的策略下,异常点通常具有较短的路径。
26.具体的,样本x的异常得分,即每个目的ip的异常得分通过下式计算:
其中,e(h(x))为样本x在一批孤立树中的路径长度的期望,为路径长度,为给定样本数n时路径长度的平均值。
27.的具体计算公式如下:其中,为调和数,该值可以被估计为。
28.s103、通过四分位算法对所有目的ip的异常得分进行异常得分阈值计算,将大于所述异常得分阈值的所述目的ip的异常得分对应的目的ip标记为遭受网络扫描的目的ip。
29.得到所有的目的ip的异常得分后,综合这些目的ip的异常得分,划定一个异常得分阈值,该阈值用于区分正常目的ip和异常目的ip。
30.异常阈值是根据不同目的ip的异常得分集的动态确定的,针对每一个目的ip的异常得分集都有一个自动分析后得到的异常阈值,这样的异常阈值划分方式使得确定异常目的ip的准确度更高。
31.作为一种可选的实施方式,图2是本发明实施例提供的提取关键信息方法的流程图,如图2所示,s101、所述提取各报文数据中的目的ip以及相应的目的ip端口特征值,包括:s1011、根据所述各报文数据的数据源类型解析所述各报文数据;网络扫描检测所用的数据源通常会根据实际业务场景的不同而不同,例如有些场景可以通过采集口对镜像流量来提供数据,而有些场景则只能提供离线pcap文件等形式的数据。因不同数据源类型对应不同的解析方式,因此为得到不同来源的报文数据中的信息,需要根据报文数据的数据源确定其数据解析方式,以实现对所有报文数据的解析。
32.s1012、对解析后的报文数据进行关键信息提取,得到初始关键信息;为减少后续的数据处理量,本实施例将对后续分析有价值的数据内容提取出来,以方便后续的数据处理,被提取出的对后续分析有价值的数据内容即为初始关键信息。
33.s1013、将所述初始关键信息进行格式标准化,得到关键信息;通常报文数据是以特定协议形式传递的,为方便后续处理,需要将多种数据格式转换为统一的可读字符串类型,为后续的分析工作提供可直接使用的分析数据。
34.作为一种可选的实施方式,初始关键信息可以转换为json、字典或数据框等形式。
35.其中,所述关键信息至少包括所述目的ip以及相应的所述目的ip端口特征值。
36.作为一种可选的实施方式,图3是本发明实施例提供的关键信息预处理方法的流程图,如图3所示,所述s1013、将所述初始关键信息进行格式标准化,得到关键信息之后,还包括:s1014、滤除所述关键信息中与白名单关联的关键信息,或与tcp协议以及udp协议无关的关键信息;若分析关键信息后,确定该关键信息与白名单有关,则判断该关键信息为正常,无需再参加后续的异常评分操作;另外,本实施例中分析的端口指传输层中的端口,即 tcp 和 udp 中的端口。若分析关键信息后,确定该关键信息的端口传输协议非tcp协议或udp协议,则判断该关键信息没有继续分析的价值,无需参加后续的异常评分操作。如此,可提前
将无后续分析价值的关键信息滤除,减少后续的数据处理量。
37.s1015、删除所述关键信息中不符合业务逻辑的关键信息;tcp 和 udp 中的端口以16 bit的数据来表示,它的个数有2的16次方(65536),即其端口号范围为0~65535。一般情况下不同的端口会运行不同的程序,例如http服务默认运行在80端口上,https服务默认运行在443端口上,mysql服务默认运行在3306端口上。
38.不符合业务逻辑的关键信息指其端口号出现在0~65535之外的关键信息,这样的关键信息为异常的数据信息,需要预先删除避免对后续分析的干扰。
39.s1016、对所述关键信息中缺失端口数据的关键信息进行数据补充。
40.数据的补充指的是当接收到的关键信息中端口数据存在缺失时,需要尝试根据已有信息对缺失的端口数据进行补充。例如,已知一关键数据的来源服务为http服务,当端口数据缺失时可以将http服务默认端口(80)作为缺失的端口数据补充入所述关键信息。
41.作为一种可选的实施方式,所述目的ip端口特征值,至少包括以下的一种或几种:目的ip下被访问的端口中top20端口的数量,其中,所述top20端口指黑客访问频率最高的20个端口;目的ip下被访问的端口中top1000端口的数量,其中,所述top1000端口指黑客访问频率最高的1000个端口;目的ip下被访问的端口总数;目的ip下被访问的关闭端口的数量;目的ip下被访问的udp端口数量。
42.将上述各特征端口数量作为目的ip端口特征值。
43.作为一种可选的实施方式,图4是本发明实施例提供的确定异常得分阈值方法的流程图,如图4所示,s103、所述通过四分位算法对所有目的ip的异常得分进行异常得分阈值计算,包括:s1031、计算所有目的ip的异常得分的第三四分位数q3以及四分位距iqr;四分位算法指先将所有目的ip的异常得分降序排列,并将该数据集合分成相等的四个部分,其中每部分包括25%的数据,处在各等分点的数值就是四分位数。四分位数有三个,第一个四分位数q1就是通常所说的四分位数,称为下四分位数,第二个四分位数q2就是中位数,第三个四分位数q3称为上四分位数。第三四分位数与第一四分位数的差距又称四分位距iqr。
44.s1032、将所述第三四分位数q3与三倍的所述四分位距iqr之和q3 3iqr定义为所述异常得分阈值。
45.本实施例中将第三四分位数q3与三倍的四分位距iqr之和,即q3 3iqr的值定义为异常得分阈值,将大于该异常的得分阈值的异常得分对应的地址认定为遭受网络扫描的ip地址。
46.本发明实施例还提供了一种网络扫描检测装置,图5是本发明实施例提供的网络扫描检测装置的结构框图,如图5所示,包括:提取模块100,用于提取各报文数据中的目的ip以及相应的目的ip端口特征值;报文数据是网络中交换与传输的数据单元,即站点一次性要发送的数据块,其中包含了将要发送的完整数据信息。
47.在各个报文数据中采集目的ip信息以及目的ip端口特征值信息,作为后续分析的基础。
48.评分模块200,用于采用孤立森林算法,根据各报文数据的目的ip端口特征值计算
相应的所述目的ip的异常得分;孤立森林是一种适用于连续数据的无监督异常检测方法,即不需要有标记的样本来训练模型,但是需要输入的特征是连续的。在孤立森林中,递归地随机分割数据集,直到所有的样本点都是孤立的。在这种随机分割的策略下,异常点通常具有较短的路径。
49.具体的,样本x的异常得分,即每个目的ip的异常得分通过下式计算::其中,e(h(x))为样本x在一批孤立树中的路径长度的期望,为路径长度,为给定样本数n时路径长度的平均值。
50.的具体计算公式如下:其中,为调和数,该值可以被估计为。
51.标记模块300,用于通过四分位算法对所有目的ip的异常得分进行异常得分阈值计算,将大于所述异常得分阈值的所述目的ip的异常得分对应的目的ip标记为遭受网络扫描的目的ip。
52.得到所有的目的ip的异常得分后,综合这些目的ip的异常得分,划定一个异常得分阈值,该阈值用于区分正常目的ip和异常目的ip。
53.异常阈值是根据不同目的ip的异常得分集的动态确定的,针对每一个目的ip的异常得分集都有一个自动分析后得到的异常阈值,这样的异常阈值划分方式使得确定异常目的ip的准确度更高。
54.作为一种可选的实施方式,图6是本发明实施例提供的提取模块的结构框图,如图6所示,所述提取模块100,包括:解析子模块1001,用于根据所述各报文数据的数据源类型解析所述各报文数据;网络扫描检测所用的数据源通常会根据实际业务场景的不同而不同,例如有些场景可以通过采集口对镜像流量来提供数据,而有些场景则只能提供离线pcap文件等形式的数据。因不同数据源类型对应不同的解析方式,因此为得到不同来源的报文数据中的信息,需要根据报文数据的数据源确定其数据解析方式,以实现对所有报文数据的解析。
55.关键信息提取子模块1002,用于对解析后的报文数据进行关键信息提取,得到初始关键信息;为减少后续的数据处理量,本实施例将对后续分析有价值的数据内容提取出来,以方便后续的数据处理,被提取出的对后续分析有价值的数据内容即为初始关键信息。
56.标准化子模块1003,用于将所述初始关键信息进行格式标准化,得到关键信息;通常报文数据是以特定协议形式传递的,为方便后续处理,需要将多种数据格式转换为统一的可读字符串类型,为后续的分析工作提供可直接使用的分析数据。作为一种可选的实施方式,初始关键信息可以转换为json、字典或数据框等形式。
57.其中,所述关键信息至少包括所述目的ip以及相应的所述目的ip端口特征值。
58.作为一种可选的实施方式,如图6所示,所述提取模块100还包括:过滤子模块1004,用于滤除所述关键信息中与白名单关联的关键信息,或与tcp协议以及udp协议无关的关键信息;若分析关键信息后,确定该关键信息与白名单有关,则判断该关键信息为正常,无需再参加后续的异常评分操作;另外,本实施例中分析的端口指传输层中的端口,即 tcp 和 udp 中的端口。若分析关键信息后,确定该关键信息的端口传输协议非tcp协议或udp协议,则判断该关键信息没有继续分析的价值,无需参加后续的异常评分操作。如此,可提前将无后续分析价值的关键信息滤除,减少后续的数据处理量。
59.删除子模块1005,用于删除所述关键信息中不符合业务逻辑的关键信息;tcp 和 udp 中的端口以16 bit的数据来表示,它的个数有2的16次方(65536),即其端口号范围为0~65535。一般情况下不同的端口会运行不同的程序,例如http服务默认运行在80端口上,https服务默认运行在443端口上,mysql服务默认运行在3306端口上。
60.不符合业务逻辑的关键信息指其端口号出现在0~65535之外的关键信息,这样的关键信息为异常的数据信息,需要预先删除避免对后续分析的干扰。
61.数据补充子模块1006,用于对所述关键信息中缺失端口数据的关键信息进行数据补充。
62.数据的补充指的是当接收到的关键信息中端口数据存在缺失时,需要尝试根据已有信息对缺失的端口数据进行补充。例如,已知一关键数据的来源服务为http服务,当端口数据缺失时可以将http服务默认端口(80)作为缺失的端口数据补充入所述关键信息。
63.作为一种可选的实施方式,所述目的ip端口特征值,至少包括以下的一种或几种:目的ip下被访问的端口中top20端口的数量,其中,所述top20端口指黑客访问频率最高的20个端口;目的ip下被访问的端口中top1000端口的数量,其中,所述top1000端口指黑客访问频率最高的1000个端口;目的ip下被访问的端口总数;目的ip下被访问的关闭端口的数量;目的ip下被访问的udp端口数量。将上述各特征端口数量作为目的ip端口特征值。
64.作为一种可选的实施方式,图7是本发明实施例提供的标记模块的结构框图,如图7所示,所述标记模块300包括:计算子模块3001,用于计算所有目的ip的异常得分的第三四分位数q3以及四分位距iqr;四分位算法指先将所有目的ip的异常得分降序排列,并将该数据集合分成相等的四个部分,其中每部分包括25%的数据,处在各等分点的数值就是四分位数。四分位数有三个,第一个四分位数q1就是通常所说的四分位数,称为下四分位数,第二个四分位数q2就是中位数,第三个四分位数q3称为上四分位数。第三四分位数与第一四分位数的差距又称四分位距iqr。
65.阈值确定子模块3002,用于将所述第三四分位数q3与三倍的所述四分位距iqr之和q3 3iqr定义为所述异常得分阈值。
66.本实施例中将第三四分位数q3与三倍的四分位距iqr之和,即q3 3iqr的值定义为异常得分阈值,将大于该异常的得分阈值的异常得分对应的地址认定为遭受网络扫描的ip地址。
67.本发明实施例还提供了一种计算机存储介质,其上存储有计算机程序,所述程序
被处理器执行时实现上述的网络扫描检测方法。
68.上述存储介质中存储有上述软件,该存储介质包括但不限于:光盘、软盘、硬盘、可擦写存储器等。
69.上述技术方案具有如下有益效果:将端口作为分析切入点,获取每个目的ip的多种端口特征值,并根据端口特征值对每个目的ip进行评分,根据不同目的ip的异常得分,区分不同ip的异常程度,再综合这些ip异常得分确定一个异常阈值,将超过该异常阈值的目的ip确定为遭受网络扫描的目的ip,对网络扫描的检测是根据不同数据动态调节的,且无需人工参与,使对网络扫描的检测更加准确。
70.以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
再多了解一些
本文用于企业家、创业者技术爱好者查询,结果仅供参考。