摘要: 本文对拒绝服务(DoS)攻击的分类和典型攻击手段进行阐述,介绍了“杀手型”、“风暴型”和“劫持型”三种典型的拒绝服务攻击/分布式拒绝服务攻击类型,进一步提供了DoS攻击预防和响应的建议。
关键词:应急响应 拒绝服务 分布式拒绝服务 计算机取证
Emergency response against DoS attack Li Jing (China Information Technology Security Evaluation Center)
Abstract:This article introduces the typical classifications and methods of DoS attacks, and propose suggestions on DoS prevention and response.
Key words: Emergency Response, Denial of Services, Distributed Denial of Services, Computer Forensics
2008年5月,在EuSecWest安全会议上,HP安全研究人员公开了一种针对网络设备的新攻击方法,称为“永久拒绝服务攻击(PDoS)”。这种攻击方法利用固件程序(Firmware)闪存更新 (Flash Update) 功能进行拒绝服务(DOS)攻击, 对嵌入式系统设备有极大威胁;一旦在更新过程中被植入木马,恶意程序将跟随机器启动,直接造成硬件不能工作或损坏。这不禁让人联想到2004到2006年间在美国发生的多次大规模停电事故,针对基础设施的攻击已不再是仅存于科幻小说里面的情节,对于拒绝服务攻击应急响应的需求正在扩展。
一、DOS攻击种类大盘点
DoS (Denial of Service)攻击简称为拒绝服务攻击,是一种主要通过让合法用户无法得到服务的简单而有效的网络攻击方式。实施拒绝服务攻击的目的就是拒绝用户的正常访问,破坏组织的正常运行。拒绝服务攻击的分类方法有多种,不同的应用场合采用不同的分类。
按攻击形式分可以是物理的,也可以是逻辑的。物理形式的攻击如偷窃、破坏物理设备,破坏电源,剪断光纤电缆等。逻辑形式的攻击如利用软件漏洞、协议缺陷进行的攻击。 按攻击的目标又可分为节点型和网络连接型,前者旨在消耗节点(主机Host)资源,后者旨在消耗网络连接和带宽。
在本文中,我们主要讨论网络拒绝服务攻击/分布式拒绝服务攻击的一些典型攻击手段,它主要包括“杀手型”、“风暴型”和“劫持型”拒绝服务攻击/分布式拒绝服务攻击。
(1)“杀手型”拒绝服务攻击。
“杀手包”型拒绝服务攻击是一种最传统的网络拒绝服务攻击,它主要利用网络协议及其网络应用实现中存在的漏洞,发送一些特殊构造的包,即“杀手包”,使受害者系统在处理时产生异常,导致受害者系统不可用。常见的“杀手包”型攻击包括死亡之ping (ping of death)、泪滴攻击(teardrop)等。
1. 死亡之ping (ping of death)——由于在早期的阶段,路由器对包的最大尺寸都有限制,许多操作系统对TCP/IP栈的实现在ICMP包上都是规定64KB,并且在对包的标题头进行读取之后,要根据该标题头里包含的信息来为有效载荷生成缓冲区,当产生畸形的,声称自己的尺寸超过ICMP上限的包也就是加载的尺寸超过64K上限时,就会出现内存分配错误,导致TCP/IP堆栈崩溃,致使接受方当机。
2. 泪滴攻击(teardrop)——泪滴攻击利用那些在TCP/IP堆栈实现中信任IP碎片中的包的标题头所包含的信息来实现自己的攻击。IP分段含有指示该分段所包含的是原包的哪一段的信息,某些TCP/IP(包括service pack 4以前的NT)在收到含有重叠偏移的伪造分段时将崩溃。
(2)“洪水型”分布式拒绝服务攻击。“洪水型”分布式拒绝服务攻击是一种最典型的网络分布式拒绝服务攻击,它主要利用网络协议及其网络实现中的缺陷或对其正常功能进行精心滥用,在攻击受害者处产生大量分布流量从而导致受害者网络和系统无法正常使用。常见的 “洪水型”分布式拒绝服务攻击包括UDP洪水(UDP flood)、SYN洪水(SYN flood)、Smurf攻击、Fraggle攻击和电子邮件炸弹等。
(3)“劫持型”拒绝服务攻击。“劫持型”拒绝服务攻击是一种间接的网络拒绝服务攻击,它并不直接攻击受害者,而是通过攻击和修改网络中的一些参数,例如毒化ARP和DNS数据和缓存等,造成无法找到正确的目标系统或资源,从而间接产生拒绝服务。这种方法常常是用于窃听或者中间人攻击,但是,如果数据包被重定向到不存在的主机或者存在但不将数据包转发到其真正目的地的主机,则构成实际的拒绝服务。
2004年以来,拒绝服务攻击在技术上变得更加多样化,能够造成的破坏也越来越大。例如去年出现的一种新型的针对网络设备的DoS攻击,称为“永久拒绝服务攻击(PDoS)。这种攻击会对固件进行刷新,直接造成硬件不能工作或损坏,从而影响各种应用。特别是嵌入式系统,像无线路由器、网络相机和打印机等都需要频繁的更新和升级,而厂家在更新和升级方面所提供的手段比较“原始”,这就给人留下了可趁之机。攻击者主要针对知名的互联网业务站点和重要的应用服务器,导致一些业务不能正常运行,给被攻击者带来业务收入、客户资源、企业形象等各方面的损失。
二、关于拒绝服务攻击的应急响应
面对如此形形色色的拒绝服务攻击形式,哪些系统受到该攻击的影响?哪些信息受到威胁?谁导致了该攻击?我们是否具备应急响应的能力?又该采取什么措施,使业务能快速恢复正常呢?对于拒绝服务攻击的应对或应急响应工作,本文认为,需要从事件的前期预防和后期响应两方面进行完整的考虑。
(一)前期预防
应急响应的原理就是创建一个基础架构,使之能在紧急事件发生之后及时提供快速应答。作为应急响应策略中不可忽视的重要环节,前期准备不仅有助于应急响应能力的建立,还可保证系统、网络及设备有充分的安全性,防患于未然。前期准备工作通常包括:识别公司的风险;增强基于网络的安全措施;制订能够实现应急响应目标的策略和规程;建立能集合起来处理突发事件的应急响应小组;创建应急小组能使用的应急工具包等。在具体实施上可以从从管理、技术和人员三个层面进行有效的前期准备和预防。
1.从管理层面来说,可从以下几个方面入手:
(1)对于拒绝服务攻击(DoS),特别是分布式拒绝服务攻击,其核心思想是“上游保护下游”。因此需要与该组织的互联网服务供应商联系,协商处理网络DoS攻击。协商内容可包括过滤或流量限制,拒绝服务攻击流量日志,DNS查询,原地址追踪能力等内容。
(2)制定策略,确定正确的系统监测策略或指导方针。建立网络带宽和关键主机的利用基准,在与基准发生显著偏移时建立日志记录或告警机制。
(3)建立专门应急响应小组应对包括应急响应事件在内的突发事件。组建形式可以是利用组织内部资源自建多成员团队,包括技术、法律方面的专业人员,也可以请专门的应急响应组织协助处理。
2.从技术层面来说,可从以下几个方面入手:
(1)从主机层、网络层和应用层进行漏洞检测和安全加固。①设置主机:关闭不必要的服务,限制同时打开的SYN半连接的超时时间,及时更新系统补丁等。检测系统是否被植入了攻击守护程序,最简单的办法是检测未知的udp端口,如使用命令查看:netstat -a | grep udp 端口号,如得到的信息是监听(listen)等激活状态就应引起注意。②设置网络设备:可以在防火墙与路由器等网络设备上做配置,这两类设备是连接到外部网络的主要接口设备;部署和配置入侵检测软件检测DOS和DDOS攻击流量。③把网站做成静态页面:网站做成静态页面,能提高抗攻击能力,至少到现在为止,关于HTML的溢出攻击还没出现。
(2)加大网络带宽,配置负载均衡,采取灾难备份系统等措施,增加攻击难度,提高系统可生存性和韧性。网络带宽是决定抗攻击的能力重要因素之一,如果业务性质是不能间断的,当前至少要选择100Mbps的共享带宽,最好当然是1000Mbps的主干网络。
(3)使用专门的检测工具,加强监测。
3.从人员层面来说,应急响应服务涉及多种能力,需要专门的培训和演练。
有许多计算机安全专业组织提供应急响应培训,如中国信息安全产品测评中心(CNITSEC)提供的注册信息安全专业人员(CISP)培训,内容包括解决信息安全事件所需的法律、技术、管理、工程等方面的知识和技能。
(二) 事发或事后的应急响应
如何做好网络攻击事件的应对准备呢?
保持警惕,发现拒绝服务攻击的预兆和征兆,一经发现就可以立即判断其是否为拒绝服务攻击事件。例如,当网络的通讯量突然急剧增长,超过平常的极限值时就需提高警惕,对于流量的判断可以使用称为tcpdstat (http://staff.washington.edu/dittrich/ talks/core02/tools/tools.html)的工具。这个工具通过读和挖掘tcp-dump 文件,生成一个text文档如下:
其它字段我们且不说,PeakRate这个值对于拒绝服务攻击来说,很有参考意义。这个值指的是一个小时内的最高输出,当与一天中的其它时间进行比较时,可以针对某次攻击给出一个大致描述。甚至,我们可以写一个简单的运行脚本,检测以小时为单位的网络流量最大输出率。
一旦网管人员检测到了不寻常的DOS攻击流量,组织机构就能够迅速地转换安全状态来阻止攻击,例如改变防火墙规则集来阻止一个特定的协议或者保护一个脆弱的主机。其它可能的征兆还包括:系统不可用的用户报告;无法解释的连接丢失;网络入侵检测警报 ;主机入侵检测警报;大量至单个主机的连接;非对称的网络流量模式;有不正常源地址的包等。
检测和分析事故后,重要的是在受事故控制的资源蔓延之前或者损失增大之前将事故遏制。如前所述,拒绝服务攻击通常会伪造源地址或者使用成百上千个僵尸主机。在这两种情况下,实施有效的基于源地址的过滤变得很困难。推荐如下解决方法:
1.基于攻击特征实施过滤。例如,如果攻击正使用ICMP回复请求,可以临时性地改变边界策略,阻止整个网络发来的请求。不过,如果攻击者是对一个 Web 服务器发起的SYN泛洪攻击,那么阻止这样的包到端口本身将导致一个对用户的DoS。另一个策略是使用网络流量速率限制:一些路由器有流量速率的最高限制。这些限制条款规定不同类型的网络流量匹配有限带宽。这一措施能预先缓解正在进行的攻击,同时,应将这些过滤器尽量设置在网络上游。
2.纠正正在被攻击的漏洞或弱点。如果攻击是利用了被攻击软件实现上的缺陷完成DoS攻击的,如操作系统未及时进行补丁更新,这样的话,可能需要暂时断开网络隔离主机来阻止DoS攻击,直到主机被加固。
3.让ISP实施过滤。组织机构必须依靠他的互联网服务供应商来实施过滤以阻止DoS攻击活动。由网络服务供应商在他的下游网络设置入口过滤,以防假信息包进入网络,这将防止攻击者伪装IP地址,从而易于跟踪。
4.重定位目标。如果一个特定的主机已被攻击者攻破,并且遏制战略没有发挥作用,那么此时应当将目标服务进行转移,主机移动到不同的IP地址上,使得攻击者无法定位到移动后的IP。可以采用的一个办法是为关键服务器配备一条专门的路由。这条专门的路由可以是廉价的数字线路,专用于负载均衡或者突发攻击环境下进行数据交换。
5.攻击攻击者。当攻击正在进行时,追踪数据包的源头,管理员甚至可以使用远程关闭DDoS代理的程序,或者他们可以修改网络或者服务器的配置来把攻击流量反弹到它的源头。但是,如果源地址是伪造的或者源地址是合法但共享的(例如:代理防火墙),那么这些技术可能会无意攻击无辜的部分。所以这样的技术不建议使用。
6.设定证据保留时间。如果所应对的拒绝服务攻击事件引起了一场法律诉讼,你所获的数字证据和文档在审判过程中很可能被用作证据,所以组织机构要对来自事故中的证据保留多久设定策略。即使是作为后续跟踪报告或者是经验教训总结,也需要考虑存储介质的保存时间,如果存储的数据不可再读出,也就失去了保存的价值。
三、结 语
应急响应处理涉及许多不定因素,所以不要期望一次性做出完美流程,适应所有广泛情形。但是,按本文介绍的方法定义过程阶段,划分清晰的分界线,可以逐渐增强准确信息的积累工作,促进快速侦查,提高组织机构网络安全应急响应能力,将拒绝服务攻击事件对商业和网络运作的破坏性减到最小。
作者简介 李静(1981—),女, 中国信息安全测评中心工程师,主要研究方向为信息安全。 收稿日期:2009年4月10日