DDOS是目前企事業(yè)單位遭遇較多的一種網(wǎng)絡(luò)攻擊,DDOS目的很簡(jiǎn)單,就是使計(jì)算機(jī)或網(wǎng)絡(luò)無法提供正常的服務(wù)。DDOS攻擊*早可追溯到1996年*初,目前的DDOS攻擊主要有六種方式。
DDOS攻擊的六種方式
SYN Flood攻擊
SYN Flood攻擊是當(dāng)前網(wǎng)絡(luò)上*為常見的DDos攻擊,也是*為經(jīng)典的拒絕服務(wù)攻擊,它利用了TCP協(xié)議實(shí)現(xiàn)上的一個(gè)缺陷,通過向網(wǎng)絡(luò)服務(wù)所在端口發(fā)送大量的偽造源地址的半連接請(qǐng)求,造成目標(biāo)服務(wù)器中的半連接隊(duì)列被占滿,耗費(fèi)CPU和內(nèi)存資源,使服務(wù)器超負(fù)荷,從而阻止其他合法用戶進(jìn)行訪問。這種攻擊早在1996年就被發(fā)現(xiàn),但至今仍然顯示出強(qiáng)大的生命力,可謂"長(zhǎng)生不老"。很多操作系統(tǒng),甚至防火墻、路由器都無法有效地防御這種攻擊,而且由于它可以方便地偽造源地址,追查起來非常困難。
TCP全連接攻擊
這種攻擊是為了繞過常規(guī)防火墻的檢查而設(shè)計(jì)的,一般情況下,常規(guī)防火墻大多具備syn cookies或者syn proxy能力,能夠有效應(yīng)對(duì)偽造的IP攻擊,但對(duì)于正常的TCP連接是放過的。但殊不知很多網(wǎng)絡(luò)服務(wù)程序能接受的TCP連接數(shù)是有限的,一旦有大量的 TCP連接,即便是正常的,也會(huì)導(dǎo)致網(wǎng)站訪問非常緩慢甚至無法訪問,正所謂"多情總被無情傷"。TCP全連接攻擊就是通過許多僵尸主機(jī)不斷地與受害服務(wù)器建立大量的TCP連接,直到服務(wù)器的內(nèi)存等資源被耗盡而被拖跨,從而造成拒絕服務(wù),這種攻擊的特點(diǎn)是可繞過一般防火墻的防護(hù)而達(dá)到攻擊目的。
TCP混亂數(shù)據(jù)包攻擊
TCP混亂數(shù)據(jù)包攻擊與Syn Flood攻擊類似,發(fā)送偽造源IP的TCP數(shù)據(jù)包,只不過TCP頭的TCP Flags 部分是混亂的,可能是syn,ack,syn+ack,syn+rst等等,會(huì)造成一些防護(hù)設(shè)備處理錯(cuò)誤鎖死,消耗服務(wù)器CPU內(nèi)存的同時(shí)還會(huì)堵塞帶寬,在迷惑對(duì)手的時(shí)候施展*后的致命一擊。
UDP Flood攻擊
UDP Flood是日漸猖獗的流量型DOS攻擊,原理也很簡(jiǎn)單。常見的情況是利用大量UDP小包沖擊DNS服務(wù)器或Radius認(rèn)證服務(wù)器、流媒體視頻服務(wù)器。 100k PPS的UDP Flood經(jīng)常將線路上的骨干設(shè)備例如防火墻打癱,造成整個(gè)網(wǎng)段的癱瘓。由于UDP協(xié)議是一種無連接的服務(wù),在UDP FLOOD攻擊中,攻擊者可發(fā)送大量偽造源IP地址的小UDP包。但是,由于UDP協(xié)議是無連接性的,所以只要開了一個(gè)UDP的端口提供相關(guān)服務(wù)的話,那么就可針對(duì)相關(guān)的服務(wù)進(jìn)行攻擊。域名搶注
DNS Flood攻擊
UDP DNS Query Flood攻擊實(shí)質(zhì)上是UDP Flood的一種,但是由于DNS服務(wù)器的不可替代的關(guān)鍵作用,一旦服務(wù)器癱瘓,影響一般都很大。UDP DNS Query Flood攻擊采用的方法是向被攻擊的服務(wù)器發(fā)送大量的域名解析請(qǐng)求,通常請(qǐng)求解析的域名是隨機(jī)生成或者是網(wǎng)絡(luò)世界上根本不存在的域名,被攻擊的DNS 服務(wù)器在接收到域名解析請(qǐng)求的時(shí)候首先會(huì)在服務(wù)器上查找是否有對(duì)應(yīng)的緩存,如果查找不到并且該域名無法直接由服務(wù)器解析的時(shí)候,DNS 服務(wù)器會(huì)向其上層DNS服務(wù)器遞歸查詢域名信息。根據(jù)微軟的統(tǒng)計(jì)數(shù)據(jù),一臺(tái)DNS服務(wù)器所能承受的動(dòng)態(tài)域名查詢的上限是每秒鐘9000個(gè)請(qǐng)求。而我們知道,在一臺(tái)PC機(jī)上可以輕易地構(gòu)造出每秒鐘幾萬個(gè)域名解析請(qǐng)求,足以使一臺(tái)硬件配置極高的DNS服務(wù)器癱瘓,由此可見DNS 服務(wù)器的脆弱性。
CC攻擊
CC攻擊(Challenge Collapsar)是DDOS攻擊的一種,是利用不斷對(duì)網(wǎng)站發(fā)送連接請(qǐng)求致使形成拒絕服務(wù)的攻擊。相比其它的DDOS攻擊,CC攻擊是應(yīng)用層的,主要針對(duì)網(wǎng)站。CC主要是用來攻擊頁面的,CC就是模擬多個(gè)用戶(少線程就是多少用戶)不停地進(jìn)行訪問那些需要大量數(shù)據(jù)操作(就是需要大量CPU時(shí)間)的頁面,造成服務(wù)器資源的浪費(fèi),CPU長(zhǎng)時(shí)間處于100%,永遠(yuǎn)都有處理不完的連接直至就網(wǎng)絡(luò)擁塞,正常的訪問被中止。
這種攻擊主要是針對(duì)存在ASP、JSP、PHP、CGI等腳本程序,并調(diào)用MSSQL Server、MySQLServer、Oracle等數(shù)據(jù)庫的網(wǎng)站系統(tǒng)而設(shè)計(jì)的,特征是和服務(wù)器建立正常的TCP連接,并不斷的向腳本程序提交查詢、列表等大量耗費(fèi)數(shù)據(jù)庫資源的調(diào)用,典型的以小博大的攻擊方法。這種攻擊的特點(diǎn)是可以完全繞過普通的防火墻防護(hù),輕松找一些Proxy代理就可實(shí)施攻擊,缺點(diǎn)是對(duì)付只有靜態(tài)頁面的網(wǎng)站效果會(huì)大打折扣,并且有些Proxy會(huì)暴露攻擊者的IP地址。
抵御DDOS攻擊的六類方法
以上DDOS攻擊的六種方式都有各自的特點(diǎn)和殺傷力,但也并非無法防范,合理使用DDoS防御技術(shù),可減輕或緩解攻擊危害。
Syn Flood防御技術(shù)
syn cookie/syn proxy類防護(hù)技術(shù):這種技術(shù)對(duì)所有的syn包均主動(dòng)回應(yīng),探測(cè)發(fā)起syn包的源IP地址是否真實(shí)存在,如果該IP地址真實(shí)存在,則該IP會(huì)回應(yīng)防護(hù)設(shè)備的探測(cè)包,從而建立TCP連接。大多數(shù)的國(guó)內(nèi)外抗DDOS產(chǎn)品均采用此類技術(shù)。
Safereset技術(shù):此技術(shù)對(duì)所有的syn包均主動(dòng)回應(yīng),探測(cè)包特意構(gòu)造錯(cuò)誤的字段,真實(shí)存在的IP地址會(huì)發(fā)送rst包給防護(hù)設(shè)備,然后發(fā)起第2次連接,從而建立TCP連接。部分國(guó)外產(chǎn)品采用了這樣的防護(hù)算法。
syn重傳技術(shù):該技術(shù)利用了TCP/IP協(xié)議的重傳特性,來自某個(gè)源IP的*個(gè)syn包到達(dá)時(shí)被直接丟棄并記錄狀態(tài),在該源IP的第2個(gè)syn包到達(dá)時(shí)進(jìn)行驗(yàn)證,然后放行。域名搶注
UDP Flood防御技術(shù)
UDP協(xié)議與TCP 協(xié)議不同,是無連接狀態(tài)的協(xié)議,并且UDP應(yīng)用協(xié)議五花八門,差異極大,因此針對(duì)UDP Flood的防護(hù)非常困難。一般*簡(jiǎn)單的方法就是不對(duì)外開放UDP服務(wù)。
如果必須開放UDP服務(wù),則可以根據(jù)該服務(wù)業(yè)務(wù)UDP*包長(zhǎng)設(shè)置UDP*包大小以過濾異常流量。還有一種辦法就是建立UDP連接規(guī)則,要求所有去往該端口的UDP包,必須首先與TCP端口建立TCP連接,然后才能使用UDP通訊。
難以駕馭是UDP Flood防御技術(shù)的特點(diǎn),雖難以捉摸,不過一旦純熟,效果極佳。
DNS Flood防御技術(shù)
在UDP Flood的基礎(chǔ)上對(duì) UDP DNS Query Flood 攻擊進(jìn)行防護(hù),根據(jù)域名 IP 自學(xué)習(xí)結(jié)果主動(dòng)回應(yīng),減輕服務(wù)器負(fù)載(使用 DNS Cache)。
對(duì)突然發(fā)起大量頻度較低的域名解析請(qǐng)求的源 IP 地址進(jìn)行帶寬限制,在攻擊發(fā)生時(shí)降低很少發(fā)起域名解析請(qǐng)求的源IP地址的優(yōu)先級(jí),限制每個(gè)源 IP 地址每秒的域名解析請(qǐng)求次數(shù)。DNS Flood防御技術(shù)可在變化中不斷調(diào)整,以求防御的*效果。
CC防御技術(shù)
對(duì)是否HTTP Get的判斷,要統(tǒng)計(jì)到達(dá)每個(gè)服務(wù)器的每秒鐘的GET請(qǐng)求數(shù),如果遠(yuǎn)遠(yuǎn)超過正常值,就要對(duì)HTTP協(xié)議解碼,找出HTTP Get及其參數(shù)(例如URL等)。然后判斷某個(gè)GET 請(qǐng)求是來自代理服務(wù)器還是惡意請(qǐng)求,并回應(yīng)一個(gè)帶Key的響應(yīng)要求,請(qǐng)求發(fā)起端作出相應(yīng)的回饋。如果發(fā)起端不響應(yīng)則說明是利用工具發(fā)起的請(qǐng)求,這樣HTTP Get請(qǐng)求就無法到達(dá)服務(wù)器,達(dá)到防護(hù)的效果。
限制連接數(shù)
目前市場(chǎng)上的安全產(chǎn)品,包括防火墻、入侵防御、DDOS防御等產(chǎn)品主要采用限制服務(wù)器主機(jī)連接數(shù)手段防御DDOS攻擊,為招數(shù)之基本。使用安全產(chǎn)品限制受保護(hù)主機(jī)的連接數(shù),即每秒訪問數(shù)量,可以確保受保護(hù)主機(jī)在網(wǎng)絡(luò)層處理上不超過負(fù)荷(不含CC攻擊),雖然用戶訪問時(shí)斷時(shí)續(xù),但可以保證受保護(hù)主機(jī)始終有能力處理數(shù)據(jù)報(bào)文。而使用安全產(chǎn)品限制客戶端發(fā)起的連接數(shù),可以有效降低傀儡機(jī)的攻擊效果,即發(fā)起同樣規(guī)模的攻擊則需要更多的傀儡機(jī)。
攻擊防御溯本追源技術(shù)
針對(duì)CC攻擊防御的溯本追源技術(shù)是通過對(duì)服務(wù)器訪問流量的實(shí)時(shí)監(jiān)測(cè),可以發(fā)現(xiàn)其在一定范圍內(nèi)波動(dòng),此時(shí)設(shè)置服務(wù)器低壓閥值,當(dāng)服務(wù)器訪問流量高于低壓閥值時(shí)開始記錄并跟蹤訪問源。此外還要設(shè)置一個(gè)服務(wù)器高壓閥值,此高壓閥值代表服務(wù)器能夠承受的*負(fù)荷,當(dāng)監(jiān)測(cè)到服務(wù)器訪問流量達(dá)到或超過高壓閥值時(shí),說明有DOS或者DDOS攻擊事件發(fā)生,需要實(shí)時(shí)阻斷攻擊流量,此時(shí)系統(tǒng)將逐一查找受攻擊服務(wù)器的攻擊源列表,檢查每個(gè)攻擊源的訪問流量,將突發(fā)大流量的源IP地址判斷為正在進(jìn)行DOS攻擊的攻擊源,將這些攻擊源流量及其連接進(jìn)行實(shí)時(shí)阻斷。