关闭

随着Internet时代的来临,实体或虚拟的线路连接起全世界,在这之间互相产生的Mail、讯息、资料传送、浏览网站等行为,也被各式各样的网际网路协议所规范;然而有了规范,就会有恶意人士利用漏洞来进行恶意攻击,本文所介绍之DDoS即为网际网路时代常见的虚拟资讯攻击。
 

DDoS是什么?

DDoS全称为 Distributed Denial of Service,中文名称为分散式阻断服务攻击;为DOS (Denial of Service)的衍生攻击手法。

原理:

其主要原理是以OSI模型中Layer3(网路层)、Layer4(传输层)与Layer7(应用层)的各种协议,通过伪造IP(IP Spoofing)并控制僵尸电脑(Zombie Computer、BOT),将指定类型的封包或者https/http的Request封包传输至目标主机,导致目标主机的网路资源(频宽)、系统资源(CPU、RAM)耗尽,使目标主机无法提供服务给真正的连线者。

详见下图:
DDoS防御

IP Spoofing (IP 欺骗)是什么?

IP Spoofing是透过修改网际网路协定(Internet Protocal)中封包的源IP位址,来伪装攻击者真正的IP位置,并且因转发封包的路由器大多仅检查目的地IP,却不检查封包内的源IP标头是否与来源相同;从而形成可用于攻击之技术。

详见下图:

DDoS防御

如何预防?

IP Spoofing的防御可通过设定防火墙或者网关,进行封包过滤(Packet Filtering),将可疑封包或者是封包内的源IP与实际IP地址不符者,则拒绝传送。
可分为外网至内网的入口过滤;与内网至外网的出口过滤。

注意此预防模式无法缓解来自真实IP(BOT)的攻击。

  • Ingress and Egress Filtering [RFC2267]
 

如何辨别DDoS攻击?

1. 从单一IP或者某一IP网段而来的可疑连线请求。
2. 端点设备的纪录上显示大量的陌生请求。
3. 具备相同连线特征的连线请求,例如单一地区、单一时间。
4. 机器上CPU与RAM的使用率激增。
5. 服务突然中断、或者服务存取速度骤降。
6. 以上状况皆有可能是遭到DDoS攻击,必须排查设备端的纪录,若有安装MRTG(Multi Router Traffic Grapher)等监控软体,或是联系您的ISP业者,取得MRTG图来确认流量或CPU等使用状况。
 

DDoS攻击的类别 (依照OSI 7层的协定来进行分类)

DDoS的攻击种类族繁不及备载,因此仅介绍最常见的攻击手法。

Layer3 - 包括IP Spoofing、IPSec、ICMP Attack、ARP Spoofing
a.ICMP[1] Flooding Attack:

定义:最常见的是DOS - Ping洪水式攻击,通过BOT来发送大量Ping的请求,若是由多台BOT来发送,则为DDoS之Ping攻击。
应对方法:目前各家公有云几乎都提供了Anycast IP的Load Balance服务,可借由云端供应商的全球大量节点先进一步处理分散ICMP请求;同时也可禁用伺服器的ICMP功能,达到防护的效果。

Layer4 - TCP
a.SYN洪水攻击

定义:

通过TCP握手协议[2]来进行攻击,在一般正常的情况下:

第一步:A伺服器会发出SYN封包来建立第一次的连线。

第二步:收到封包的B伺服器会回传SYN/ACK封包来确认。

第三步:A伺服器回传ACK封包,确认建立连线。

三步骤后,连线即可建立。然而SYN洪水攻击,则是使用多台BOT,在第一步发送SYN后,让目标伺服器回传SYN/ACK封包后,却不回传ACK封包。

此举是因为目标伺服器在收到SYN封包后,都会打开一个临时端口来进行Session的维持,故可以耗尽目标伺服器的端口,达成瘫痪的目的。

请见下图:

DDoS防御

应对方法:

