DDOS是英文Distributed Denial of Service的縮寫,意即“分布式拒絕服務(wù)”,那么什么又是拒絕服務(wù)(Denial of Service)呢?可以這么理解,凡是能導(dǎo)致合法用戶不能夠訪問正常網(wǎng)絡(luò)服務(wù)的行為都算是拒絕服務(wù)攻擊。也就是說拒絕服務(wù)攻擊的目的非常明確,就是要阻止合法用戶對(duì)正常網(wǎng)絡(luò)資源的訪問,從而達(dá)成攻擊者不可告人的目的。雖然同樣是拒絕服務(wù)攻擊,但是DDOS和DOS還是有所不同,DDOS的攻擊策略側(cè)重于通過很多“僵尸主機(jī)”(被攻擊者入侵過或可間接利用的主機(jī))向受害主機(jī)發(fā)送大量看似合法的網(wǎng)絡(luò)包,從而造成網(wǎng)絡(luò)阻塞或服務(wù)器資源耗盡而導(dǎo)致拒絕服務(wù),分布式拒絕服務(wù)攻擊一旦被實(shí)施,攻擊網(wǎng)絡(luò)包就會(huì)猶如洪水般涌向受害主機(jī),從而把合法用戶的網(wǎng)絡(luò)包淹沒,導(dǎo)致合法用戶無法正常訪問服務(wù)器的網(wǎng)絡(luò)資源,因此,拒絕服務(wù)攻擊又被稱之為“洪水式攻擊”,常見的DDOS攻擊手段有SYN Flood、ACK Flood、UDP Flood、ICMP Flood、TCP Flood、Connections Flood、Script Flood、Proxy Flood等;而DOS則側(cè)重于通過對(duì)主機(jī)特定漏洞的利用攻擊導(dǎo)致網(wǎng)絡(luò)棧失效、系統(tǒng)崩潰、主機(jī)死機(jī)而無法提供正常的網(wǎng)絡(luò)服務(wù)功能,從而造成拒絕服務(wù),常見的DOS攻擊手段有TearDrop、Land、Jolt、IGMP Nuker、Boink、Smurf、Bonk、OOB等。就這兩種拒絕服務(wù)攻擊而言,危害較大的主要是DDOS攻擊,原因是很難防范,至于DOS攻擊,通過給主機(jī)服務(wù)器打補(bǔ)丁或安裝防火墻軟件就可以很好地防范,后文會(huì)詳細(xì)介紹怎么對(duì)付DDOS攻擊
當(dāng)前主要有三種流行的DDOS攻擊:
a. SYN/ACK Flood攻擊:這種攻擊方法是最有效的DDOS方法,可通殺各種系統(tǒng)的網(wǎng)絡(luò)服務(wù),主要是通過向受害主機(jī)發(fā)送大量偽造源IP和源端口的SYN或ACK包,導(dǎo)致主機(jī)的緩存資源被耗盡或忙于發(fā)送回應(yīng)包而造成拒絕服務(wù),由于源都是偽造的故追蹤起來比較困難,缺點(diǎn)是實(shí)施起來有一定難度,需要高帶寬的僵尸主機(jī)支持。少量的這種攻擊會(huì)導(dǎo)致主機(jī)服務(wù)器無法訪問,但卻可以Ping的通,在服務(wù)器上用Netstat -na命令會(huì)觀察到存在大量的SYN_RECEIVED狀態(tài),大量的這種攻擊會(huì)導(dǎo)致Ping失敗、TCP/IP棧失效,并會(huì)出現(xiàn)系統(tǒng)凝固現(xiàn)象,即不響應(yīng)鍵盤和鼠標(biāo)。普通防火墻大多無法抵御此種攻擊。
b. TCP全連接攻擊:這種攻擊是為了繞過常規(guī)防火墻的檢查而設(shè)計(jì)的,一般情況下,常規(guī)防火墻大多具備過濾TearDrop、Land等DOS攻擊的能力,但對(duì)于正常的TCP連接是放過的,殊不知很多網(wǎng)絡(luò)服務(wù)程序(如:IIS、Apache等Web服務(wù)器)能接受的TCP連接數(shù)是有限的,一旦有大量的TCP連接,即便是正常的,也會(huì)導(dǎo)致網(wǎng)站訪問非常緩慢甚至無法訪問,TCP全連接攻擊就是通過許多僵尸主機(jī)不斷地與受害服務(wù)器建立大量的TCP連接,直到服務(wù)器因內(nèi)存等資源被耗盡而被拖跨,從而造成拒絕服務(wù),這種攻擊的特點(diǎn)是可繞過一般防火墻的防護(hù)而達(dá)到攻擊目的,缺點(diǎn)是需要找很多僵尸主機(jī),并且由于僵尸主機(jī)的IP是暴露的,因此容易被追蹤。
c. 刷Script腳本攻擊:這種攻擊主要是針對(duì)存在ASP、JSP、PHP、CGI等腳本程序,并調(diào)用MSSQLServer、MySQLServer、Oracle等數(shù)據(jù)庫的網(wǎng)站系統(tǒng)而設(shè)計(jì)的,特征是和服務(wù)器建立正常的TCP連接,并不斷的向腳本程序提交查詢、列表等大量耗費(fèi)數(shù)據(jù)庫資源的調(diào)用,典型的以小博大的攻擊方法。一般來說,提交一個(gè)GET或POST指令對(duì)客戶端的耗費(fèi)和帶寬的占用是幾乎可以忽略的,而服務(wù)器為處理此請(qǐng)求卻可能要從上萬條記錄中去查出某個(gè)記錄,這種處理過程對(duì)資源的耗費(fèi)是很大的,常見的數(shù)據(jù)庫服務(wù)器很少能支持?jǐn)?shù)百個(gè)查詢指令同時(shí)執(zhí)行,而這對(duì)于客戶端來說卻是輕而易舉的,因此攻擊者只需通過Proxy代理向主機(jī)服務(wù)器大量遞交查詢指令,只需數(shù)分鐘就會(huì)把服務(wù)器資源消耗掉而導(dǎo)致拒絕服務(wù),常見的現(xiàn)象就是網(wǎng)站慢如蝸牛、ASP程序失效、PHP連接數(shù)據(jù)庫失敗、數(shù)據(jù)庫主程序占用CPU偏高。這種攻擊的特點(diǎn)是可以完全繞過普通的防火墻防護(hù),輕松找一些Proxy代理就可實(shí)施攻擊,缺點(diǎn)是對(duì)付只有靜態(tài)頁面的網(wǎng)站效果會(huì)大打折扣,并且有些Proxy會(huì)暴露攻擊者的IP地址。