一种基于主机的网络攻击跳板检测方法及装置制造方法

文档序号:7804314阅读:286来源:国知局
一种基于主机的网络攻击跳板检测方法及装置制造方法【专利摘要】本发明涉及多级网络跳板主机检测领域,尤其是一种网络攻击跳板检测方法。本发明针对现有技术的问题,本发明提出了一种基于主机的网络攻击跳板检测方法及装置,通过网络追踪溯源找到攻击者,必然需要能够对网络攻击跳板主机进行检测,从而遏制通过跳板主机进行的网络攻击,并逐级找到隐匿在跳板主机后的攻击者。本发明中数据包捕获模块捕获该主机的数据包,数据流识别及分析模块接收数据包捕获模块捕获的数据包,跳板检测模块检测数据流组是否满足检测要求,若满足检测要求则进行检测,跳板检测模块对数据流组进行数据匹配并计算Echo_RTT只值与Ack_RTT值,判断Echo_RTT与Ack_RTT的关系值,确定跳板可信度等级。【专利说明】一种基于主机的网络攻击跳板检测方法及装置【
技术领域
】[0001]本发明涉及多级网络跳板主机检测领域,尤其是一种网络攻击跳板检测方法及装置。【
背景技术
】[0002]目前,网络攻击日益猖獗,攻击手段日益复杂,攻击者在实施网络攻击时通常会利用多级跳板主机来实施攻击步骤,从而达到隐匿攻击者身份的目的。跳板主机是指攻击者事先攻击并掌控的主机,攻击者通过逐级登录多个跳板主机,组成一个跳板攻击链,并通过最后一个跳板主机实施具体的网络攻击,如图1所述。由于从受害者只能追查找到最后一跳跳板主机,所以攻击者能够利用跳板攻击链达到逃避追踪、隐匿身份的目的。攻击者利用的跳板主机大都是其事先攻下的主机或者购买的虚拟主机,主要利用SSH、Telnet、rlogin、rsh等交互式登录会话协议组织攻击跳板链。对跳板主机的检测主要就是利用这些远程登录协议的特征及跳板主机间数据流的相关性进行检测。[0003]攻击者通常利用SSH、Telnet、rlogin、rsh等远程交互式会话协议登录并组织跳板攻击链,因此对跳板的检测方法主要集中在对多级跳板间通信特征的分析。正常情况下,一条主机间的远程登录会话链不会超过两跳,如果超过两跳则很有可能是攻击者蓄意组织的一条网络攻击跳板链。StanifordChen等人在文献《HoldingIntrudersAccountableontheInternet》提出了一种利用数据包指纹对比的方法来进行跳板链的检测,但是只能对未加密的会话进行检测,无法检测SSH等加密会话链。YinZhang和VernPaxson在文献《Detectingsteppingstones))中提出了一种基于数据包时间信息相关分析的跳板检测方法,该方法可以对加密的会话进行检测,但是这种方法的误报率较高,在真实的互联网环境下并不适用。JianhuaYang等人在文献《AReal-TimeAlgorithmtoDetectLongConnectionChainsofInteractiveTerminalSessions))提出了一种基于RTT(RoundTripTime)的跳板检测方法,该方法通过检测交互式会话中回送信息的延时判断跳板是否存在,但是该方法需要从会话初始建立时就对主机的数据流进行监控,对已建立的会话链无法进行检测。国内解放军信息工程大学的孙奕等人在文献《基于网络回声的跳板检测系统的设计与实现》提出了一种基于Web服务器端的跳板检测方法,能够检测访问Web服务器的主机是否为跳板主机。但是这种方法只能在Web攻击场景下实施,并且只能检测跳板主机的最后一跳,应用场景比较狭窄。[0004]在目前的互联网环境下,为了能够对网络攻击进行追踪溯源,找到通过跳板隐匿真实身份的攻击者,我们需要一种在真实网络环境下能够实时、准确、快速检测网络攻击跳板的方法。但是,当前对网络攻击跳板的检测大多仍集中在理论研究阶段,一些设计的检测算法只适用于实验环境,而另外一些检测方法则应用场景单一,难于在实际网络中应用。【
发明内容】[0005]本发明所要解决的技术问题是:针对现有技术网络攻击者在实施网络攻击时通常会利用多级跳板主机来实施攻击步骤,从而达到隐匿攻击者身份的目的问题,解决的思路是通过网络追踪溯源找到攻击者,必然需要能够对网络攻击跳板主机进行检测,从而遏制通过跳板主机进行的网络攻击,并逐级找到隐匿在跳板主机后的攻击者。本发明提出了一种基于主机的网络攻击跳板检测方法及装置,该方法通过监控主机的数据流,分析和识别与跳板攻击相关的数据流,并通过基于RTT的检测判别方法,能够快速有效地检测是否存在网络攻击跳板,有效解决网络攻击追踪溯源中跳板的检测与识别问题。相应的,通过方法对应的装置,分析和识别与跳板攻击相关的数据流,快速检测是否存在网络攻击跳板,有效解决网络攻击追踪溯源中跳板的检测与识别问题。[0006]本发明采用的技术方案如下:一种基于主机的网络攻击跳板检测方法包括:步骤1:数据包捕获模块捕获该主机的数据包,对每条数据包进行唯一标识,对数据包进行分类后输出,执行步骤2;所述数据包分为远程登录协议数据包和未识别应用层协议数据包;步骤2:数据流识别及分析模块接收数据包捕获模块捕获的数据包,判断是否为TCP数据包,若是TCP数据包,则将其分类加入等待跳板检测模块检测的数据流,建立分类数据流队列并进行分类保存,执行步骤3;否则丢弃本次数据包;步骤3:跳板检测模块检测分类数据流队列是否满足检测要求,若满足检测要求则进行检测,跳板检测模块对分类数据流队列进行数据匹配并计算Echo_RTT只值与Ack_RTT值,判断Echo_RTT与Ack_RTT的关系值,确定跳板可信度等级;否则,结束流程;其中Echo_RTT是发送数据包与回显数据包之间时间间隔值;Ack_RTT是发送数据包与相邻节点Ack数据包之间的时间间隔值。[0007]进一步的,所述步骤2具体步骤包括:步骤21:数据流识别及分析模块判断接收到捕获模块捕获的数据包,判断是否为TCP数据包,若是TCP数据包,则执行步骤2;否则,丢弃本次TCP数据包;步骤22:判断TCP数据包是否属于分类数据流队列的数据流,若不属于分类数据流队列的数据流,则建立分类数据流队列,将为本次TCP数据包加入建立后分类数据流队列中;否则,将本次TCP数据包加入对应分类数据流队列中,执行步骤23;步骤23:判断本次TCP数据包是否属于远程登录数据包,若属于远程登录数据包,则将本次TCP数据包直接加入相应分类数据流队列中;否则,执行步骤24;步骤24:进行TCP数据包应用层协议识别,将识别出远程登录协议数据包加入等待进行跳板检测的分类数据流队列;否则,执行步骤25:步骤25:对未识别为远程登录协议数据包进行判断,当本次TCP数据包中个数超过M个未识别、数据包中不足M且数据包捕获时间超过T,则丢弃本次数据包;否则,执行步骤21,其中M范围是5-10,T范围是5-10分钟。[0008]进一步的,所述步骤24中进行TCP数据包应用层协议识别是通过协议默认端口识别及协议识别负载特征串相结合的方法,其具体过程是:步骤241:识别TCP数据包的端口字段,根据远程登录协议的默认端口号进行判别,若是能根据远程登录协议默认端口号识别出TCP数据包;则将识别出远程登录协议数据包加入等待进行跳板检测的分类数据流队列;否则执行步骤242;步骤242:根据远程登录协议交互中数据包存在的特征字符串识别TCP数据包,将识别出远程登录协议数据包加入等待进行跳板检测的分类数据流队列;否则,结束操作。[0009]进一步的,所述步骤3跳板检测模块对分类数据流队列中TCP数据包进行数据匹配并计算Echo_RTT与Ack_RTT,判断Echo_RTT与Ack_RTT的关系值,确定跳板可信度等级的具体步骤为:步骤311:当X1-Xh兰60、t兰T且η兰N,执行步骤312,对分类数据流队列中TCP数据包进行Ack_RTT的匹配与计算;同时执行步骤315,对分类数据流队列中TCP数据包进行Echo_RTT的匹配计算;其中Xi为该分类数据流队列中TCP数据包数量,Xi^1为上一周期检测的数据包数量;T范围是5-10分钟A的捕获时间为t;X,检测周期数η;Ν范围为5_10,η表示检测的周期个数,t表示周期长度;步骤312:对于主机的分类数据流队列的每一个TCP数据包,提取TCP数据包中其发送的顺序号及TCP数据包载荷长度,并计算期待ACK序号=顺序号+数据包载荷长度;步骤313:提取TCP数据包中距离发送TCP数据包时间间隔最近的从机响应数据包,并提取从机响应数据包中ACK序号,若步骤312中计算的期待ACK序号与从机响应数据包的ACK序号相等,则这两个数据包是匹配的,通过计算这两个数据包的时间间隔,得到这两个数据包的Ack_RTT;步骤314:重复步骤312至步骤313得到多组Ack_RTT,并计算得到Ack_RTT平均值;步骤315:当使用明文传输的远程登录协议,那么通过直接匹配发送数据包和回送数据包的数据包载荷,如果包含相同内容,那么这两个数据包是匹配的,通过计算着两个数据包的时间间隔,得到这两个数据包的Echo_RTT;当使用密文传输的远程登录协议,执行步骤315;步骤316:对于使用密文传输的远程登录协议,那么使用如下方法:提取主机TCP数据包中其发送的顺序号及TCP数据包载荷长度,并计算主机的期待ACK序号=顺序号+数据包载荷长度;对收到的从机发送的TCP数据包Q获取ACK序号及序列号,当满足P的ACK序号与Q的序列号相等且P的序列号小于Q的ACK序号,且P的序列号小于Q的ACK序号,则称TCP数据包P和TCP数据包Q是匹配的发送和回显数据包,计算所述发送数据包和回显数据包的时间间隔得到Echo_RTT;步骤317:重复步骤315至步骤316,得到多组Echo_RTT,计算得到Echo_RTT平均值。[0010]进一步的,所述步骤3中跳板检测模块判断Echo_RTT与Ack_RTT的关系值,确定跳板可信度等级,具体步骤为:步骤321:若Echo_RTT与Ack_RTT的比值大于等于3,RTT值的匹配组数比例大于等于50%,则判定为高等级;若Echo_RTT与Ack_RTT的比值大于等于3,RTT值的匹配组数比例小于50%,则判定为中等级;其余为低等级;步骤322:如果数据流捕获时间超过10分钟且检测周期大于超过M,那么对仍未检测出跳板的数据流判定为不是跳板数据,丢弃本数据,M范围是5到10。[0011]一种基于主机的网络攻击跳板检测装置包括:数据包捕获模块、数据流识别及分析模块以及跳板检测模块,所述数据包捕获模块:捕获该主机的数据包,对每条数据包进行唯一标识,对数据包进行分类后输出;所述数据包分为远程登录协议数据包和未识别应用层协议数据包;数据流识别及分析模块:接收数据包捕获模块捕获的数据包,识别出TCP数据流,并将其分类加入等待跳板检测模块检测的数据流,建立分类数据流队列并进行分类保存;将未识别的数据包丢弃;跳板检测模块检测分类数据流队列是否满足检测要求,若满足检测要求则进行检测,跳板检测模块对分类数据流队列进行数据匹配并计算Echo_RTT只值与Ack_RTT值,判断Echo_RTT与Ack_RTT的关系值,确定跳板可信度等级。[0012]进一步的,所述数据流识别及分析模块接收数据包捕获模块捕获的数据包,识别出TCP数据流,并将其分类加入等待跳板检测模块检测的数据流,建立分类数据流队列并进行分类保存;将未识别的数据包丢弃具体步骤包括:步骤21:数据流识别及分析模块判断接收到捕获模块捕获的数据包,判断是否为TCP数据包,若是TCP数据包,则执行步骤2;否则,丢弃本次TCP数据包;步骤22:判断TCP数据包是否属于分类数据流队列的数据流,若不属于分类数据流队列的数据流,则建立分类数据流队列,将为本次TCP数据包加入建立后分类数据流队列中;否则,将本次TCP数据包加入对应分类数据流队列中,执行步骤23;步骤23:判断本次TCP数据包是否属于远程登录数据包,若属于远程登录数据包,则将本次TCP数据包直接加入相应分类数据流队列中;否则,执行步骤24;步骤24:进行TCP数据包应用层协议识别,将识别出远程登录协议数据包加入等待进行跳板检测的分类数据流队列;否则,执行步骤25:步骤25:对未识别为远程登录协议数据包进行判断,当本次TCP数据包中个数超过M个未识别、数据包中不足M且数据包捕获时间超过T,则丢弃本次数据包;否则,执行步骤21,其中M范围是5-10,T范围是5-10分钟。[0013]进一步的,所述步骤24中进行TCP数据包应用层协议识别是通过协议默认端口识别及协议识别负载特征串相结合的方法,其具体过程是:步骤241:识别TCP数据包的端口字段,根据远程登录协议的默认端口号进行判别,若是能根据远程登录协议默认端口号识别出TCP数据包;则将识别出远程登录协议数据包加入等待进行跳板检测的分类数据流队列;否则执行步骤242;步骤242:根据远程登录协议交互中数据包存在的特征字符串识别TCP数据包,将识别出远程登录协议数据包加入等待进行跳板检测的分类数据流队列;否则,结束操作。[0014]进一步的,所述跳板检测模块分类数据流队列中TCP数据包进行数据匹配并计算Echo_RTT与Ack_RTT,判断Echo_RTT与Ack_RTT的关系值,确定跳板可信度等级的具体步骤为:步骤311:当X1-Xh兰60、t兰T且η兰N,执行步骤312,对分类数据流队列中TCP数据包进行Ack_RTT的匹配与计算;同时执行步骤315,对分类数据流队列中TCP数据包进行Echo_RTT的匹配计算;其中Xi为该分类数据流队列中TCP数据包数量,Xi^1为上一周期检测的数据包数量;T范围是5-10分钟A的捕获时间为t;X,检测周期数η;Ν范围为5_10,η表示检测的周期个数,t表示周期长度;步骤312:对于主机的分类数据流队列的每一个TCP数据包,提取TCP数据包中其发送的顺序号及TCP数据包载荷长度,并计算期待ACK序号=顺序号+数据包载荷长度;步骤313:提取TCP数据包中距离发送TCP数据包时间间隔最近的从机响应数据包,并提取从机响应数据包中ACK序号,若步骤312中计算的期待ACK序号与从机响应数据包的ACK序号相等,则这两个数据包是匹配的,通过计算这两个数据包的时间间隔,得到这两个数据包的Ack_RTT;步骤314:重复步骤312至步骤313得到多组Ack_RTT,并计算得到Ack_RTT平均值;步骤315:当使用明文传输的远程登录协议,那么通过直接匹配发送数据包和回送数据包的数据包载荷,如果包含相同内容,那么这两个数据包是匹配的,通过计算着两个数据包的时间间隔,得到这两个数据包的Echo_RTT;当使用密文传输的远程登录协议,执行步骤315;步骤316:对于使用密文传输的远程登录协议,那么使用如下方法:提取主机TCP数据包中其发送的顺序号及TCP数据包载荷长度,并计算主机的期待ACK序号=顺序号+数据包载荷长度;对收到的从机发送的TCP数据包Q获取ACK序号及序列号,当满足P的ACK序号与Q的序列号相等且P的序列号小于Q的ACK序号,且P的序列号小于Q的ACK序号,则称TCP数据包P和TCP数据包Q是匹配的发送和回显数据包,计算所述发送数据包和回显数据包的时间间隔得到Echo_RTT;步骤317:重复步骤315至步骤316,得到多组Echo_RTT,计算得到Echo_RTT平均值。[0015]进一步的,所述步骤3中跳板检测模块判断Echo_RTT与Ack_RTT的关系值,确定跳板可信度等级,具体步骤为:步骤321:若Echo_RTT与Ack_RTT的比值大于等于3,RTT值的匹配组数比例大于等于50%,则判定为高等级;若Echo_RTT与Ack_RTT的比值大于等于3,RTT值的匹配组数比例小于50%,则判定为中等级;其余为低等级;步骤322:如果数据流捕获时间超过10分钟且检测周期大于超过M,那么对仍未检测出跳板的数据流判定为不是跳板数据,丢弃本数据,M范围是5到10。[0016]综上所述,由于采用了上述技术方案,本发明的有益效果是:1、本发明提出了一种基于主机的网络攻击跳板检测方法和装置,通过监控和分析主机的数据流,对比数据流中RTT的变化,判断主机是否为网络攻击跳板,为遏止利用跳板进行的网路攻击和对攻击者的追踪溯源提供关键?目息。[0017]2、本发明设计的网络攻击跳板检测方法及系统利用远程登录协议的特点,通过对数据流进行相关分析,计算并比较RTT值来判断主机是否为跳板,能够快速有效地实现对跳板主机的检测。网络攻击跳板主机的判定可以帮助对进行中的网络攻击链进行阻断,并且能够为网络攻击溯源中对上一跳的追踪提供关键信息。[0018]3、本发明设计了一种快速有效的跳板检测方法,能够在实际的网络环境中实时对网络攻击跳板进行检测,误报率及漏报率较低。同时,本发明能够利用数据流的部分数据包进行检测,减小了检测算法的时间及空间复杂度,并根据收集的信息对疑似跳板给予不同的可信等级,提高了判定的准确度及可行度。【专利附图】【附图说明】[0019]本发明将通过例子并参照附图的方式说明,其中:图1网络攻击跳板示意图。[0020]图2主机发送“ps”命令到远程主机并返回结果的示意图。[0021]图3主机与邻近主机间的Ack_RTT值示意图。[0022]图4是本发明结构框图。[0023]图5是本发明数据流识别及分析模块工作流程图。[0024]图6跳板检测模块流程图。【具体实施方式】[0025]本说明书中公开的所有特征,或公开的所有方法或过程中的步骤,除了互相排斥的特征和/或步骤以外,均可以以任何方式组合。[0026]本说明书(包括任何附加权利要求、摘要和附图)中公开的任一特征,除非特别叙述,均可被其他等效或具有类似目的的替代特征加以替换。即,除非特别叙述,每个特征只是一系列等效或类似特征中的一个例子而已。[0027]本专利原理:1、在大部分交互式登录会话中,用户在客户端输入的每个字符都将产生一个数据包发送到登录的远程主机,而远程主机收到该字符后会将其回送给客户端并显示出来。图2展示了客户端发送“ps”命令到远程主机并返回结果的大致流程。[0028]2、网络回环时间(RTT)是从主机发送数据包到收到响应数据包的时间间隔。由于跳板攻击链各个主机要中继传输数据包,因此发送数据包与回显数据包之间的时间间隔Echo_RTT通常远远大于主机与邻近主机间的RTT值,如图3所示。本发明通过检测和匹配发送数据包和回显数据包,计算和对比Echo_RTT与邻近主机间的RTT值,从而判定该主机是否为跳板主机。[0029]3、本发明由包括数据包捕获模块、数据流识别及分析模块、跳板检测模块和结果输出四个部分组成,如图4所示。数据包捕获模块负责对主机的网络数据包进行监控,得到主机的网络数据包;数据流识别及分析模块负责对捕获的数据包进行应用层协议识别及管理,过滤掉非SSH、Telnet、rlogin、rsh协议的数据流;跳板检测模块负责对数据流进行RTT计算及跳板的判定;结果输出模块展示并存储跳板检测的结果信息。[0030]4、判断是否为TCP数据包具体过程是:查看IP数据包头上层协议标识字段,若该字段为TCP数据包字段,则该数据包属于TCP数据包。[0031]5、每条TCP数据包进行唯一标识是通过TCP数据包四元组信息进行唯一标识具体步骤为:提取TCP数据包的源IP地址、目的IP地址、源端口和目的端口四元组信息,将该四元组信息作为该TCP数据包的唯一标识。[0032]6、从机指的是与主机通讯的客户端。[0033]实施例一:一种基于主机的网络攻击跳板检测方法包括:步骤1:数据包捕获模块捕获该主机的数据包,对每条数据包进行唯一标识,对数据包进行分类后输出,执行步骤2;所述数据包分为远程登录协议数据包和未识别应用层协议数据包;步骤2:数据流识别及分析模块接收数据包捕获模块捕获的数据包,识别出符合条件的远程登录协议数据包,并将其分类加入等待跳板检测模块检测的数据流,建立分类数据流队列,进行分类保存,执行步骤3;将不合符条件的TCP数据包丢弃;步骤3:跳板检测模块检测数据流组是否满足检测要求,若满足检测要求则进行检测,跳板检测模块对数据流组进行数据匹配并计算Echo_RTT只值与Ack_RTT值,判断Echo_RTT与Ack_RTT的关系值,确定跳板可信度等级;否则,结束流程。[0034]其中,步骤I中对每条TCP数据包进行唯一标识是通过TCP数据包四元组信息进行唯一标识,具体步骤为:提取TCP数据包的源IP地址、目的IP地址、源端口和目的端口四元组信息,将该四元组信息作为该TCP数据包的唯一标识。[0035]实施例二:在实施例一基础上,步骤I中每条TCP数据包进行唯一标识是通过TCP数据包四元组信息进行唯一标识,具体步骤为:提取TCP数据包的源IP地址、目的IP地址、源端口和目的端口四元组信息,将该四元组信息作为该TCP数据包的唯一标识。[0036]实施例三:在实施例一或二基础上,所述步骤2具体步骤为:步骤21:数据流识别及分析模块判断接收到捕获模块捕获的数据包,判断是否为TCP数据包,若是TCP数据包,则执行步骤2;否则,丢弃本次TCP数据包;步骤22:判断TCP数据包是否属于分类数据流队列的数据流,若没有建立保存队列,则将为本次TCP数据包建立保存队列,并将此次TCP数据包加入保存队列中;否则,将本次TCP数据包加入对应数据流保存队列中,执行步骤23;步骤23:判断本次TCP数据包是否属于远程登录数据包,若属于远程登录数据包,则将本次TCP数据包直接加入相应分类数据流队列中;否则,执行步骤24;步骤24:进行TCP数据包应用层协议识别,将识别出远程登录协议数据包加入等待进行跳板检测的分类数据流队列;否则,执行步骤25:步骤25:对未识别为远程登录协议数据包进行判断,当本次TCP数据包中个数超过M个未识别、数据包中不足M且数据包捕获时间超过T,则丢弃本次数据包;否则,执行步骤21。[0037]其中步骤21中判断是否为TCP数据包具体过程是:查看IP数据包头上层协议标识字段,若该字段为TCP数据包字段,则该数据包属于TCP数据包。[0038]实施例四:在实施例一至三之一基础上,所述步骤24中进行TCP数据包应用层协议识别是通过协议默认端口识别及协议识别负载特征串相结合的方法,其具体过程是:步骤241:识别IP数据包的端口字段,根据远程登录协议的默认端口号(比如Telnet协议默认端口为23号,SSH协议默认端口为22号)进行判别,若是能根据远程登录协议默认端口号识别出TCP数据包;则执行步骤25;否则执行步骤242;步骤242:根据远程登录协议交互中数据包存在的特征字符串识别TCP数据包(例如SSH协议存在“SSH-**-0penSSH_**”特征字符串)。[0039]实施例五:所述步骤3跳板检测模块对数据流进行数据匹配并计算Echo_RTT与Ack_RTT,判断Echo_RTT与Ack_RTT的关系值,确定跳板可信度等级的具体步骤为:步骤311:当X1-Xh兰60、t兰T且η兰N,执行步骤312,对数据流进行Ack_RTT的匹配与计算;同时执行步骤315,对数据流进行Echo_RTT的匹配计算;其中XiS该数据流组中数据包数量,Xh为上一周期检测的数据包数量;T范围是5-10分钟A的捕获时间为t;X,检测周期数η;N范围为5-10;步骤312:对于主机的发送的每一个TCP数据包,提取TCP数据包中其发送的顺序号(SequenceNumber)及数据包载荷长度,并计算期待ACK序号=顺序号+数据包载荷长度;步骤313:提取数据流中距离发送数据包时间间隔最近的从机响应数据包,并提取数据包中ACK序号,若步骤312中计算的期待ACK序号与该数据包的ACK序号相等,则这两个数据包是匹配的,通过计算这两个数据包的时间间隔,得到这两个数据包的Ack_RTT;步骤314:重复步骤312至步骤313得到多组Ack_RTT,并计算得到Ack_RTT平均值;步骤315:当使用明文传输的远程登录协议,如Telnet,那么可以通过直接匹配发送数据包和回送数据包的数据包载荷,如果包含相同内容,那么这两个数据包是匹配的,通过计算着两个数据包的时间间隔,得到这两个数据包的Echo_RTT;当使用密文传输的远程登录协议,执行步骤315;步骤316:对于使用密文传输的远程登录协议,如SSH,那么使用如下方法:针对发送数据包P,对收到的从机发送的数据包Q与P进行比较,若满足下列条件之一:I)P的ACK序号与Q的序列号相等且P的序列号小于Q的Ack序号;2)P的序列号小于Q的Ack序号。则称P和Q是匹配的发送和回显数据包,计算连个数据包的时间间隔得到Echo_RTT;步骤317:重复步骤315至步骤316,得到多组Echo_RTT,计算得到Echo_RTT平均值。[0040]实施例六:步骤3中跳板检测模块判断Echo_RTT与Ack_RTT的关系值,确定跳板可信度等级,具体步骤为:步骤321:若Echo_RTT与Ack_RTT的比值大于等于3,RTT值的匹配组数比例大于等于50%,则判定为高等级;若Echo_RTT与Ack_RTT的比值大于等于3,RTT值的匹配组数比例小于50%,则判定为中等级;其余为低等级;步骤322:如果数据流捕获时间超过10分钟且检测周期大于超过5,那么对仍未检测出跳板的数据流判定为不是跳板数据,丢弃本数据。[0041]实施例七:一种基于主机的网络攻击跳板检测装置,其特征在于包括:数据包捕获模块、数据流识别及分析模块以及跳板检测模块,所述数据包捕获模块:捕获该主机的数据包,对每条数据包进行唯一标识,对数据包进行分类后输出;所述数据包分为远程登录协议数据包和未识别应用层协议数据包;数据流识别及分析模块:接收数据包捕获模块捕获的数据包,识别出符合条件的远程登录协议数据流,并将其分类加入等待跳板检测的数据流组分类保存;将不合符条件的TCP数据包丢弃;跳板检测模块检测数据流组是否满足检测要求,若满足检测要求则进行检测,跳板检测模块对数据流组进行数据匹配并计算Echo_RTT只值与Ack_RTT值,判断Echo_RTT与Ack_RTT的关系值,确定跳板可信度等级。[0042]实施例八:在实施例七基础上,所述数据流识别及分析模块接收数据包捕获模块捕获的数据包,识别出符合条件的远程登录协议数据流,并将其分类加入等待跳板检测的数据流组分类保存后;将不合符条件的TCP数据包丢弃具体步骤包括:步骤21:数据流识别及分析模块判断接收到捕获模块捕获的数据包,判断是否为TCP数据包,若是TCP数据包,则执行步骤2;否则,丢弃本次TCP数据包;步骤22:判断TCP数据包是否属于分类数据流队列的数据流,若没有建立保存队列,则将为本次TCP数据包建立保存队列,并将此次TCP数据包加入保存队列中;否则,将本次TCP数据包加入对应数据流保存队列中,执行步骤23;步骤23:判断本次TCP数据包是否属于远程登录数据包,若属于远程登录数据包,则将本次TCP数据包直接加入相应分类数据流队列中;否则,执行步骤24;步骤24:进行TCP数据包应用层协议识别,将识别出远程登录协议数据包加入等待进行跳板检测的分类数据流队列;否则,执行步骤25:步骤25:对未识别为远程登录协议数据包进行判断,当本次TCP数据包中个数超过M个未识别、数据包中不足M且数据包捕获时间超过T,则丢弃本次数据包;否则,执行步骤21。[0043]实施例九:所述步骤24中进行TCP数据包应用层协议识别是通过协议默认端口识别及协议识别负载特征串相结合的方法,其具体过程是:步骤241:识别IP数据包的端口字段,根据远程登录协议的默认端口号(比如Telnet协议默认端口为23号,SSH协议默认端口为22号)进行判别,若是能根据远程登录协议默认端口号识别出TCP数据包;则执行步骤25;否则执行步骤242;步骤242:根据远程登录协议交互中数据包存在的特征字符串识别TCP数据包(例如SSH协议存在“SSH-**-0penSSH_**”特征字符串)。[0044]实施例十:步骤3中跳板检测模块判断Echo_RTT与Ack_RTT的关系值,确定跳板可信度等级;步骤321:若Echo_RTT与Ack_RTT的比值大于等于3,RTT值的匹配组数比例大于等于50%,则判定为高等级;若Echo_RTT与Ack_RTT的比值大于等于3,RTT值的匹配组数比例小于50%,则判定为中等级;其余为低等级;步骤322:如果数据流捕获时间超过10分钟且检测周期大于超过5,那么对仍未检测出跳板的数据流判定为不是跳板数据,丢弃本数据。[0045]本发明并不局限于前述的【具体实施方式】。本发明扩展到任何在本说明书中披露的新特征或任何新的组合,以及披露的任一新的方法或过程的步骤或任何新的组合。【权利要求】1.一种基于主机的网络攻击跳板检测方法,其特征在于包括:步骤1:数据包捕获模块捕获该主机的数据包,对每条数据包进行唯一标识,对数据包进行分类后输出,执行步骤2;所述数据包分为远程登录协议数据包和未识别应用层协议数据包;步骤2:数据流识别及分析模块接收数据包捕获模块捕获的数据包,判断是否为TCP数据包,若是TCP数据包,则将其分类加入等待跳板检测模块检测的数据流,建立分类数据流队列并进行分类保存,执行步骤3;否则丢弃本次数据包;步骤3:跳板检测模块检测分类数据流队列是否满足检测要求,若满足检测要求则进行检测,跳板检测模块对分类数据流队列进行数据匹配并计算Echo_RTT只值与Ack_RTT值,判断Echo_RTT与Ack_RTT的关系值,确定跳板可信度等级;否则,结束流程;其中Echo_RTT是发送数据包与回显数据包之间时间间隔值;Ack_RTT是发送数据包与相邻节点Ack数据包之间的时间间隔值。2.根据权利要求1所述的一种基于主机的网络攻击跳板检测方法,其特征在于所述步骤2具体步骤包括:步骤21:数据流识别及分析模块判断接收到捕获模块捕获的数据包,判断是否为TCP数据包,若是TCP数据包,则执行步骤2;否则,丢弃本次TCP数据包;步骤22:判断TCP数据包是否属于分类数据流队列的数据流,若不属于分类数据流队列的数据流,则建立分类数据流队列,将为本次TCP数据包加入建立后分类数据流队列中;否则,将本次TCP数据包加入对应分类数据流队列中,执行步骤23;步骤23:判断本次TCP数据包是否属于远程登录数据包,若属于远程登录数据包,则将本次TCP数据包直接加入相应分类数据流队列中;否则,执行步骤24;步骤24:进行TCP数据包应用层协议识别,将识别出远程登录协议数据包加入等待进行跳板检测的分类数据流队列;否则,执行步骤25:步骤25:对未识别为远程登录协议数据包进行判断,当本次TCP数据包中个数超过M个未识别、数据包中不足M且数据包捕获时间超过T,则丢弃本次数据包;否则,执行步骤21,其中M范围是5-10,T范围是5-10分钟。3.根据权利要求2所述的一种基于主机的网络攻击跳板检测方法,其特征在于所述步骤24中进行TCP数据包应用层协议识别是通过协议默认端口识别及协议识别负载特征串相结合的方法,其具体过程是:步骤241:识别TCP数据包的端口字段,根据远程登录协议的默认端口号进行判别,若是能根据远程登录协议默认端口号识别出TCP数据包;则将识别出远程登录协议数据包加入等待进行跳板检测的分类数据流队列;否则执行步骤242;步骤242:根据远程登录协议交互中数据包存在的特征字符串识别TCP数据包,将识别出远程登录协议数据包加入等待进行跳板检测的分类数据流队列;否则,结束操作。4.根据权利要求3所述的一种基于主机的网络攻击跳板检测方法,其特征在于所述步骤3跳板检测模块对分类数据流队列中TCP数据包进行数据匹配并计算Echo_RTT与Ack_RTT,判断Echo_RTT与Ack_RTT的关系值,确定跳板可信度等级的具体步骤为:步骤311:当X1-Xh兰60、t兰T且η兰N,执行步骤312,对分类数据流队列中TCP数据包进行Ack_RTT的匹配与计算;同时执行步骤315,对分类数据流队列中TCP数据包进行Echo_RTT的匹配计算;其中Xi为该分类数据流队列中TCP数据包数量,Xi^1为上一周期检测的数据包数量;T范围是5-10分钟A的捕获时间为t;X,检测周期数η;Ν范围为5_10,η表示检测的周期个数,t表示周期长度;步骤312:对于主机的分类数据流队列的每一个TCP数据包,提取TCP数据包中其发送的顺序号及TCP数据包载荷长度,并计算期待ACK序号=顺序号+数据包载荷长度;步骤313:提取TCP数据包中距离发送TCP数据包时间间隔最近的从机响应数据包,并提取从机响应数据包中ACK序号,若步骤312中计算的期待ACK序号与从机响应数据包的ACK序号相等,则这两个数据包是匹配的,通过计算这两个数据包的时间间隔,得到这两个数据包的Ack_RTT;步骤314:重复步骤312至步骤313得到多组Ack_RTT,并计算得到Ack_RTT平均值;步骤315:当使用明文传输的远程登录协议,那么通过直接匹配发送数据包和回送数据包的数据包载荷,如果包含相同内容,那么这两个数据包是匹配的,通过计算着两个数据包的时间间隔,得到这两个数据包的Echo_RTT;当使用密文传输的远程登录协议,执行步骤315;步骤316:对于使用密文传输的远程登录协议,那么使用如下方法:提取主机TCP数据包中其发送的顺序号及TCP数据包载荷长度,并计算主机的期待ACK序号=顺序号+数据包载荷长度;对收到的从机发送的TCP数据包Q获取ACK序号及序列号,当满足P的ACK序号与Q的序列号相等且P的序列号小于Q的ACK序号,且P的序列号小于Q的ACK序号,则称TCP数据包P和TCP数据包Q是匹配的发送和回显数据包,计算所述发送数据包和回显数据包的时间间隔得到Echo_RTT;步骤317:重复步骤315至步骤316,得到多组Echo_RTT,计算得到Echo_RTT平均值。5.根据权利要求4所述的一种基于主机的网络攻击跳板检测装置,其特征在于步骤3中跳板检测模块判断Echo_RTT与Ack_RTT的关系值,确定跳板可信度等级,具体步骤为:步骤321:若Echo_RTT与Ack_RTT的比值大于等于3,RTT值的匹配组数比例大于等于50%,则判定为高等级;gEcho_RTT与Ack_RTT的比值大于等于3,RTT值的匹配组数比例小于50%,则判定为中等级;其余为低等级;步骤322:如果数据流捕获时间超过10分钟且检测周期大于超过M,那么对仍未检测出跳板的数据流判定为不是跳板数据,丢弃本数据,M范围是5到10。6.一种基于主机的网络攻击跳板检测装置,其特征在于包括:数据包捕获模块、数据流识别及分析模块以及跳板检测模块,所述数据包捕获模块:捕获该主机的数据包,对每条数据包进行唯一标识,对数据包进行分类后输出;所述数据包分为远程登录协议数据包和未识别应用层协议数据包;数据流识别及分析模块:接收数据包捕获模块捕获的数据包,识别出TCP数据流,并将其分类加入等待跳板检测模块检测的数据流,建立分类数据流队列并进行分类保存;将未识别的数据包丢弃;跳板检测模块检测分类数据流队列是否满足检测要求,若满足检测要求则进行检测,跳板检测模块对分类数据流队列进行数据匹配并计算Echo_RTT只值与Ack_RTT值,判断Echo_RTT与Ack_RTT的关系值,确定跳板可信度等级。7.根据权利要求6所述的一种基于主机的网络攻击跳板检测装置,其特征在于所述数据流识别及分析模块接收数据包捕获模块捕获的数据包,识别出TCP数据流,并将其分类加入等待跳板检测模块检测的数据流,建立分类数据流队列并进行分类保存;将未识别的数据包丢弃具体步骤包括:步骤21:数据流识别及分析模块判断接收到捕获模块捕获的数据包,判断是否为TCP数据包,若是TCP数据包,则执行步骤2;否则,丢弃本次TCP数据包;步骤22:判断TCP数据包是否属于分类数据流队列的数据流,若不属于分类数据流队列的数据流,则建立分类数据流队列,将为本次TCP数据包加入建立后分类数据流队列中;否则,将本次TCP数据包加入对应分类数据流队列中,执行步骤23;步骤23:判断本次TCP数据包是否属于远程登录数据包,若属于远程登录数据包,则将本次TCP数据包直接加入相应分类数据流队列中;否则,执行步骤24;步骤24:进行TCP数据包应用层协议识别,将识别出远程登录协议数据包加入等待进行跳板检测的分类数据流队列;否则,执行步骤25:步骤25:对未识别为远程登录协议数据包进行判断,当本次TCP数据包中个数超过M个未识别、数据包中不足M且数据包捕获时间超过T,则丢弃本次数据包;否则,执行步骤。21,其中M范围是5-10,T范围是5-10分钟。8.根据权利要求7所述的一种基于主机的网络攻击跳板检测方法,其特征在于所述步骤24中进行TCP数据包应用层协议识别是通过协议默认端口识别及协议识别负载特征串相结合的方法,其具体过程是:步骤241:识别TCP数据包的端口字段,根据远程登录协议的默认端口号进行判别,若是能根据远程登录协议默认端口号识别出TCP数据包;则将识别出远程登录协议数据包加入等待进行跳板检测的分类数据流队列;否则执行步骤242;步骤242:根据远程登录协议交互中数据包存在的特征字符串识别TCP数据包,将识别出远程登录协议数据包加入等待进行跳板检测的分类数据流队列;否则,结束操作。9.根据权利要求8所述的一种基于主机的网络攻击跳板检测方法,其特征在于所述跳板检测模块分类数据流队列中TCP数据包进行数据匹配并计算Echo_RTT与Ack_RTT,判断Echo_RTT与Ack_RTT的关系值,确定跳板可信度等级的具体步骤为:步骤311:当X1-Xh兰60、t兰T且η兰N,执行步骤312,对分类数据流队列中TCP数据包进行Ack_RTT的匹配与计算;同时执行步骤315,对分类数据流队列中TCP数据包进行Echo_RTT的匹配计算;其中Xi为该分类数据流队列中TCP数据包数量,Xi^1为上一周期检测的数据包数量;T范围是5-10分钟A的捕获时间为t;X,检测周期数η;Ν范围为5_10,η表示检测的周期个数,t表示周期长度;步骤312:对于主机的分类数据流队列的每一个TCP数据包,提取TCP数据包中其发送的顺序号及TCP数据包载荷长度,并计算期待ACK序号=顺序号+数据包载荷长度;步骤313:提取TCP数据包中距离发送TCP数据包时间间隔最近的从机响应数据包,并提取从机响应数据包中ACK序号,若步骤312中计算的期待ACK序号与从机响应数据包的ACK序号相等,则这两个数据包是匹配的,通过计算这两个数据包的时间间隔,得到这两个数据包的Ack_RTT;步骤314:重复步骤312至步骤313得到多组Ack_RTT,并计算得到Ack_RTT平均值;步骤315:当使用明文传输的远程登录协议,那么通过直接匹配发送数据包和回送数据包的数据包载荷,如果包含相同内容,那么这两个数据包是匹配的,通过计算着两个数据包的时间间隔,得到这两个数据包的Echo_RTT;当使用密文传输的远程登录协议,执行步骤315;步骤316:对于使用密文传输的远程登录协议,那么使用如下方法:提取主机TCP数据包中其发送的顺序号及TCP数据包载荷长度,并计算主机的期待ACK序号=顺序号+数据包载荷长度;对收到的从机发送的TCP数据包Q获取ACK序号及序列号,当满足P的ACK序号与Q的序列号相等且P的序列号小于Q的ACK序号,且P的序列号小于Q的ACK序号,则称TCP数据包P和TCP数据包Q是匹配的发送和回显数据包,计算所述发送数据包和回显数据包的时间间隔得到Echo_RTT;步骤317:重复步骤315至步骤316,得到多组Echo_RTT,计算得到Echo_RTT平均值。10.根据权利要求9所述的一种基于主机的网络攻击跳板检测装置,其特征在于步骤3中跳板检测模块判断Echo_RTT与Ack_RTT的关系值,确定跳板可信度等级,具体步骤为:步骤321:若Echo_RTT与Ack_RTT的比值大于等于3,RTT值的匹配组数比例大于等于50%,则判定为高等级;若Echo_RTT与Ack_RTT的比值大于等于3,RTT值的匹配组数比例小于50%,则判定为中等级;其余为低等级;步骤322:如果数据流捕获时间超过10分钟且检测周期大于超过M,那么对仍未检测出跳板的数据流判定为不是跳板数据,丢弃本数据,M范围是5到10。【文档编号】H04L29/06GK104009986SQ201410216666【公开日】2014年8月27日申请日期:2014年5月22日优先权日:2014年5月22日【发明者】刘波,陈周国,蒲石,郝尧,黄宸申请人:中国电子科技集团公司第三十研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1