1. 使用Anti-DDoS等云端工具,将恶意流量导入清洗中心进行清洗或者导入黑洞过滤。
2. 建立Proxy Server - 通常是防火墙,来代替原伺服器建立外部连线,确认建立连线后,才将流量导入原伺服器内。
3. 调整机器内的设定,当有新的TCP连线流入,则覆盖最前面尚未建立连线的临时埠。

 
b.ACK洪水攻击

定义:

三次交握后,建立了TCP联接,而客户端在主机端传送数据结束时都会传送ACK封包以确认是否有正常传递数据,或者顺序是否正确;主机端在收到ACK封包时会耗费运算资源来检查该封包的状态与内容,若封包显示资料未正常传递,会重新再传送一次数据。

因此透过上述的机制,攻击者可以在建立TCP连接后,用大量的ACK封包来瘫痪主机,使得正常的ACK封包无法得到响应。

应对方式:

透过Anycast IP Proxy来与客户端进行连接,并且搭配云端工具判断IP来源是否可疑、同时进行攻击侦测,若被攻击,则自动将流量导入清洗中心进行近源清洗。

Layer4 - UDP
a.UDP Flood

定义:

UDP 洪水攻击是常见的UDP DDoS攻击手法,由于UDP协议是一种非连线型的协议,因此攻击者透过发送大量任意埠号且伪造IP的UDP封包给主机端,而主机收到此UDP封包,会消耗资源检查该埠号是否有程式在接收封包;若无程序在接收该埠口的封包,则发送ICMP (Ping)给发送者。

透过这样的机制,攻击者使用大量僵尸机来发送UDP封包,进而造成频宽负荷以及主机端疲于奔命。

应对方式:

在云端平台上可透过Anycast IP来将流量导离主机端,且针对大量重复的UDP封包,各云端节点将会进行第一层的防护措施,保障主机端的安全。

b.DNS放大攻击

定义:

放大攻击的原理是通过发送小型的请求,经过一些服务转发后,响应的封包比起原先的请求封包内容还要大上许多倍,再透过IP Spoofing的方式,将所有响应封包转发给受害者。

DNS放大攻击即为攻击者伪装正常的伺服器发起DNS查询,再将封包内的IP改为受害者主机IP,借此让受害者主机被塞入大量封包,导致主机服务中断。

应对方式:

1. 增大频宽
2. 使用DDoS防御产品,清洗异常流量
3. 防火墙设定检查封包源IP,若异常,则不予接收。

c.NTP放大攻击

定义:

放大攻击的原理是通过发送小型的请求,经过一些服务转发后,响应的封包比起原先的请求封包内容还要大上许多倍,再透过IP Spoofing的方式,将所有响应封包转发给受害者。

而NTP放大攻击则是通过NTP (Network Time Protocal)的协定来做攻击,由于NTP也是走UDP的协定,因此并不包含检查机制。

而NTP攻击的原理是透过一个叫做MONLIST的指令,主要用于查看NTP伺服器的连线状况,并回传与 NTP 伺服器进行过时间同步的最后 600 个主机端的 IP。因此藉由IP Spoofing来伪造IP,并发送Monlist指令,让回传的封包传回给受害主机,就称为NTP放大攻击。

应对方法:

1. 更新NTP Server的版本至最新版本,避免遭恶意人士利用。
2. 防火墙 ACL阻挡 (ACL = Access Control List)
3. DDoS导流至清洗中心做流量清洗。

 

结语

以上仅为DDoS的基本介绍,攻击种类与手法也仅为冰山一角。

在现今的网路时代,DDoS攻击非常容易遇到,在面对攻击时,我们要如何做到不让服务中断,避免业务上的损失,是我们应该要注意的方向。

Higher Cloud

海尔云端提供了多云的服务,且同时专精网路、基础架构,因此针对不同的DDoS攻击有着不同架构规划,并且成功协助诸多客户抵挡了DDoS攻击。

欢迎联系海尔云端,会由专人协助,透过了解贵司基础架构,提供相对应的云端防御方案。

注[1] 网际网路协议中的ICMP协定,主要是传送请求,请目标伺服器提供网路问题的反馈;利用这些资讯来协助IT人员可以针对所发生的问题作出判断,并实施相对应的措施解决。