NetworkSecurity网络安全张立江cheungcumt@163.com第5讲网络攻击(IV)—拒绝服务攻击与防御Contents拒绝服务攻击的概念1典型DoS攻击2典型DDoS攻击3DoS攻击的防御42019/10/17计算机科学与技术学院2拒绝服务攻击的概念拒绝服务(DenialofService,DoS):一种破坏性攻击,通常是利用传输协议中的某个弱点、系统存在的漏洞、服务的漏洞对目标系统发起大规模的进攻,用超出目标处理能力的海量数据包消耗可用系统资源、带宽资源等,或造成程序缓冲区溢出错误,致使其无法处理合法用户的正常请求,无法提供正常服务,最终致使网络服务瘫痪,甚至系统死机简单的说,拒绝服务攻击就是让攻击目标瘫痪的一种“损人不利己”的攻击手段2019/10/17计算机科学与技术学院3拒绝服务攻击的概念史上最著名的拒绝服务攻击之一——Morris蠕虫:1988年11月,全球众多连在因特网上的计算机在数小时内无法正常工作,遭受攻击的包括5个计算机中心和12个地区结点,连接着政府、大学、研究所和拥有政府合同的25万台计算机。直接经济损失达9600万美元许多知名网站如Yahoo、eBay、CNN、百度、新浪等都曾遭受过DoS攻击典型案例:百度遭受大规模SYNFlooding攻击(2006年)2019/10/17计算机科学与技术学院42019/10/17计算机科学与技术学院5拒绝服务攻击的类型按照攻击行为可分为两类:网络带宽攻击:极大的通信量冲击网络,使所有可用的网络资源被消耗殆尽,最终导致合法用户请求无法通过连通性攻击:大量的连接请求冲击计算机,使得所有可用的系统资源被消耗殆尽,最终计算机无法再处理合法用户的请求2019/10/17计算机科学与技术学院6拒绝服务攻击的类型从实施DoS攻击所用的思路来看,DoS攻击可以分为:滥用合理的服务请求过度地请求系统的正常服务,占用过多服务资源,致使系统超载。这些服务资源包括网络带宽、文件系统空间容量、开放的进程或者连接数等制造高流量无用数据恶意地制造和发送大量各种随机无用的数据包,用这种高流量的无用数据占据网络带宽,造成网络拥塞利用传输协议缺陷构造畸形的数据包并发送,导致目标主机无法处理,出现错误或崩溃利用服务程序的漏洞针对主机上的服务程序的特定漏洞,发送一些有针对性的特殊格式的数据,导致服务处理错误而拒绝服务2019/10/17计算机科学与技术学院7典型拒绝服务攻击技术PingofDeath泪滴(Teardrop)IP欺骗DoS攻击UDP洪水SYN洪水Land攻击Smurf攻击Fraggle攻击电子邮件炸弹畸形消息攻击SlashdoteffectWinNuke攻击2019/10/17计算机科学与技术学院8典型拒绝服务攻击技术PingofDeath(死亡之Ping):ICMP报文长度固定,大小为64KB,早期很多操作系统在接收ICMP报文时,只开辟64KB的缓存区用于存放接收到的数据包一旦发送过来的ICMP数据包的实际尺寸超过64KB,操作系统将收到的数据报文向缓存区填写时,就会产生缓存溢出,将导致TCP/IP协议堆栈的崩溃,造成主机的重启或死机“ping–l”可指定发送数据包的尺寸,因此使用Ping就可以简单地实现这种攻击。例如:Ping-l65540192.168.1.1402019/10/17计算机科学与技术学院9典型拒绝服务攻击技术现在的操作系统已修补了这一漏洞:对可发送的数据包大小进行了限制在Windowsxp及以后操作系统中输入这样的命令:Ping-l65535192.168.1.140系统返回这样的信息:Badvalueforoption-l,validrangeisfrom0to65500.2019/10/17计算机科学与技术学院10典型拒绝服务攻击技术泪滴(分片攻击,Teardrop):典型利用TCP/IP协议问题进行拒绝服务攻击的方式,由于第一个实现这种攻击的程序名称为Teardrop,所以被称为“泪滴”两台计算机通信时,如果传输的数据量较大,无法在一个数据报文中传输完成,就会将数据拆分成多个分片,传送到目的计算机后再到堆栈中进行重组,这一过程称为“分片”为了能在到达目标主机后进行数据重组,TCP首部中包含有信息(分片识别号、偏移量、数据长度、标志位)说明该分段是原数据的哪一段,这样目标主机收到数据后,就能根据首部中的信息将各分片重新组合还原为数据2019/10/17计算机科学与技术学院11典型拒绝服务攻击技术例子:PSH1:1025……PSH1000:2049……PSH2049:3073……132456PSH1:1025……PSH2049:3073……PSH1025:2049……PSH……ACK……试图重组时主机崩溃这样的信息被目的主机收到后,在堆栈中重组时,由于畸形分片的存在,会导致重组出错,这个错误并不仅仅是影响到重组的数据,由于协议重组算法,会导致内存错误,引起协议栈的崩溃2019/10/17计算机科学与技术学院12典型拒绝服务攻击技术IP欺骗DoS攻击:利用RST位实现:假设合法用户(61.61.61.61)已经同服务器建立了连接,攻击者伪装自己的IP为61.61.61.61,并向服务器发送一个带有RST位的TCP数据段。服务器接收后认为61.61.61.61发送的连接有错误,就会清空缓冲区中的连接用户61.61.61.61再发送合法数据,服务器已经没有连接,用户必须重新建立连接攻击时,攻击者伪造大量的IP地址向目标发送RST数据,使服务器不对合法用户服务,从而实现对受害服务器的拒绝服务攻击2019/10/17计算机科学与技术学院13典型拒绝服务攻击技术UDP洪水(UDPFlood):利用主机自动进行回复的服务(如使用UDP协议的chargen服务和echo服务)进行攻击提供服务器,默认打开一些UDP服务:•echo服务:回显接收到的每一个数据包•chargen服务:在收到每一个数据包时随机反馈一些字符,原本用作测试这使一方的输出成为另一方的输入,两台主机间会形成大量的UDP数据包。当多个系统之间互相产生UDP数据包时,最终将导致整个网络瘫痪2019/10/17计算机科学与技术学院14典型拒绝服务攻击技术SYN洪水(SYNFlood):最流行的拒绝服务攻击方式之一,利用TCP协议缺陷,发送大量伪造的TCP连接请求,使被攻击方资源耗尽(CPU满负荷或内存不足)利用TCP连接的三次握手实现:假设客户端向服务器发送了SYN报文后突然死机或掉线,那么服务器在发出SYN/ACK应答报文后无法收到客户端的ACK报文的,服务器一般会重试,并等待一段时间后丢弃这个未完成的连接。这段时间称为SYNTimeout。一般来说这个时间是分钟数量级如果攻击者大量模拟这种情况(伪造IP地址),服务器将为了维护一个非常大的半连接而消耗非常多的资源2019/10/17计算机科学与技术学院15典型拒绝服务攻击技术2019/10/17计算机科学与技术学院16典型拒绝服务攻击技术SYN洪水攻击比较难以防御,以下是几种解决方法:缩短SYNTimeout时间设置SYNCookie:给每个请求连接的IP地址分配一个Cookie,如果短时间内连续收到某个IP的重复SYN报文,就认定是攻击,以后来自这个IP地址的包被丢弃负反馈策略:一旦SYN半连接的数量超过系统中TCP活动半连接最大连接数的设置,系统将认为受到SYNFlood攻击,并作出反应:减短SYNTimeout时间、减少SYN-ACK的重试次数、自动对缓冲区中的报文进行延时等措施,力图将攻击危害减到最低退让策略分布式DNS负载均衡防火墙2019/10/17计算机科学与技术学院17典型拒绝服务攻击技术退让策略:SYNFlood攻击的缺陷:一旦攻击开始,将不会再进行域名解析假设服务器受到SYNFlood攻击后迅速更换自己的IP地址,那么攻击者仍在攻击的将是一个空的IP地址,而防御方只要将DNS解析更改到新的IP地址就能在很短的时间内恢复用户通过域名进行的正常访问为迷惑攻击者,甚至可以放置一台“牺牲”服务器让攻击者满足于攻击的“效果”分布式DNS负载均衡将用户的请求分配到不同IP的服务器主机上防火墙可以识别SYNFlood攻击所采用的攻击方法,并将攻击包阻挡在外2019/10/17计算机科学与技术学院18典型拒绝服务攻击技术Land攻击:由著名黑客组织rootshell发现,利用TCP三次握手的缺陷进行攻击原理:向目标机发送大量的源地址和目标地址相同的包,造成目标主机解析Land包时占用大量的系统资源,从而使网络功能完全瘫痪目标主机收到这样的连接请求会向自己发送SYN/ACK数据包,导致目标主机向自己发回ACK数据包并创建一个连接大量这样的数据包将使目标主机建立很多无效的连接,大量占用系统资源2019/10/17计算机科学与技术学院19典型拒绝服务攻击技术入侵者1.1.1.1(SYN)Hello,I’m1.1.1.1SYN+ACKACK•检测方法:判断网络数据包的源/目标地址是否相同•反攻击方法:适当配置防火墙设备或过滤路由器的过滤规则可以防止这种攻击,并对这种攻击进行审计2019/10/17计算机科学与技术学院20典型拒绝服务攻击技术Smurf攻击:攻击原理:将源地址设置为被攻击主机的地址,而将目的地址设置为广播地址,于是大量的ICMPecho回应包被发送给被攻击主机,使其因网络阻塞而无法提供服务不仅影响目标主机,还能影响目标主机的整个网络系统2019/10/17计算机科学与技术学院21典型拒绝服务攻击技术Fraggle攻击:原理与Smurf一样,采用向广播地址发送数据包,利用广播的特性将攻击放大以使目标主机拒绝服务不同:Fraggle使用的是UDP应答消息而非ICMP222019/10/17计算机科学与技术学院22典型拒绝服务攻击技术电子邮件炸弹:最古老的匿名攻击之一传统的电子邮件炸弹:发送大量邮件以填满你的邮箱,正常邮件会因空间不够而被服务器拒收如果用户邮箱空间不受限,电子邮件炸弹就有可能影响到服务器的正常工作——服务器会接收全部邮件并保存,这将不断吞噬服务器的硬盘空间以致于最终耗尽硬盘空间,使服务器无法再对外服务新SMTP协议规范新增2个命令(VRFY,EXPN),对发件人进行身份认证,一定程度上降低了匿名邮件的风险2019/10/17计算机科学与技术学院23典型拒绝服务攻击技术畸形消息攻击:一种有针对性的攻击方式,利用目标主机或者特定服务存在的安全漏洞进行攻击操作系统上的许多服务都存在安全漏洞,由于这些服务在处理信息之前没有进行适当正确的错误校验,所以一旦收到畸形信息就有可能会崩溃在没有安装相应补丁的IIS5以及没有相应的安全措施时,递交如下的URL会导致IIS5停止服务:[25kbof‘.’]...ida递交如下的HTTP请求会导致IIS系统崩溃,需重启才能恢复:“GET/......[3k].......htrHTTP/1.0”2019/10/17计算机科学与技术学院24典型拒绝服务攻击技术Slashdoteffect:来自Slashdot.org,曾十分知名且浏览人数十分庞大的IT、电子、娱乐网站,也是blog网站的开宗始祖之一在Slashdot.org的文章中放入的网站链接,有可能一瞬间被点入成千上万次,造成被链接的网站承受不住突然增加的连接请求,出现响应变慢、崩溃、拒绝服务,这种现象称为Slashdoteffect瞬间产生大量进入某网站的动作称作Slashdotting,使web服务器或其他类型的服务器由于大量的网络传输而过载,一般这些网络流量是针对某一个页面或一个链接而产生的2019/10/17计算机科学与技术学院25典型拒绝服务攻击技术WinNuke攻击