首页 11 避免拒绝服务攻击

11 避免拒绝服务攻击

举报
开通vip

11 避免拒绝服务攻击null第十一章第十一章避免拒绝服务攻击 null拒绝服务(Denial of Service,DoS)攻击,是网络上常见的一类攻击的总称,其目的是使计算机或网络无法提供正常的服务。在DoS攻击中,最常见是网络带宽攻击和连通性攻击。前者一般恶意向网络发送极大的通信量,使得可用网络资源被消耗,而合法的用户连接反而无法通过;后者主要是针对网络上的计算机,向这些计算机发出大量的连接请求,消耗计算机可用的操作系统资源,导致计算机无法再处理合法用户的请求。 DoS攻击由于实施起来比较容易,效果也比较明显,因此在网络上比较常见...

11 避免拒绝服务攻击
null第十一章第十一章避免拒绝服务攻击 null拒绝服务(Denial of Service,DoS)攻击,是网络上常见的一类攻击的总称,其目的是使计算机或网络无法提供正常的服务。在DoS攻击中,最常见是网络带宽攻击和连通性攻击。前者一般恶意向网络发送极大的通信量,使得可用网络资源被消耗,而合法的用户连接反而无法通过;后者主要是针对网络上的计算机,向这些计算机发出大量的连接请求,消耗计算机可用的操作系统资源,导致计算机无法再处理合法用户的请求。 DoS攻击由于实施起来比较容易,效果也比较明显,因此在网络上比较常见,也给网络安全带来巨大的威胁。 本章首先讲解了拒绝服务攻击的过程以及危害,接下来阐述了几种常见的拒绝服务攻击,最后对它们提出了解决 方案 气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载 。本章涉及到的DoS攻击包括:系统崩溃、资源不足、恶意访问等。11.1 拒绝服务攻击11.1 拒绝服务攻击null拒绝服务攻击作为互联网上的一种常见攻击手段,已经有多年历史。拒绝服务攻击曾被称作为互联网上最为严重的威胁之一。早期的拒绝服务攻击是利用了TCP/IP协议的缺陷,将提供服务的网络的资源消耗殆尽,导致其不能提供正常服务,不过,在本章中,我们也将一些对服务器的恶意访问也包含了进来。由于拒绝服务攻击形式较多,并且很多情况下都是利用了一些现有协议的漏洞,因此,到目前为止,还没有很好的解决办法来解决拒绝服务攻击问 快递公司问题件快递公司问题件货款处理关于圆的周长面积重点题型关于解方程组的题及答案关于南海问题 。 拒绝服务攻击的攻击方式有多种,如: 消耗网络带宽; 消耗网络设备的CPU; 消耗网络设备的内存; 导致网络上设备系统崩溃;等等。 注意,这里的网络设备也包括网络上的计算机。 提示提示以具有代 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf 性的攻击手段SYN flood、ICMP flood、UDP flood为例,其原理是:针对同一个服务器的某个端口(如HTTP所在的80端口),短时间内发送大量伪造的连接请求报文,造成服务器忙不过来,严重的时候资源耗尽、系统停止响应甚至崩溃。这是对网络上服务器的攻击。 而另一种是针对网络带宽本身的攻击,使用真实的IP地址,对服务器发起大量的真实连接,抢占带宽,由于服务器的承载能力有限,就有可能造成合法用户无法连接,当然也有可能造成服务器的资源耗尽,系统崩溃。更有甚者,可以使用假的IP地址(IP地址欺骗),使得服务器端无法通过“黑名单”来拒绝一些恶意的IP地址。 null从攻击原理分,拒绝服务攻击可分为两类: 基于漏洞的攻击,又称为逻辑攻击(Logic Attack)。该种攻击方法中,攻击者首先找到软件中存在的漏洞(如操作系统中存在的缓冲区溢出漏洞),然后向存在漏洞的系统发送经过精心设计的数据包,使得系统崩溃或性能急剧下降。 基于流量的攻击,又称为洪水攻击(Flooding Attack/Bandwidth attack)。该种攻击方式是指攻击者在短时间内,向目标系统发送大量数据包,消耗目标网络带宽或系统资源。 传统的拒绝服务攻击,一般是从一个攻击源攻击一个目标。随着攻击技术的进步,近些年来,拒绝服务攻击已经演变为分布、协作、大规模攻击方式,从多个攻击源攻击一个目标,即分布式拒绝服务攻击(Distributed Deny of Service, DDoS)。DDoS通常被用于对一些大型商务网站或网络系统进行攻击,攻击强度和造成的危害大大超过传统的Dos攻击。 有关DoS攻击和DDoS攻击的其他资料,读者可以参考相关文献。11.2 几个拒绝服务攻击的案例11.2 几个拒绝服务攻击的案例11.2.1 程序崩溃攻击11.2.1 程序崩溃攻击拒绝服务攻击引起程序崩溃,可以通过改善代码质量来降低损失。在这类攻击中,最薄弱的环节是一些使用了网络堆栈进行工作的场合。比如,在UDP通信中,构建一个UDP数据包,在UDP文件头中指定的长度比实际上数据包长度大,则系统内核会引起内存访问错误,此时各种系统都会有相应的反应,如: UNIX系统中,系统进入应急状态; Windows系统会蓝屏或者进行错误检查; 系统重新启动;等等。 本节以“Ping Of Death”攻击来阐述这个问题。null根据TCP/IP的 规范 编程规范下载gsp规范下载钢格栅规范下载警徽规范下载建设厅规范下载 ,一个包的长度最大为65535字节。尽管一个包的长度不能超过65535字节,但可以把报文分割成片段,然后在目标主机上重组。但是,这个规则本身存在着漏洞,如果攻击者精心设计,最终会导致被攻击目标缓冲区溢出,这也是拒绝服务攻击的一种形式。 一般说来,当一个主机收到了长度大于65535字节的包时,就是受到了Ping of Death攻击,该攻击会造成系统的宕机。如下代码是一个IP头定义: null在以上结构体ip_header中,“total_len”定义了数据包中所包含的字节数目,在本程序中unsigned short最大值是65535,即:一个包的长度最大为65536字节。//定义IP首部 struct _iphdr { unsigned char h_verlen; //4位首部长度,4位IP版本号 unsigned char tos; //8位服务类型TOS unsigned short total_len; //16位总长度(字节) unsigned short ident; //16位标识 unsigned short frag_and_flags; //3位标志位,13位偏移量 unsigned char ttl; //8位生存时间 TTL unsigned char proto; //8位协议 (TCP, UDP 或其他) unsigned short checksum; //16位IP首部校验和 unsigned int sourceIP; //32位源IP地址 unsigned int destIP; //32位目的IP地址 }; null此时如何实现“Ping Of Death”攻击呢?这里首先要将在结构体ip_header的结构进行一下解释。在结构体ip_header中,有一个成员frag_and_flags,该成员共2字节16位,它分为两部分: 3位标志位:这里需要解释的是其中两位,其中1位指定数据包是否允许被分段,还有1位指定后面是否还有更多允许分段的数据包; 另外13位:指定数据包分段的偏移量。 这样就可能出现一个问题:在整个数据包所包含的最后一个字节处,最后一个数据段可以被添加到整个数据包中,数据包的长度就会超过最大值是65535。此时出现拒绝服务攻击。 null怎样避免这样的问题?很明显,应该在编程的过程中进行充足的考虑(比如在数据组装时进行充分的检查),并且认真进行测试,使得数据包的长度在65535之内。以下代码结构可以解决以上问题: 该代码结构中描述了运算过程,具体的代码和具体的语言相关,用户可以参考相关资料,完成相应代码。 //数据检查 bool ReassemblePackets(含有多个_iphdr的集合) { //Step1:获取最后一个包,找到其偏移量 //Step2:获得该包的长度 //Step3:用偏移量加上该包长度,看是否大于65535 //Step4:决定该包是否被丢弃 } 11.2.2 资源不足攻击11.2.2 资源不足攻击资源不足攻击,顾名思义,是指攻击者能够消耗特定的资源,使得系统资源不足。以聊天程序为例,如果服务器代码中,每收到一个Socket连接请求就开辟一个新的线程,那么敌方就有可能反复请求连接,如果不限制工作线程的数目,攻击者就很容易反复进行连接请求,制造足够多的线程来耗尽服务器端得CPU和内存资源。本节以SYN Flood为例,来说明这种攻击的原理和解决方法。 SYN Flood是当前比较流行的DoS与DDoS方式之一,很多其他形式的攻击都可能是这种攻击的变种,或者原理与此方法类似。在该攻击方法中,利用了TCP协议缺陷,向服务器端发送大量的TCP连接请求,而这些连接请求是伪造的,从而使得被攻击方资源耗尽(CPU满负荷或内存不足)。null根据网络通信原理,TCP协议是基于连接的,言下之意,为了在服务端和客户端之间传送TCP数据,必须先建立一个TCP连接,然后才能够传输数据,否则一端就进行等待。其中,建立TCP连接的过程在TCP协议中被称为三次握手(Three-way Handshake),其过程如图所示: null该图中,HOSTA向HOSTB发出链接请求,可以认为HOSTA为客户端,HOSTB为服务器端,其流程如下: 1:客户端向服务器端发送一个TCP报文(同步报文或称SYN报文),该报文包含SYN(同步)标志,SYN报文中同时指明了客户端使用的端口以及TCP连接的初始序号(seq=x); 2:服务器端在收到客户端的SYN报文后,将返回一个SYN(同步)+ACK(确认)标志的报文给客户端,表示客户端的请求被服务器端接受;从图中可以看出,此处seq=y,ACK=x+1; 3:客户端收到服务器端的SYN(同步)+ACK(确认)标志的报文之后,也返回一个含有ACK标志(ack=y+1)的报文给服务器端,到此一个TCP连接完成。null不过,我们无法保证网络的稳定性,如果由于网络原因,无法保证三次握手能够正常完成,TCP协议是怎么解决的呢? 以一个极端的例子为例,在上面例子的第一步中,客户端向服务器发送了SYN报文后突然停电,服务器并不知道客户端停电了,在服务器上仍然执行第二步工作,也就是说,服务器端在收到客户端的SYN报文后,将返回一个SYN(同步)+ACK(确认)标志的报文给客户端。 null但是此时,由于客户端停电了,客户端就无法执行第三步,也就是说服务器端无 法收到客户端的 ACK 报文(第三次握手无法完成),怎么处理? TCP 协议中,这种情况下服务器端一般再次发送 SYN+ACK 给客户端,经过一 段时间,如果还是没有响应,则将该连接视为无效的连接,并且丢弃;通俗地说,就是服务器等待,超过一定时间,放弃连接。 一般说来,服务器等待的这个时间为 30 秒到 2 分钟,该时间也称为 SYN Timeout 时间。 攻击者就是利用这个缺陷,可以对服务器进行攻击。因为当单个客户端连接服务 器时出现异常,导致服务器的一个线程等待一段时间,不会造成服务器的崩溃;但是, 如果大量的客户端连接服务器出现异常,导致服务器的多个线程都要等待一段时间, 服务器就难以承受了。 nullSYN Flood 攻击中,攻击者就是大量模拟了这种情况,此时,服务器在短时间内 必须消耗资源来维护一个很大的未完成的连接的集合,并且还要对这个集合不断进行 遍历和检查,会消耗非常多的 CPU 时间和内存;此外,服务器还要不断对各个客户 端发出 SYN+ACK 报文进行重试,当攻击足够凶猛时,服务器的 TCP/IP 栈如果不够 强大就会造成崩溃;即使没有崩溃,服务器也会忙于处理这些伪造的请求,当客户的 正常请求到达时,它也难以处理。站在正常客户的角度来看,服务器响应变慢,或者 干脆失去了响应。 null从开发角度讲,要防御此种攻击,有几种简单的解决方法: 1:缩短 SYN Timeout 时间。SYN Flood 攻击的本质在于向服务器端请求大量的 未完成连接,而这些连接的个数直接影响到攻击的效果。因此,如果将 SYN Timeout 时间缩短,就有可能让某些连接在短时间之内被放弃,可以降低服务器负担。 值得注意的是,如果将 SYN Timeout 设置得过小,又有可能会影响正常客户的访 问。但是,该方法仅在对方攻击频度不高的情况下生效, 2:设置黑名单。一般采用 Cookie 方法,也称 SYN Cookie。该方法中,当有一 个请求到达时,给该请求连接的 IP 地址分配一个 Cookie,如果在短时间之内,该 IP 地址重复发送 SYN 报文,就可以认为该 IP 地址是一个攻击者,将其加入到黑名单, 凡是被加入到黑名单中的 IP 地址,传送的数据包直接被丢弃。该方法主要针对客户 端 IP 地址没有经过伪造的情况。 如果客户端攻击者的 IP 地址经过伪造,这种方法就不奏效了。 3:使用相应软件(防火墙),屏蔽掉一些可疑的客户端,也能从一定程度上降低被 攻击系统的负荷。 null怎样判断程序受到了拒绝服务攻击呢?以 TCP SYN Flood 攻击为例,一般情况 下,可以一些简单步骤来判断系统是否正在遭受 TCP SYN Flood 攻击,如: 1:由正常客户端报告,发现服务端无法提供正常的 TCP 服务,连接请求经常被 拒绝或超时。 2:在服务器端,利用 netstat -an 命令,检查系统中是否有大量的 SYN_RECV 连 接状态,如果有很多,或者超过一定比例,就说明系统可能遭受了拒绝服务攻击。以 下是运行该命令的效果: null11.2.3 恶意访问攻击 11.2.3 恶意访问攻击 某些应用程序(特别是 WEB 程序)是针对不可预知的客户的,客户的访问大都是 正常的,但是某些恶意的访问可能会给系统造成一定困扰。以 Web 程序为例,Web 程序的运行结构如下: null该图中,客户端可以发出请求,运行应用服务器中的程序(如网页),服务器端程 序访问数据库,得到结果应答给客户端。此时,恶意的客户端有可能对服务器端造成 一些攻击,如: 1:恶意添加。编写一段机器人程序,通过客户端页面,向服务器端反复提交一 些添加的信息 (如注册新用户、发表评论等),让应用服务器忙,数据库反复添加信息, 保存大量垃圾数据。 2:恶意查询。编写一个机器人程序,对同一个账号,反复进行登录试探密码。 等等。 以上 WEB 站碰到的客户机恶意攻击,是一种身份欺骗,是一种常见的攻击手段。 它通过在客户端脚本写入一些代码,然后利用客户机在网站反复登陆;或者攻击者自 己创建一个网页,网页中包含一个表单,表单内包含了和原始网站提交表单中相同的提交目标和表单元素,然后反复提交表单,实际上是在服务器端进行相应的操作,如 创建帐户、提交垃圾数据等。 null如果服务器本身不能验证该提交的有效性,并及时拒绝此非法操作,它会让服务 器端反复运行,不仅消耗系统的时间资源(让服务器做无用功),也消耗系统的空间资 源 (数据库中存储了大量垃圾数据),这样,降低网站性能,正常用户访问得不到及时 响应,严重情况下甚至使程序崩溃。 要想防范该种恶意攻击,问题的关键在于判断访问 Web 程序是合法用户还是恶 意操作的用户,这一般采用“验证码”技术来实现。 所谓验证码,就是由服务器产生一串随机产生的数字或符号,形成一幅图片,图 片应该传给客户端,为了防止客户端用一些程序来进行自动识别,图片中通常要加上 一些干扰象素,由用户肉眼识别其中的验证码信息。 客户输入表单提交时,验证码也提交给网站服务器,只有验证成功,才能执行实 际的数据库操作。 null典型的含有验证码的表单如下: 用户要想登录,必须准确填入验证码。 验证码为什么可以防止对网站的恶意访问呢?首先介绍验证码必须满足以下几 个性质: 不同的请求,得到的验证码应该是随机的,或者是无法预知的,必须由服务 器端产生; 验证码必须通过人眼识别,而通过图像编程的方法编写的机器人程序在客户 端运行,几乎无法识别。这就是验证码都比较歪斜或者模糊的原因,否则就 很容易通过图像处理算法来识别; 除了人眼观察之外,客户端无法通过其它手段获取验证码信息。这就是验证 码为什么用图片,而不是直接用一个数字文本在页面上显示的原因,因为客 户端可能通过访问网页源代码的方式获取验证码的内容。 null最初的验证码,只是几个随机生成的数字。但是很快就有能识别数字的软件了; 目前常见的验证码是随机数字(有的系统也用随机文字)图片验证码,不过,目前也正 在研究对验证码的识别。 验证码的工作流程如下: 1:服务器端随机生成验证码字符串,保存在内存中,并写入图片,将图片连同 表单发给客户端。 2:客户端输入验证码,并提交该表单,服务器端获取客户提交的验证码,和前 面产生的的随机数字相比较;如果相同,则继续进行表单所描述的操作(如登录、注 册等);如果不同,直接将错误信息返回给客户端。避免程序的继续运行以及访问数 据库。 null很多语言中都可以实现验证码。如 PHP、ASP、JSP,都可以较好地实现这个功 能。系统生成一个随机数,大多为 4 位数字和字母,或者是数字和字母的组合,然后 生成一张根据随机数来确定的图片,把随机数写入到 session 中,传递到要验证的页 面;生成的图片显示给客户端,并要求客户端输入该随机数内容,提交到验证页面, 验证 session 的内容和提交的内容是否一致。 以 JSP 中登录为例,generateCode.jsp 是随机图片生成代码的示例。 loginForm.jsp是表单生成代码。null运行该网页得到的结果为: null验证网页代码如loginResult.jsp 。 输入正确的内容,得到结果: 输入错误验证码,得到结果: 小结 小结 本章首先对拒绝服务攻击的过程、危害进行了阐述,针对集中常见的拒绝服务攻 击进行了分析,并提出了一定的解决方案。本章涉及到的攻击有:系统崩溃、资源不 足、恶意访问等,读者可以查询一些其它相关资料,来获取关于拒绝服务攻击更多的 知识。 练习 练习 1:用 VC 编写模拟 SYN Flood 攻击的例子。 2:任选一种动态网页技术,编写一个注册界面,要求,只有验证码输入正确的 人才能够进行注册。 3:用代码模拟“Ping Of Death”的例子。 4:设计一个例子,攻击服务器并让服务器端执行多个死循环。 5:对上题的情况提出解决方案。
本文档为【11 避免拒绝服务攻击】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_592957
暂无简介~
格式:ppt
大小:758KB
软件:PowerPoint
页数:0
分类:互联网
上传时间:2012-10-20
浏览量:11