基于DoS攻击的随机数据包标记源跟踪算法
- 格式:rtf
- 大小:116.12 KB
- 文档页数:5
[原创]基于DoS攻击的随机数据包标记源跟踪算法
文章标题:[原创]基于DoS攻击的随机数据包标记源跟踪算法顶部 饥饿加菲猫 发布
于:2005-11-0101:39 [楼主][原创]基于DoS攻击的随机数据包标记源跟踪算法 文章作者:饥饿加菲猫(QQ120474)
信息来源:邪恶八进制信息安全小组(www.eviloctal.com)
摘要:针对互联网上Ri益猖獗的拒绝服务攻击(DoS),分析了传统的随机数据包标记算法的
性能缺陷,提出一种新的基于散列消息鉴别码的返回跟踪算法HPPM,通过分析其性能指标,说明该算法提高了返回跟踪DoS攻击的效率和准确性。
感谢帮过我的几个高手袁哥[nsfocus],sunwear[E.S.T],isno[xfocus],scz[nsfocus]
1.引言
拒绝服务攻击,简称DoS(Denial-of-Service),是一种常见的黑客攻击行为。这种攻击行
为通过发送带有虚假源地址的数据包请求,使网络服务器充斥大量等待回复的信息,消耗网络带宽或系统资源,使网络或系统服务负载过重,服务质量下降,直至瘫痪而停止正常的服务。
有时,黑客为了提高攻击的效果,往往会联合多个攻击站点向受害者发动进攻。由于DoS攻击
易于实施、难于防御,而且很难返回跟踪攻击源,使之成为一个严重侵扰网络服务提供商、
G0vernment机关和金融证券等机构正常运作的安全问题。
2.IP返回跟踪相关技术 为了彻底消除DoS攻击,必须追根溯源,找到真正的攻击机器或攻击者。这种方法被称为IP
返回追踪技术(IPTraceback)。由于DoS攻击者在发送攻击数据包时往往会伪造源地址,使
得IP返回追踪的难度很大。常用的IP返回追踪方法有:入口过滤(IngressFiltering)、连
接测试(LinkTesting)、ICMP追踪[7]、登录分析(Logging)、源路径隔离引擎(SPIE)、IPSec
追踪,以及随机数据包标记追踪(PPM)[2]。各种追踪技术之间的性能比较,如表1所示。 管理负担 网络负担 路由器负担 分布式能力 事后追踪能力 预防/反应
进入过滤 中等 低 中等 N/A N/A 预防
输入调试 高 低 高 好 差 反应
控制流 低 高 低 差 差 反应
登陆分析 高 低 高 极好 极好 反应 ICMP追踪 低 低 低 好 极好 反应
数据包标记 低 低 低 好 极好 反应
表1几种IP返回追踪技术的性能比较[2]
3.HPPMIP返回跟踪算法
3.1 PPM算法(ProbabilisticPacketMarking) 随机数据包标记算法PPM的主要原理如下:路由器以一定的概率p(通常是1/25)[2],用其
IP地址或IP地址的一部分随机标记经过它的数据包。当发生DoS攻击时,受害者根据其收
到的攻击数据包中的标记信息,重建攻击路径。使用PPM算法,路由器负担较小,采用标记
边压缩和分片技术大大降低了额外的网络流量。而且,该方法可以在攻击结束以后对攻击源
进行追踪。PPM对单源DoS攻击,有较好的追踪效果。 但是,由于其自身缺陷,PPM算法无法很好地返回跟踪DDoS攻击
(Distributed–Denial–of–Service)。首先,由于路由器以概率p随机标记数据包,就给
攻击者以可乘之机,将伪造的标记信息写入攻击数据包的报头中(一般是Identifier字段),
只要该数据包一直不被其经过的路由器标记,直至目标主机,就能在攻击路径中伪造一条边
路径,阻止受害者跟踪真正的攻击源。其次,为了节省存储空间,减小网络负担,PPM采用了边标记压缩和分片存储技术。但是,分片存储可能导致受害者将本不属于同一数据包的分片组合在一起,从而生成错误的边路径。而标记的边压缩方法主要依据(a○+b)○+b=a(a、b
分别是攻击路径上相邻两个路由器的IP地址),将显著加剧这一效果,进一步生成错误的攻
击路径。当发生DDoS攻击时,由于同一距离存在多个攻击者,而产生爆炸效果,影响将更加严重[2]。
3.2 HPPM算法
针对PPM算法的上述缺陷,我们提出了一种基于散列消息鉴别码HMAC的数据包标记算法
HPPM,并采用新的标记重叠分片策略,以提高IP返回跟踪DoS攻击(特别是DDoS攻击)的
性能。 在该算法中,路由器Ri以概率p随机对经过它的数据包进行标记,标记信息包括Ri的IP
地址和下一跳路由器Rj的IP地址,总共64位。为了节省标记存储空间,不给用户带来过多
影响,算法使用IPv4首部中的16位标识符字段(Identifier),1位闲置的标志位(Flags)
[1]和13位片位移字段(据统计,目前少于0.25%的数据包需要分片[2]),以及一般很少使
用的8位TOS字段(Type-of-Service)[1],总共38位,来存储标记分片信息。64位标记信息被分成k=8片,每片占用8位,分片偏移值占log2k=3位,Ri到目标主机的距离值占5
位(25-1=31跳,适用于目前绝大多数网络[2]),用于验证的HMAC值占22位。
散列消息鉴别码,简称HMAC,是一种基于消息鉴别码MAC(MessageAuthenticationCode)的
鉴别机制。使用HMAC时,消息通讯的双方,通过验证消息中加入的鉴别密钥K来鉴别消息的
真伪;HMAC还引人了一个散列函数H,对消息进行加密,进一步确保消息鉴别的安全性和有效性。HMAC的具体计算方法如下:
HMAC(M,K)=H(K○+opad,H(K○+ipad,M))
其中,ipad=字0x36重复B次,opad=字0x5C重复B次,M=待加密的消息字符串,B=消息字
符串的字长。关于HMAC更详细的内容,请参考文献RFC2104[6]。
在HPPM算法中,我们采用一次性口令机制OTP(One-TimePassword)[4][5],先让每个路由器Ri生成一组私有密钥序列{Kij}(j=0、1、2……)。这组私有密钥序列通过单向散列函数
f生成,并具有以下规则:Kij-1=f(Kij)。由于函数f是单向的,所以由最新的密钥Kij可
以依次推出在它以前生成的所有Kij-1、Kij-2……Ki0,但根据已有的密钥却推不出下一个
密钥,这就确保了他人无法伪造Ri的密钥。路由器Ri每经过一段固定的时间间隔,就根据
上述方法更换一次私有密钥Ki,然后将刚刚停止使用的密钥通过可靠的方式发布出去。当数据包P通过Ri时,Ri使用HMAC函数H和当前私有密钥Ki,对Ri的IP地址和P的目的地址
进行加密,即:H(M,Ki),其中,M=IP(Ri)+IP(destination)。具体的标记步骤如下:
MarkingprocedureatrouterRi:
letmbethemarkingmassageip(Ri)+ip(Rj)
letkbethenumberoffragmentsinm letHbetheHMACfunction
letKibetheprivatekeyofRiatcurrenttimeinterval
foreachpacketw
letxbearandomnumberfrom[0..1)
ifx
hmac:=H(IP(Ri)+IP(w.destination),Ki)
letobearandomintegerfrom[0..k-1]
letfbethefragmentofmatoffseto
writefintow.frag write0intow.distance writeointow.offset
writehmacintow.hmac
else incrementw.distance
以下将讨论受害者重建攻击路径的过程。当受到DoS攻击时,受害者开始收集标记分片,并
记录其到达时间。我们假设攻击者发送大量的攻击数据包,那么受害者就能收集到足够多的
标记分片,然后根据分片的偏移值,将具有相同攻击距离d和hmac值的分片重组,生成边路
径,进而生成整个攻击路径。由于攻击者可能伪造标记数据包,干扰返回跟踪过程,因此需要对生成的边路径鉴别真伪。具体鉴别方法是:受害者与路由器Ri(服务提供商)联系,取
得Ri最新的私有密钥K,然后根据K和数据包P到达时间(需要考虑延时),使用相同散列
函数f计算出Ri标记P时使用的私有密钥Ki;再根据Ri和自身的IP地址,以及Ki,计算
出HMAC值与标记数据包中的HMAC值进行比较,一致则说明该边路径有效,否则将其丢弃。
重建攻击路径的具体过程如下: Pathreconstructionprocedureatvictimv:
letFragTblbeatableoftuples(frag,offset,distance,hmac,time)
letGbeatreewithrootv
letedgesinGbetuples(start,end,distance,hmac,time)
letmaxd:=0 letlast:=v
foreachpacketwfromattacker
letrectimebethetimewhenvreceivesthepacketw
FragTbl.Insert(w.frag,w.offset,w.distance,w.hmac,rectime)
ifw.distance>maxdthen maxd:=w.distance
ford:=0tomaxd
forallorderedcombinationsoffragmentshavingthesamehmacvalueatdistanced
constructedgez(IP(Ri),IP(Rj),w.distance,w.hmac,rectime)
//StartofHMACauthentication letKbetheprivatekeyofRiatcurrenttimeinterval
letKibetheprivatekeyofRiatthetimeintervalwhenRimarkedthepacketw
letfbethefunctiontogetKiaccordingtoKandrectime
Ki:=f(K,rectime)
ifw.hmac=H(IP(Ri)+IP(v),Ki) insertedgez(IP(Ri),IP(Rj),w.distance)intoG
//EndofHMACauthentication
removeanyedge(x,y,d,hmac,time)withd≠distancefromxtovinG
extractpath(Ri..Rj)byenumeratingacyclicpathsinG
4.HPPM算法性能分析 4.1 攻击收敛包数
根据[2],受害者收到距离为d的路径上最远处路由器发来的标记数据包的概率是:
p(1-p)d-1。保守假设受害者收到该路径上任一路由器发来标记数据包的概率都与最远距离d
处相同,并且相互独立,因此受害者收到的任一数据包被该数据包途经路径上某些路由器标
记过的概率,将具有期望值:1/dp(1-p)d-1。 根据coupon-collector问题[8],受害者收到的从距离为d的路径上发来的数据包中,包括