一般而言,我們會根據針對的協議類型和攻擊方式的不同,把 DDoS 分成SYN Flood、ACK Flood、UDP Flood、NTP Flood、SSDP Flood、DNS Flood、HTTP Flood、ICMP Flood、CC等類型。
而反射型DDoS攻擊則是DDoS攻擊中較巧妙的一種。攻擊者並不直接攻擊目標服務 IP,而是通過偽造被攻擊者的 IP向開放某些某些特殊服務的服務器發請求報文,該服務器會將數倍於請求報文的回復數據發送到那個偽造的IP(即目標服務IP),從而實現隔山打牛,四兩撥千金的效果。
而UDP協議沒有握手,且允許IP源地址偽造,很多協議在響應包處理時,要遠大於請求包,一個字節的請求十個字的響應,十個字節的請求一百個字的響應,這就是UDP反射放大攻擊最根本的原理。
1、不握手:TCP面向連接 ; UDP不需要建立連接
2、不可靠:TCP提供可靠的服務。也就是說,通過TCP連接傳送的數據,無差錯,不丟失,不重復,且按序到達;UDP盡最大努力交 付,即不保證可靠交付。
3、無控制:UDP沒有擁塞控制,因此網絡出現擁塞不會使源主機的發送速率降低
4、一對多:UDP支持一對一,一對多,多對一和多對多的交互通信
5、開銷小:UDP的首部開銷小,只有8個字節。
所以,UDP的反射型DDos更加受攻擊者的鍾愛。
在反射型攻擊中,攻擊者利用了網絡協議的缺陷或者漏洞進行 IP 欺騙,主要是因為很多協議(例如 ICMP,UDP 等)對源 IP 不進行認證。同時,要達到更好的攻擊效果,黑客一般會選擇具有放大效果的協議服務進行攻擊。總結一下就是利用 IP 欺騙進行反射和放大,從而達到四兩撥千斤的效果。
DNS反射攻擊
DNS 服務是整個互聯網的基礎服務,在連接互聯網的時候,需要通過 DNS 解析將域名轉化成對應的 IP 地址。理論上來說 ISP 的 DNS 服務器只響應來自它自己客戶 IP 的 DNS Query 響應,但事實上互聯網上大量 DNS 服務的默認配置缺失,導致了會響應所有 IP 的 DNS Query 請求。
同時,DNS 大部分使用 UDP 協議,UDP 協議沒有握手過程讓其去驗證請求的源 IP。攻擊者(實際上是攻擊者控制的傀儡機)發送大量偽造了 Victim IP 的請求給 DNS 服務器,DNS 服務器成為放大器將 DNS 響應回復給受害者。
NTP反射攻擊
NTP 是網絡時間協議(Network Time Protocol)的簡稱,是用來使計算機時間同步化的網絡協議。NTP 包含一個 monlist 功能,也被稱為 MON_GETLIST,主要用於監控 NTP 服務器,NTP 服務器響應 monlist 后就會返回與 NTP 服務器進行過時間同步的最后 600 個客戶端的 IP,響應包按照每 6 個 IP 進行分割,最多有 100 個響應包。
SSDP反射攻擊
互聯網上家用路由器、網絡攝像頭、打印機、智能家電等智能設備普遍采用 UPnP(即插即用)協議作為網絡通訊協議, 而 UPnP 設備的發現是通過源端口為 1900 的 SSDP(簡單服務發現協議)進行相互感知。
利用 SSDP 協議進行反射攻擊的原理與利用 DNS 服務、NTP 服務類似,都是偽造成被攻擊者的 IP 地址向互聯網上大量的智能設備發起 SSDP 請求,接收到請求的智能設備根據源 IP 地址將響應數據包返回給受害者。隨着物聯網和智能設備的快速發展和普及,利用智能設備展開 DDoS 攻擊會越來越普遍。
SNMP反射攻擊
簡單網絡管理協議(Simmple Network Management Protocol,SNMP)一般用來監控和管理網絡設備,服務端口UDP 161/162,管理站(manager/客戶端)、被管理設備(agent/服務端)