发明内容
为了克服现有技术的不足,本发明提供了一种扫描器指纹识别方法及其系统,能够实现包括Nmap、Zmap和Masscan等常见端口扫描器在内的扫描器指纹识别,为标记和追踪攻击者提供支持。具体采用的技术方案如下:
一种扫描器指纹识别方法,其特征在于,包括以下步骤:
获取原始流量;
提取通信行为特征;
检测攻击行为;
判断是否存在攻击行为;
如果存在,计算扫描器指纹;
根据已有扫描器指纹样本,预测扫描器类型。
优选的,所述原始流量为TCP通信流量,所述获取原始流量、提取通信行为特征包括以下步骤:
TCP通信流量镜像;
在一个周期内对镜像流量进行组包,筛选出SYN、SYN-ACK、RST和RST-ACK包,解析出毎类包的四元组数据和包的类型作为所述通信行为特征;
所述四元组数据包括源IP、目的IP、源端口、目的端口。
优选的,所述检测攻击行为包括:
针对所述源IP,统计所述一个周期内所述源IP的一级特征,得到特征向量后,根据自适应阈值检测攻击行为;所述攻击行为包括水平扫描、垂直扫描、块扫描或者暴力破解。
优选的,所述一级特征包括SYN包数量,SYN-ACK包数量,目的IP数,每个所述目的IP的平均端口数;
当所述SYN包数量与所述SYN-ACK包数量的数量差大于第一阈值时,判断属于疑似扫描行为;进一步的,统计所述源IP访问同一目的IP不同连接端口个数,如果所述源IP访问同一目的IP的不同连接端口个数大于第二阈值,则判断为垂直扫描行为;如果所述源IP连接的目的IP数大于第三阈值,则判断为水平扫描行为;如果所述源IP访问同一目的IP的不同连接端口个数大于第二阈值且所述源IP连接的目的IP数大于第三阈值,则判断为块扫描行为;
当所述SYN包数量与所述SYN-ACK包数量的数量差小于第一阈值时,判断属于疑似暴力破解行为;进一步的,如果探测记录数量大于第四阈值,则判断为暴力破解行为;所述探测记录数量为源IP对一个目的IP的一个目的端口发送的SYN包数量。
优选的,所述特征向量计算方法为,
其中,v表示所述特征向量,s表示所述SYN包数量,a表示所述SYN-ACK包数量,i表示所述目的IP数,p表示每个所述目的IP的平均端口数;
所述第一阈值的计算方式为,t1=max(mean(v),T1),其中,t1表示第一阈值,v表示特征向量,T1为设定阈值;
或者所述第二阈值的计算方式为,t2=max(mean(v),T2),其中,t2表示第二阈值,v表示特征向量,T2为设定阈值;
或者所述第三阈值的计算方式为,t3=max(mean(v),T3),其中,t3表示第三阈值,v表示特征向量,T3为设定阈值;
或者所述第四阈值的计算方式为,t4=max(mean(v),T4),其中,t4表示第四阈值,v表示特征向量,T4为设定阈值。
优选的,所述计算扫描器指纹包括:
对于存在所述攻击行为的源IP,提取出N条对不同目标的扫描记录,遍历所述扫描记录;
从所述每条扫描记录中计算扫描特征,并将所述扫描特征拼接提取所述扫描器指纹;其中N为正整数。
优选的,所述扫描特征包括所述源IP发送给一个目的IP的SYN包数量n1、RST包数量n2、RST-ACK包数量n3,80端口SYN包数量n4,所述目的IP发送给所述源IP的的SYN-ACK包数量n5、RST-ACK包数量n6,SYN包与扫描端口数的比例k;
所述扫描器指纹f=(n1,n2,n3,n4,n5,n6,k)。
优选的,所述扫描器类型包括Nmap、Zmap、Masscan和other;
所述根据已有扫描器指纹样本,预测扫描器类型包括以下步骤:
利用邻近算法计算所述扫描器指纹和已有扫描器指纹样本的距离,选取距离最近的M个扫描器指纹样本;根据所述M个扫描器指纹样本的类型判断扫描器类型;
其中,所述M为正整数。
一种扫描器指纹识别系统,包括:
获取装置,用于获取原始流量;
提取装置,用于提取通信行为特征;
检测装置,用于检测攻击行为;
判断装置,用于判断是否存在攻击行为;
计算装置,用于当存在攻击行为时,计算扫描器指纹;
预测装置,用于根据已有扫描器指纹样本,预测扫描器类型。
优选的,所述获取装置包括镜像单元,用于对TCP原始流量进行镜像;
所述提取装置包括组包单元和解析单元,所述组包单元用于在一个周期内对镜像流量进行组包,筛选出SYN、SYN-ACK、RST和RST-ACK包;所述解析单元用于解析出毎类包的四元组数据和包的类型作为所述通信行为特征;
所述检测装置包括统计单元和第一判断单元,所述统计单元用于统计SYN包数量,SYN-ACK包数量,目的IP数,每个所述目的IP的平均端口数;所述第一判断单元用于所述SYN包数量与所述SYN-ACK包数量的数量差是否大于第一阈值,当所述SYN包数量与所述SYN-ACK包数量的数量差大于第一阈值时,判断属于疑似扫描行为;当所述SYN包数量与所述SYN-ACK包数量的数量差小于第一阈值时,判断属于疑似暴力破解行为;
所述判断装置包括垂直扫描判断单元、水平扫描判断单元、块扫描判断单元和暴力破解判断单元;
所述垂直扫描判断单元用于判断所述源IP访问同一目的IP的不同连接端口个数是否大于第二阈值,如果是,则判断为垂直扫描行为;
所述水平扫描判断单元用于判断所述源IP连接的目的IP数是否大于第三阈值,如果是,则判断为水平扫描行为;
所述块扫描判断单元用于判断所述源IP访问同一目的IP的不同连接端口个数是否大于第二阈值且所述源IP连接的目的IP数是否大于第三阈值,如果两者都是,都判断为块扫描行为;
所述暴力破解判断单元用于判断探测记录数量是否大于第四阈值,如果是,则判断为暴力破解行为;所述探测记录数量为源IP对一个目的IP的一个目的端口发送的SYN包数量;
所述计算装置包括遍历单元、计算单元和拼接单元;
所述遍历单元用于遍历具有攻击行为的源IP的扫描记录;
所述计算单元用于根据所述扫描记录计算扫描特征;
所述拼接单元用于将所述扫描特征拼接为扫描器指纹;
所述预测装置包括选取单元和类型判断单元;
所述选取单元用于利用邻近算法计算所述扫描器指纹和已有扫描器指纹样本的距离,选取距离小于指定阈值的M个扫描器指纹样本;
所述类型判断单元用于根据所述M个扫描器指纹样本的类型判断扫描器类型;
其中所述M为正整数。
相比现有技术,本发明提供的扫描器指纹识识别方法通过对原始流量进行通信行为特征提取,检测攻击行为,当存在攻击行为时,计算扫描器指纹,最后根据已有扫描器指纹样本预测扫描器类型,无需通过检测扫描器HTTP请求的Header、请求参数中的特定字段,实现识别扫描器的目的,因此,该方法能够有效识别一般不发送或很少发送HTTP请求的端口扫描器。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,并可依照说明书的内容予以实施,以下以本发明的较佳实施例并配合附图详细说明如后。本发明的具体实施方式由以下实施例及其附图详细给出。
具体实施方式
下面,结合附图以及具体实施方式,对本发明做进一步描述,需要说明的是,在不相冲突的前提下,以下描述的各实施例之间或各技术特征之间可以任意组合形成新的实施例。
如图1所示,本发明提供了一种扫描器指纹识别方法,包括以下步骤:
S1:获取原始流量;
S2:提取通信行为特征;
S3:检测攻击行为;
S4:判断是否存在攻击行为;
S5:如果存在攻击行为,计算扫描器指纹;如果不存在攻击行为,则为正常访问,输出表示正常访问的结果,不进行扫描器指纹识别,也不执行步骤S6。
S6:根据已有扫描器指纹样本,预测扫描器类型。
在一个实施例中,所述原始流量为TCP通信流量,本实施例中,步骤S1获取原始流量包括步骤S11:TCP通信流量镜像;将所述TCP通信流量进行镜像,即把原始流量复制一份到一个特定的网络端口上,对其进行后续步骤的处理和分析。
进一步的,步骤S2提取通信行为特征包括步骤S21、S22。
S21:在一个周期内对镜像流量进行组包,筛选出SYN、SYN-ACK、RST和RST-ACK包;
S22:解析出毎类包的四元组数据和包的类型作为所述通信行为特征;
所述四元组数据包括源IP、目的IP、源端口、目的端口。
具体的,一个周期时间可以为30秒。以30秒作为一个周期,对TCP原始数据流进行组包,筛选出SYN、SYN-ACK、RST、RST-ACK包,解析出每类包的四元组(源IP、目的IP、源端口、目的端口)数据和包的类型作为通信行为特征,步骤S3根据所述通信行为特征进行攻击行为的检测。
进一步的,在上述实施例中,步骤S3检测攻击行为包括步骤S31和S32:
S31:针对所述源IP,统计所述一个周期内所述源IP的一级特征,得到特征向量;
S32:根据自适应阈值检测攻击行为;所述攻击行为包括水平扫描、垂直扫描、块扫描或者暴力破解。本步骤中,可以先对疑似扫描行为和疑似暴力破解行为进行判断,进一步的,再对水平扫描、垂直扫描、块扫描或者暴力破解等具体攻击行为进行判断。
在一个实施例中,所述一级特征包括SYN包数量s,SYN-ACK包数量a,目的IP数i,每个所述目的IP的平均端口数;
当所述SYN包数量s与所述SYN-ACK包数量a的数量差(s-a)大于第一阈值时,判断属于疑似扫描行为;假设第一阈值为20,则表示当源IP发送的SYN包数量s与接收到SYN-ACK包数量a的数量差(s-a)>20时,源IP有可能在执行扫描行为(攻击行为),则对扫描行为类型进行判断。因此,进一步的,统计所述源IP访问同一目的IP不同连接端口个数,如果所述源IP访问同一目的IP的不同连接端口个数大于第二阈值,则判断为垂直扫描行为;如果所述源IP连接的目的IP数大于第三阈值,则判断为水平扫描行为;如果所述源IP访问同一目的IP的不同连接端口个数大于第二阈值且所述源IP连接的目的IP数大于第三阈值,则判断为块扫描行为;
当所述SYN包数量s与所述SYN-ACK包数量a的数量差(s-a)小于第一阈值时,判断属于疑似暴力破解行为;假设第一阈值为20,则表示当源IP发送的SYN包数量s与接收到SYN-ACK包数量a的数量差(s-a)<20时,源IP有可能在执行暴力破解行为(攻击行为),则对是否在执行暴力破解行为进一步判断。因此,进一步的,如果探测记录数量大于第四阈值,则判断为暴力破解行为;所述探测记录数量为源IP对一个目的IP的一个目的端口发送的SYN包数量。
在本实施例中,步骤S31中的得到特征向量的计算方法可以为,
其中,v表示所述特征向量,s表示所述SYN包数量,a表示所述SYN-ACK包数量,i表示所述目的IP数,p表示每个所述目的IP的平均端口数;
所述第一阈值的计算方式可以为,t1=max(mean(v),T1),其中,t1表示第一阈值,v表示特征向量,T1为设定阈值;同样的,所述第二阈值的计算方式也可以为,t2=max(mean(v),T2),其中,t2表示第二阈值,v表示特征向量,T2为设定阈值;所述第三阈值的计算方式也可以为,t3=max(mean(v),T3),其中,t3表示第三阈值,v表示特征向量,T3为设定阈值;所述第四阈值的计算方式也可以为,t4=max(mean(v),T4),其中,t4表示第四阈值,v表示特征向量,T4为设定阈值。需要说明的是,T1、T2、T3、T4为人为制定的硬阈值,即由工作人员根据具体的网络环境设定的,如若工作人员不去更改,该值不会改变。
在一实施例中,步骤S5中计算扫描器指纹包括:
对于存在攻击行为的源IP,提取出N条对不同目标的扫描记录,遍历所述扫描记录;
从所述每条扫描记录中计算扫描特征,并将所述扫描特征拼接提取所述扫描器指纹;其中N为正整数。加入N为30,则表示对于存在扫描行为的源IP,提取出30条对不同目标的扫描记录(一个源IP对于一个目的IP的一个端口的认为是一条扫描记录),遍历扫描记录,从每条记录中计算扫描特征,将扫描特征拼接提取扫描器指纹f。
具体的,在本实施例中,所述扫描特征包括所述源IP发送给一个目的IP的SYN包数量n1、RST包数量n2、RST-ACK包数量n3,80端口SYN包数量n4,所述目的IP发送给所述源IP的的SYN-ACK包数量n5、RST-ACK包数量n6,SYN包与扫描端口数的比例k;
所述扫描器指纹f=(n1,n2,n3,n4,n5,n6,k)。
在上述实施例中,所述扫描器类型包括Nmap、Zmap、Masscan和other;
步骤S6根据已有扫描器指纹样本,预测扫描器类型包括:
利用邻近算法计算所述扫描器指纹和已有扫描器指纹样本的距离,选取距离最近的M个扫描器指纹样本;根据所述M个扫描器指纹样本的类型判断扫描器类型;其中,所述M为正整数。具体的,在计算得到一次扫描行为的扫描器指纹后,通过与样本库中已存储的扫描器指纹进行对比,计算两两之间的欧式距离,找到样本库中距离小于指定阈值的M个扫描器指纹样本,假设M=5,统计这5个指纹样本中数量最多的对应扫描器类型,即为该次扫描行为的扫描器类型。如果没有找到对应的扫描器类别,则判断该次扫描行为的扫描器类型为other。比如:如果不是Zmap、Zmap、Masscan,则判定为other。其中,所示指定阈值为工作人员根据网络环境设定的一固定值。
关于扫描器指纹和已有扫描器指纹样本的距离可以为欧式距离,对于扫描器指纹f,已知扫描器类别的指纹样本Fi,可根据距离选取距离最近的M个扫描器指纹样本,根据它们的类别投票得出最终执行该次扫描的扫描器类型。
基于上述扫描器指纹识别方法,本发明还提供了一种扫描器指纹识别系统,包括:获取装置11,用于获取原始流量;提取装置12,用于提取通信行为特征;检测装置13,用于检测攻击行为;判断装置14,用于判断是否存在攻击行为;计算装置15,用于当存在攻击行为时,计算扫描器指纹;预测装置16,用于根据已有扫描器指纹样本,预测扫描器类型。
进一步的,如图2所示,所述获取装置11包括镜像单元11,用于对TCP原始流量进行镜像;
所述提取装置12包括组包单元121和解析单元122,所述组包单元121用于在一个周期内对镜像流量进行组包,筛选出SYN、SYN-ACK、RST和RST-ACK包;所述解析单元122用于解析出毎类包的四元组数据和包的类型作为所述通信行为特征;
所述检测装置13包括统计单元131和第一判断单元132,所述统计单元131用于统计SYN包数量,SYN-ACK包数量,目的IP数,每个所述目的IP的平均端口数;所述第一判断单元132用于所述SYN包数量与所述SYN-ACK包数量的数量差是否大于第一阈值,当所述SYN包数量与所述SYN-ACK包数量的数量差大于第一阈值时,判断属于疑似扫描行为;当所述SYN包数量与所述SYN-ACK包数量的数量差小于第一阈值时,判断属于疑似暴力破解行为;
所述判断装置14包括垂直扫描判断单元141、水平扫描判断单元142、块扫描判断单元143和暴力破解判断单元144;
所述垂直扫描判断单元141用于判断所述源IP访问同一目的IP的不同连接端口个数是否大于第二阈值,如果是,则判断为垂直扫描行为;
所述水平扫描判断单元142用于判断所述源IP连接的目的IP数是否大于第三阈值,如果是,则判断为水平扫描行为;
所述块扫描判断单元143用于判断所述源IP访问同一目的IP的不同连接端口个数是否大于第二阈值且所述源IP连接的目的IP数是否大于第三阈值,如果两者都是,都判断为块扫描行为;
所述暴力破解判断单元144用于判断探测记录数量是否大于第四阈值,如果是,则判断为暴力破解行为;所述探测记录数量为源IP对一个目的IP的一个目的端口发送的SYN包数量;
所述计算装置15包括遍历单元151、计算单元152和拼接单元153;
所述遍历单元151用于遍历具有攻击行为的源IP的扫描记录;
所述计算单元152用于根据所述扫描记录计算扫描特征;
所述拼接单元153用于将所述扫描特征拼接为扫描器指纹;
所述预测装置16包括选取单元161和类型判断单元162;
所述选取单元161用于利用邻近算法计算所述扫描器指纹和已有扫描器指纹样本的距离,选取距离小于指定阈值的M个扫描器指纹样本;其中,所示指定阈值为工作人员根据网络环境设定的一固定值。
所述类型判断单元162用于根据所述M个扫描器指纹样本的类型判断扫描器类型;其中所述M为正整数。
以上,仅为本发明的较佳实施例而已,并非对本发明作任何形式上的限制;凡本行业的普通技术人员均可按说明书附图所示和以上而顺畅地实施本发明;但是,凡熟悉本专业的技术人员在不脱离本发明技术方案范围内,利用以上所揭示的技术内容而做出的些许更动、修饰与演变的等同变化,均为本发明的等效实施例;同时,凡依据本发明的实质技术对以上实施例所作的任何等同变化的更动、修饰与演变等,均仍属于本发明的技术方案的保护范围之内。