CCIE实验考试特性-常见DoS攻击.doc

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
CCIE实验考试特性-常见DoS攻击.doc

  CCIE实验考试特性:常见DoS攻击   在目前以IPv4为支撑的网络协议上搭建的网络环境中,SYN Flood是一种非常危险而常见的DoS攻击方式。到目前为止,能够有效防范SYN Flood攻击的手段并不多,而SYN Cookie就是其中最著名的一种。SYN Cookie原理由D. J. Bernstain和 Eric Schenk发明。在很多操作系统上都有各种各样的实现。其中包括Linux。   本文就分别介绍一下SYN Flood攻击和SYN Cookie的原理,更重要的是介绍Linux内核中实现SYN Cookie的方式。最后,本文给出一种增强目前Linux中SYN Cookie功能的想法。   一 SYN Flood攻击   SYN Flood攻击是一种典型的拒绝服务型(Denial of Service)攻击。所谓拒绝服务型攻击就是通过进行攻击,使受害主机或网络不能够良好的提供服务,从而间接达到攻击的目的。   SYN Flood攻击利用的是IPv4中TCP协议的三次握手(Three-ASK (((__u32)1 lt;lt; COOKIEBITS) - 1)   COOKIEBITS表示cookie的比特长度;COOKIEMASK是一个COOKIEBITS长的比特串,所有比特都是1。   还有两个比特串,被定义成一个__u32的二维数组 static __u32 syncookie_secret[2][16-3+HASH_BUFFER_SIZE];   其中所有的比特值在secure_tcp_syn_cookie中被随机的赋予,用get_random_bytes函数。它们成为制作cookie的密钥。这两个被随机产生的比特串是整个SYN Cookie实现方案的关键。另外还有一个开关syncookie_init控制对这两个密钥的改动。   还需要指出,在文件syncookies.c中定义有一个__u16组成的表static __u16 const msstab[],这个表中保存的是一些可能的MSS(Maximum Segment Size)值。   secure_tcp_syn_cookie函数的返回值就是计算得到的ISN值,即cookie。为了描述方便,我们给出如下定义: tmp1 := saddr + daddr + ((sportlt;lt;16)+dport) + syncookie_secret[0] tmp2 := saddr + daddr + ((sportlt;lt;16)+dport) + syncookie_secret[1] tmp11 : 123下一页 [教育资源网]edu..,。= HASH_TRANSFORM(tmp1[16], tmp1) tmp22 := HASH_TRANSFORM(tmp2[16], tmp2) A := tmp11[0][17] B := tmp22[1][17]   sseq := ntohl(skb-gt;h.th-gt;seq) 这里的skb是携带TCP SYN的那个skb   count1 := jiffies/(HZ*60) 当前时间的分钟值   data1 := msstab   从前往后最后一个小于skb中携带的MSS值的值的索引(值得注意的是两个密钥在第一次被初始化后,就不会再有改动,直到系统重新启动。因此可以认为它是一个常值。)   有了上面的定义我们可以得到cookie等于 isn := A+sseq + (count1lt;lt;COOKIEBITS) + (B+data1)COOKIEMASK   这个isn被赋予返回的TCP SYN+ACK包中,作为其中的ISN值。这就是cookie 的产生过程。在这个过程中,没有在本地为这个连接请求分配任何存储空间。   在TCP服务器收到TCP ACK包时,相应的要进行SYN Cookie的检查。这个检查过程在函数tcp_v4_hnd_req中的cookie_v4_check函数开始。cookie_v4_check调用cookie_check函数,cookie_check函数调用check_tcp_syn_cookie函数。   check_tcp_syn_cookie函数在random.c中定义,是与前面介绍的   secure_tcp_syn_cookie函数对应的函数,检查从TCP ACK中提取出的ISN值。   在check_tcp_syn_cookie中假定ISN的值如下 isn := A+sseq + (count2lt;lt;COOKIEBITS) + (B+data2)COOKIEMASK   这里的A、B都是根据当

您可能关注的文档

文档评论(0)

ggkkppp + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档