DDOS攻擊的三種常見方式
SYN/ACK Flood 攻擊:
這種攻擊方法是經典最有效的 DDOS 攻擊方法,可通殺各種系統的網絡服務,主
要是通過向受害主機發送大量偽造源 IP 和源端口的 SYN 或 ACK 包,導致主機的
緩存資源被耗盡或忙於發送回應包而造成拒絕服務,由於源都是偽造的故追蹤起
來比較困難,缺點是實施起來有一定難度,需要高帶寬的僵屍主機支持。少量的
這種攻擊會導致主機服務器無法訪問,但卻可以 Ping 的通,在服務器上用
Netstat -na 命令會觀察到存在大量的 SYN_RECEIVED 狀態,大量的這種攻擊會
導致 Ping 失敗、TCP/IP 棧失效,並會出現系統凝固現象,即不響應鍵盤和鼠標。
普通防火墻大多無法抵禦此種攻擊。
TCP 全連接攻擊:
這種攻擊是為了繞過常規防火墻的檢查而設計的,一般情況下,常規防火墻大多
具備過濾 TearDrop、Land 等 DOS 攻擊的能力,但對於正常的 TCP 連接是放過的,
殊不知很多網絡服務程序(如:IIS、Apache 等 Web 服務器)能接受的 TCP 連接
數是有限的,一旦有大量的 TCP 連接,即便是正常的,也會導致網站訪問非常緩
慢甚至無法訪問,TCP 全連接攻擊就是通過許多僵屍主機不斷地與受害服務器建
立大量的 TCP 連接,直到服務器的內存等資源被耗盡而被拖跨,從而造成拒絕服
務,這種攻擊的特點是可繞過一般防火墻的防護而達到攻擊目的,缺點是需要找
很多僵屍主機,並且由於僵屍主機的 IP 是暴露的,因此此種 DDOS 攻擊方式容易
被追蹤。
刷 Script 腳本攻擊:
這種攻擊主要是針對存在 ASP、JSP、PHP、CGI 等腳本程序,並調用 MSSQLServer、
MySQLServer、Oracle 等數據庫的網站系統而設計的,特征是和服務器建立正常
的 TCP 連接,並不斷的向腳本程序提交查詢、列表等大量耗費數據庫資源的調用,
典型的以小博大的攻擊方法。一般來說,提交一個 GET 或 POST 指令對客戶端的
耗費和帶寬的占用是幾乎可以忽略的,而服務器為處理此請求卻可能要從上萬條
記錄中去查出某個記錄,這種處理過程對資源的耗費是很大的,常見的數據庫服
務器很少能支持數百個查詢指令同時執行,而這對於客戶端來說卻是輕而易舉
的,因此攻擊者只需通過 Proxy 代理向主機服務器大量遞交查詢指令,只需數分
鐘就會把服務器資源消耗掉而導致拒絕服務,常見的現象就是網站慢如蝸牛、ASP
程序失效、PHP 連接數據庫失敗、數據庫主程序占用 CPU 偏高。這種攻擊的特點
是可以完全繞過普通的防火墻防護,輕松找一些 Proxy 代理就可實施攻擊,缺點
是對付只有靜態頁面的網站效果會大打折扣,並且有些 Proxy 會暴露 DDOS 攻擊
者的 IP 地址。
攻擊原理
目前 DDoS 攻擊主要分為兩類:帶寬耗盡型和資源耗盡型。
帶寬耗盡型主要是堵塞目標網絡的出口,導致帶寬消耗不能提供正常的上網服
務。例如常見的 Smurf 攻擊、UDP Flood 攻擊、MStream Flood 攻擊等。針對此
類攻擊一般采取的措施就是 QoS,在路由器或防火墻上針對此類數據流限制流
量,從而保證正常帶寬的使用。單純帶寬耗盡型攻擊較易被識別,並被丟棄
DDOS攻擊的三種常見方式