第八章 拒绝服务攻击的防范.ppt

  1. 1、本文档共13页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第八章 拒绝服务攻击的防范 DoS(拒绝服务)攻击是最难防范的一种攻击。人们有时并不太理会这种攻击类型,因为这些攻击不会直接提升特权,但是在某些情况下,当某个服务器变得不可用时,攻击者可能会模拟这个服务器。 应用程序失败攻击 DoS攻击引起程序失败最可能的原因是因为代码质量问题。其中最为常见的一些依靠网络堆栈工作的问题。如果构建一个UDP数据包,在UDP文件头中指定的长度比实际的数据包大,则系统内核会引起内存访问违规,并进入紧急状态,然后系统会重新启动。 第八章 拒绝服务攻击的防范 应用程序失败攻击 “Ping of Death”攻击的原因与IP头的构建方式有关,IP头的结构如下: struct ip_hdr { unsigned char ip_version:4, ip_header_len:4; unsigned char ip_type_of_service; unsigned short ip_len; unsigned short ip_id; unsigned short ip_offset; unsigned char ip_time_to_live; unsigned char ip_protocol; unsigned short ip_checksum; struct in_addr ip_source; struct in_addr ip_destination; } 第八章 拒绝服务攻击的防范 应用程序失败攻击(*) 成员“ip_len”定义了整个数据包所包含的字节数。无符号短整型最大为65535,因此整个数据包最多只能包含65535字节的信息。“ip_offset”使用3位来指定数据包的分段行为,其中有一位决定数据包是否被允许分段,还有一位指定后面是否还有更多允许分段的数据包。如果这两位都没有被设置,则表示这个数据包是一系列分段包的最后一个,或者表示根本不存在分段。“ip_offset”剩下的13位用于指定数据包分段的偏移量,因为偏移量是以8字节为单位的,所以最大偏移量为65535字节。所以存在的问题是,如果最后一个数据段写入了过多的字节,数据包的总长度可能会超过2的16次方。 如何避免应用程序失效?第一条原则是不要信任任何来自网络的内容。编写坚实可靠的代码,并且彻底测试代码的安全性是防止应用程序崩溃的唯一方法。 第八章 拒绝服务攻击的防范 应用程序失败攻击 /* Example of a fragment reassembler that can detect packets that are too long */ #include winsock2.h #include list using namespace std; //Most fragment reassemblers work from a linked list. //Fragments aren’t always delivered in order. //Real code that does packet reassembly is even more complicated. struct ip_hdr { unsigned char ip_version:4, ip_header_len:4; unsigned char ip_type_of_service; unsigned short ip_len; unsigned short ip_id; unsigned short ip_offset; unsigned char ip_time_to_live; unsigned char ip_protocol; unsigned short ip_checksum; struct in_addr ip_source; struct in_addr ip_destination; } 第八章 拒绝服务攻击的防范 应用程序失败攻击 typedef listip_hdr FragList; bool ReassemblePacket(FragListfrags, char **outbuf) { //Assume our reassembler has passed us a list ordered

文档评论(0)

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

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

1亿VIP精品文档

相关文档