摘要:本文提出了一种新的基于自治系统(as)路径识别的包标记算法。它通过边界网关协议(bgp)路由器在其转发的数据包中标记当前as的编号,受害者不仅可根据数据包中的标记信息重构出攻击包所经过的as路径,追踪到攻击源所在的as,还可以根据标记信息将拥有那些攻击路径的数据包过滤掉,从而能有效地缓解攻击流量对受害者的影响。该算法解决了传统标记算法中计算量大、误报率高等缺点,同时无须攻击路径中每个路由器都参与标记,极大地减少了路由器的开销。
关键词:自治系统 包标记 网络安全
0 引言
当今网络攻击中ddos攻击是最为普遍、最为有效的攻击手段,它具有易实施、难防范和追踪的特点,一直是internet安全的一个严重威胁。针对这些特点,近年来该领域的研究人员提出了多种追踪攻击源方法,主要方法有:数据包标记、日志记录、连接测试、覆盖网络等。
其中数据包标记中的普通路径识别方法(path identification,简称pi)由于标记空间有限,它使用路由器ip地址的2位信息摘要来构建每个包的路径信息,导致相同的路径信息代表不同的路径(即误报率很高);而建立在普通路径识别方法基础之上的链路识别方法虽然采用link-id来代替ip地址,但由于每个link-id的编号大小和数据包经过的link-id数目未知,link-id域有时要进行哈希处理,同样会导致相同的路径信息代表不同的路径。
针对上述两种路径识别包标记方法的不足,本文提出了一种新的基于as路径识别的包标记算法。lOCalhOST
1 基于as路径识别的包标记算法
1.1 算法基本思想 当数据包到达自治系统的bgp路由器时,它先检查该包是否是来自其它的bgp路由器或其它的as,如果不是的话,路由器标记它的信息作为该包的初始路由器信息,如果是的话,路由器检查该包的目的地址,如果目的地址在当前自治系统中,路由器标记它的信息作为该包的结束路由器信息;如果目的地址在其它的as中,bgp路由器用它所在的自治系统的asn来标记数据包,也就是说,bgp路由器只对离开本as去往其它as的路由器的数据包才使用它所在的自治系统的asn进行标记。
1.2 算法编码 该算法的编码方案需要34位用于标记。为了充分利用ip包头中可用的空间,本方案除使用ip包头16位id域之外,还通过重载偏移域和服务类型字段来获得更多的标记空间。初始路由器标识和结束路由器标识共16位刚好放在数据包头id域中。其中,as标识域又可细分成5个部分,每个部分存放16位as编号的3位散列值,它的前4个部分放在偏移域中,最后一部分放在服务类型字段的3至5位,跳数域存放在服务类型字段的后3位,与as标识域的最后一部分紧邻。
由于受害者所在自治系统的bgp路由器不参与as标识域的标记,因此该算法至多有5个bgp路由器参与as标识域的标记。跳数域的值随着每次bgp路由器标记as标识而逐步加1,它作为as标识域的索引来确定3位标记在as标识域中的位置。
1.3 算法实现 举例说明:as1中的攻击者想对as4中的受害者发起dos攻击。当数据包到达as1中的bgp路由器a时,路由器a检测出该数据包是来自当前自治系统,但没被初始化,于是路由器a在数据包包头初始路由器标识域中写上它的ip地址8位哈希值,作为初始路由信息,同时将跳数域的值置0。然后根据数据包的目的地址找到下一跳路由信息(路由器b),发现不在当前自治系统中,于是递增跳数域的值(递增后的值为1),并将路由器a所在自治系统的编号的3位哈希值填写在与跳数域的值相对应的asid域中,最后再将数据包转发给as2中的bgp路由器b,至此路由器a对数据包的操作完毕。
路由器b发现数据包是来自其它的自治系统,并且下一跳路由信息也在当前自治系统as2中,它不做任何标记就把数据包转发给路由器c2。
路由器c2发现数据包是来自其它的bgp路由器,然后根据数据包的目的地址找到下一跳路由信息(路由器d),发现不在当前自治系统as2中,于是递增跳数域的值(递增后的值为2),并将路由器c2所在自治系统的编号的3位哈希值填写在与跳数域的值相对应的asid域中,最后再将数据包转发给as4中的bgp路由器d,至此路由器c2对数据包的操作完毕。
路由器d发现数据包是来自其它的自治系统,并且目的地址在当前自治系统as4中,于是路由器d在数据包包头结束路由器标识域中写上它的ip地址8位哈希值,作为结束路由信息。至此该数据包标记过程完毕。
受害者根据标记信息对数据包进行过滤。过滤时,我们采用门限过滤的思想,即允许受害者以提高假阳性比例为代价来减少假阴性比例。门限过滤的真正目的是在能够接受大量合法用户数据包的前提下,允许接受少量的攻击包。这个门限是由受害者选择的一个值ti(0≤i<231),假设ai为带有标记i的攻击包的数目,ui为带有标记i的用户数据包数目。如果攻击包的数目与总的数据包数目的比例满足 ,受害者就丢弃拥有i标记的所有数据包。例如,门限值t3等于0.25,这表明只要标记为3的攻击流量不超过所有标记为3的流量的25%,就允许受害者接受所有标记为3的数据包。
2 理论分析
2.1 假阳性 理论上,在路径长度为p的a个攻击者发起攻击的假阳性数目为:
其中h为as编号哈希的位数,n为路径长度为p的可疑攻击源自治系统数目。当h=4时,路径长度为4的150个攻击者发起攻击,产生的假阳性数目为0.00228622*n,这数目相当小,几乎可以忽略不计。
2.2 重构as路径所需数据包数目 在路径重构过程中,受害者使用as
[1] [2] 下一页