DDoS攻击,简单来说,就是攻击者控制大量“肉鸡”主机,集中向目标服务器或网站发起海量请求。这类分布式拒绝服务攻击来势凶猛、爆发迅速,常常让管理员来不及反应,造成的网络瘫痪和业务中断影响也非常大。过去网络管理员在应对DoS攻击时,还可以通过过滤IP地址进行缓解;但面对如今的DDoS攻击,攻击者往往会伪造成千上万个虚假地址,传统拦截方式很难真正发挥作用。正因为如此,DDoS防御已经成为网络安全中的重点难题。那么,企业和运维人员究竟该如何有效防范和应对DDoS攻击?下面从两个方面进行分析——一是攻击发生时的应急处理策略,二是日常可执行的预防措施。
一、寻找机会应对攻击
当用户正在遭受DDoS攻击时,现场可采取的防御手段其实比较有限。尤其是在没有提前部署防护方案的情况下,大流量、灾难级的攻击往往会在极短时间内压垮网络出口,甚至在管理人员还没来得及排查前,业务就已经中断。不过,即便处于被动状态,仍然可以尝试抓住一些关键机会,为系统争取恢复空间。
(1) 检查攻击来源
攻击者通常会借助大量伪造IP地址发起流量攻击。此时,如果用户能够尽快区分哪些是真实IP、哪些是伪造IP,并进一步分析这些地址所属的网段,就有机会联系相关网络管理方进行处理,从源头上压缩攻击规模。如果确认这些IP地址主要来自外部网络而不是公司内部,那么可以先采取临时过滤策略,在服务器或路由器上将相关可疑地址进行拦截,以减轻DDoS攻击带来的压力。
(2) 找出攻击者所经过的路由,把攻击屏蔽掉
如果黑客是通过某些特定端口或路径发起攻击,用户可以考虑对这些端口进行封禁或限制,以阻止恶意流量继续进入。不过,这种方法也有明显局限:当公司网络出口只有一个,而且遭遇的是外部DDoS攻击时,直接封堵出口端口往往并不可行。因为一旦封掉,内部所有主机都将无法正常访问互联网,虽然阻断了攻击,也同时影响了正常业务,代价非常高。
(3) 在路由器上过滤ICMP
还有一种相对折中的处理方式,就是在路由器上限制或屏蔽ICMP协议。虽然这种做法无法彻底消除DDoS攻击,但过滤ICMP流量通常能够有效防止攻击进一步放大,在一定程度上减轻网络拥塞和带宽消耗,属于应急阶段较常见的缓解手段之一。
二、预防为主,保证安全
DDoS攻击一直是黑客最常见、最具破坏性的攻击方式之一。与其在攻击发生后被动应对,不如提前做好DDoS防护部署。下面列出的一些常见防御方法,适合在日常网络运维和安全管理中持续落实。
(1) 过滤所有RFC1918 IP地址
RFC1918 IP地址属于内部网络保留地址,例如10.0.0.0、192.168.0.0和172.16.0.0等,这些地址并不是可在公网中正常路由的固定公网IP。攻击者在发起DDoS攻击时,经常会伪造大量这类内部地址来混淆来源、增加排查难度。因此,提前在边界设备上过滤这些RFC1918地址,能够在一定程度上减少无效流量进入,减轻分布式拒绝服务攻击对网络的冲击。
(2) 用足够的机器承受攻击
这是一种较为理想化的DDoS防御思路:如果用户拥有足够充足的服务器资源、带宽能力和系统冗余,即使黑客持续发动高强度攻击,也未必能在短时间内压垮目标。某种意义上说,攻击者在消耗目标资源的同时,自身也在不断消耗控制端和攻击节点的能力,甚至可能在目标失效前先失去持续攻击的能力。不过,这种方案通常需要较高的硬件投入和带宽成本,很多设备在平时又处于低利用率状态,因此对多数中小企业而言并不现实。
(3) 充分利用网络设备保护网络资源
这里所说的网络设备,主要包括路由器、防火墙、负载均衡设备等,它们在DDoS防护体系中承担着非常重要的作用。当网络遭到攻击时,最先承受冲击的往往是边界路由器,但后端业务服务器不一定会立即崩溃。路由器在重启或切换后,通常能够较快恢复工作,整体损失相对较小。相比之下,如果核心服务器直接被打瘫,不仅业务中断时间更长,还可能带来数据丢失和恢复复杂的问题。尤其是在公司部署了负载均衡设备的情况下,一台路由器或节点被攻击宕机,另一台设备可以快速接管业务,从而尽可能降低DDoS攻击造成的影响。
(4) 在骨干节点配置防火墙
防火墙本身就具备抵御DDoS攻击及其他网络攻击的基础能力。在检测到异常流量后,可以考虑把攻击流量引导到牺牲主机上,例如不重要的服务器,或者Linux、Unix等漏洞较少、系统稳定性和防御能力较强的主机环境,从而将真正关键的业务主机与恶意流量隔离,减少核心系统遭受攻击的风险。
(5) 过滤不必要的服务和端口
可以使用Inexpress、Express、Forwarding等工具过滤不必要的服务和端口,也可以在路由器上进一步拦截伪造IP。例如Cisco的CEF(Cisco Express Forwarding)能够将数据包的Source IP与路由表进行比较并执行过滤。当前很多服务器本身就遵循最小暴露原则,只开放必要的业务端口,比如WWW服务器通常只开放80端口,其余端口全部关闭,或者在防火墙中配置访问阻断策略。这种减少暴露面的做法,对提升网络安全和降低DDoS攻击风险都非常有效。
(6) 限制SYN/ICMP流量
可以在路由器上为SYN/ICMP设置最大流量阈值,限制这类数据包能够占用的最高带宽。一旦出现大量超出设定范围的SYN/ICMP流量,通常就可以初步判断这并非正常访问行为,而很可能是攻击流量。早期限制SYN/ICMP流量曾是应对DoS攻击非常有效的方法之一,虽然在面对更复杂的DDoS攻击时效果不如从前明显,但作为辅助防御策略,依然具有一定的实际价值。
(7) 定期扫描
应当定期扫描现有网络中的核心节点和关键主机,排查可能存在的安全漏洞,并及时修补新出现的漏洞风险。由于骨干节点上的计算机通常具备更高带宽资源,因此也更容易成为黑客控制和利用的重点目标。加强这些主机本身的系统安全、防止其被攻陷并沦为攻击跳板,意义非常重大。并且,连接在网络主节点上的往往都是服务器级计算机,定期开展漏洞扫描和安全巡检就显得更加关键。
(8) 检查访问者的来源
可以使用Unicast Reverse Path Forwarding等反向路由查询技术,核查访问者的IP地址是否真实有效;如果发现是伪造地址,可以直接进行屏蔽。许多黑客攻击都会大量使用假IP来隐藏真实来源、干扰追踪和分析,因此很难通过常规方式快速定位。借助Unicast Reverse Path Forwarding,可以减少伪造IP流量进入网络,有助于提升整体网络安全水平,并增强DDoS防御能力。
