據(jù)調(diào)查,目前我國(guó)境內(nèi)日均有365起總流量超過(guò)1G的較大規(guī)模DDOS攻擊事件。受攻擊方惡意將流量轉(zhuǎn)嫁給無(wú)辜者的情況屢見(jiàn)不鮮,我國(guó)已有多家省級(jí)政府網(wǎng)站遭受過(guò)流量轉(zhuǎn)嫁攻擊。維基解密網(wǎng)站也曾因?yàn)樵馐蹹DOS攻擊而癱瘓,被迫關(guān)閉了10余天。
DDOS是目前企事業(yè)單位遭遇較多的一種網(wǎng)絡(luò)攻擊,DDOS目的很簡(jiǎn)單,就是使計(jì)算機(jī)或網(wǎng)絡(luò)無(wú)法提供正常的服務(wù)。DDOS攻擊最早可追溯到1996年最初,在中國(guó)2002年開(kāi)始頻繁出現(xiàn),2003年已經(jīng)初具規(guī)模。目前的DDOS攻擊主要有7種方式。
DDOS攻擊的七種武器
長(zhǎng)生劍——SYN Flood攻擊 SYN Flood攻擊是當(dāng)前網(wǎng)絡(luò)上最為常見(jiàn)的DDos攻擊,也是最為經(jīng)典的拒絕服務(wù)攻擊,它利用了TCP協(xié)議實(shí)現(xiàn)上的一個(gè)缺陷,通過(guò)向網(wǎng)絡(luò)服務(wù)所在端口發(fā)送大量的偽造源地址的半連接請(qǐng)求,造成目標(biāo)服務(wù)器中的半連接隊(duì)列被占滿,耗費(fèi)CPU和內(nèi)存資源,使服務(wù)器超負(fù)荷,從而阻止其他合法用戶進(jìn)行訪問(wèn)。
這種攻擊早在1996年就被發(fā)現(xiàn),但至今仍然顯示出強(qiáng)大的生命力,可謂“長(zhǎng)生不老”。很多操作系統(tǒng),甚至防火墻、路由器都無(wú)法有效地防御這種攻擊,而且由于它可以方便地偽造源地址,追查起來(lái)非常困難。
多情環(huán)—— TCP全連接攻擊 這種攻擊是為了繞過(guò)常規(guī)防火墻的檢查而設(shè)計(jì)的,一般情況下,常規(guī)防火墻大多具備syn cookies或者syn proxy能力,能夠有效應(yīng)對(duì)偽造的IP攻擊,但對(duì)于正常的TCP連接是放過(guò)的。但殊不知很多網(wǎng)絡(luò)服務(wù)程序能接受的TCP連接數(shù)是有限的,一旦有大量的 TCP連接,即便是正常的,也會(huì)導(dǎo)致網(wǎng)站訪問(wèn)非常緩慢甚至無(wú)法訪問(wèn),正所謂“多情總被無(wú)情傷”。TCP全連接攻擊就是通過(guò)許多僵尸主機(jī)不斷地與受害服務(wù)器建立大量的TCP連接,直到服務(wù)器的內(nèi)存等資源被耗盡而被拖跨,從而造成拒絕服務(wù),這種攻擊的特點(diǎn)是可繞過(guò)一般防火墻的防護(hù)而達(dá)到攻擊目的。
孔雀翎——TCP混亂數(shù)據(jù)包攻擊 TCP混亂數(shù)據(jù)包攻擊與Syn Flood攻擊類(lèi)似,發(fā)送偽造源IP的TCP數(shù)據(jù)包,只不過(guò)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)單。常見(jiàn)的情況是利用大量UDP小包沖擊DNS服務(wù)器或Radius認(rèn)證服務(wù)器、流媒體視頻服務(wù)器。 100k PPS的UDP Flood經(jīng)常將線路上的骨干設(shè)備例如防火墻打癱,造成整個(gè)網(wǎng)段的癱瘓。就好像看似輕盈小巧的碧玉刀,實(shí)則威力不容小覷。由于UDP協(xié)議是一種無(wú)連接的服務(wù),在UDP FLOOD攻擊中,攻擊者可發(fā)送大量偽造源IP地址的小UDP包。但是,由于UDP協(xié)議是無(wú)連接性的,所以只要開(kāi)了一個(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ú)法直接由服務(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)造出每秒鐘幾萬(wàn)個(gè)域名解析請(qǐng)求,足以使一臺(tái)硬件配置極高的DNS服務(wù)器癱瘓,由此可見(jiàn)DNS 服務(wù)器的脆弱性。DNS解析作為DDOS攻擊之根本,就好像拳頭一樣,隨時(shí)隨地可以出手。
離別鉤—— CC攻擊 CC攻擊(Challenge Collapsar)是DDOS攻擊的一種,是利用不斷對(duì)網(wǎng)站發(fā)送連接請(qǐng)求致使形成拒絕服務(wù)的攻擊。相比其它的DDOS攻擊,CC攻擊是應(yīng)用層的,主要針對(duì)網(wǎng)站。CC主要是用來(lái)攻擊頁(yè)面的,CC就是模擬多個(gè)用戶(少線程就是多少用戶)不停地進(jìn)行訪問(wèn)那些需要大量數(shù)據(jù)操作(就是需要大量CPU時(shí)間)的頁(yè)面,造成服務(wù)器資源的浪費(fèi),CPU長(zhǎng)時(shí)間處于100%,永遠(yuǎn)都有處理不完的連接直至就網(wǎng)絡(luò)擁塞,正常的訪問(wèn)被中止。
這種攻擊主要是針對(duì)存在ASP、JSP、PHP、CGI等腳本程序,并調(diào)用MSSQL Server、MySQLServer、Oracle等數(shù)據(jù)庫(kù)的網(wǎng)站系統(tǒng)而設(shè)計(jì)的,特征是和服務(wù)器建立正常的TCP連接,并不斷的向腳本程序提交查詢、列表等大量耗費(fèi)數(shù)據(jù)庫(kù)資源的調(diào)用,典型的以小博大的攻擊方法。這種攻擊的特點(diǎn)是可以完全繞過(guò)普通的防火墻防護(hù),輕松找一些Proxy代理就可實(shí)施攻擊,缺點(diǎn)是對(duì)付只有靜態(tài)頁(yè)面的網(wǎng)站效果會(huì)大打折扣,并且有些Proxy會(huì)暴露攻擊者的IP地址。就好像離別鉤名為離別,實(shí)為相聚一樣,CC攻擊的真實(shí)意圖又有誰(shuí)能理解呢。
霸王槍——針對(duì)游戲服務(wù)器的攻擊 因?yàn)橛螒蚍?wù)器非常多,這里介紹最早也是影響最大的傳奇游戲,傳奇游戲分為登陸注冊(cè)端口7000,人物選擇端口7100,以及游戲運(yùn)行端口7200,7300,7400等,因?yàn)橛螒蜃约旱膮f(xié)議設(shè)計(jì)的非常復(fù)雜,所以攻擊的種類(lèi)也花樣百出,大概有幾十種之多,而且還在不斷的發(fā)現(xiàn)新的攻擊種類(lèi),最普遍是假人攻擊,假人攻擊是通過(guò)肉雞模擬游戲客戶端進(jìn)行自動(dòng)注冊(cè)、登陸、建立人物、進(jìn)入游戲活動(dòng)從數(shù)據(jù)協(xié)議層面模擬正常的游戲玩家,很難從游戲數(shù)據(jù)包來(lái)分析出哪些是攻擊?哪些是正常玩家。針對(duì)游戲服務(wù)器的攻擊十分霸氣,就像霸王槍蛟龍出水,難以抵擋。
抵御DDOS攻擊之六脈神劍
以上DDOS攻擊的七種武器都有各自的特點(diǎn)和殺傷力,但也并非無(wú)法防范。說(shuō)起抵御DDOS攻擊的招數(shù),就不得不提起六脈神劍絕技,以無(wú)形化有形,瓦解著DDOS的一次次攻擊。
少商劍—— Syn Flood防御技術(shù) syn cookie/syn proxy類(lèi)防護(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)品均采用此類(lèi)技術(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é)議的重傳特性,來(lái)自某個(gè)源IP的第一個(gè)syn包到達(dá)時(shí)被直接丟棄并記錄狀態(tài),在該源IP的第2個(gè)syn包到達(dá)時(shí)進(jìn)行驗(yàn)證,然后放行。
Syn Flood防御技術(shù)就好像少商劍一樣,異常剛猛,頗有石破天驚,風(fēng)雨大至之勢(shì),是御敵最常用到的招式。
商陽(yáng)劍—— UDP Flood防御技術(shù) UDP協(xié)議與TCP 協(xié)議不同,是無(wú)連接狀態(tài)的協(xié)議,并且UDP應(yīng)用協(xié)議五花八門(mén),差異極大,因此針對(duì)UDP Flood的防護(hù)非常困難。一般最簡(jiǎn)單的方法就是不對(duì)外開(kāi)放UDP服務(wù)。
如果必須開(kāi)放UDP服務(wù),則可以根據(jù)該服務(wù)業(yè)務(wù)UDP最大包長(zhǎng)設(shè)置UDP最大包大小以過(guò)濾異常流量。還有一種辦法就是建立UDP連接規(guī)則,要求所有去往該端口的UDP包,必須首先與TCP端口建立TCP連接,然后才能使用UDP通訊。
難以駕馭是UDP Flood防御技術(shù)的特點(diǎn),同樣也是商陽(yáng)劍的特點(diǎn),雖難以捉摸,不過(guò)一旦純熟,效果極佳。
少澤劍—— 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ù)。好似少澤劍忽來(lái)忽去,變化精微一般,DNS Flood防御技術(shù)也在變化中不斷調(diào)整,以求防御的最佳效果。
少?zèng)_劍—— CC防御技術(shù) 對(duì)是否HTTP Get的判斷,要統(tǒng)計(jì)到達(dá)每個(gè)服務(wù)器的每秒鐘的GET請(qǐng)求數(shù),如果遠(yuǎn)遠(yuǎn)超過(guò)正常值,就要對(duì)HTTP協(xié)議解碼,找出HTTP Get及其參數(shù)(例如URL等)。然后判斷某個(gè)GET 請(qǐng)求是來(lái)自代理服務(wù)器還是惡意請(qǐng)求,并回應(yīng)一個(gè)帶Key的響應(yīng)要求,請(qǐng)求發(fā)起端作出相應(yīng)的回饋。如果發(fā)起端不響應(yīng)則說(shuō)明是利用工具發(fā)起的請(qǐng)求,這樣HTTP Get請(qǐng)求就無(wú)法到達(dá)服務(wù)器,達(dá)到防護(hù)的效果。頗有少?zèng)_劍輕靈迅速,以巧取勝之意。
關(guān)沖劍——限制連接數(shù) 目前市場(chǎng)上的安全產(chǎn)品,包括防火墻、入侵防御、DDOS防御等產(chǎn)品主要采用限制服務(wù)器主機(jī)連接數(shù)手段防御DDOS攻擊,如關(guān)沖劍一般,看似拙滯古樸,實(shí)則為招數(shù)之基本。使用安全產(chǎn)品限制受保護(hù)主機(jī)的連接數(shù),即每秒訪問(wèn)數(shù)量,可以確保受保護(hù)主機(jī)在網(wǎng)絡(luò)層處理上不超過(guò)負(fù)荷(不含CC攻擊),雖然用戶訪問(wèn)時(shí)斷時(shí)續(xù),但可以保證受保護(hù)主機(jī)始終有能力處理數(shù)據(jù)報(bào)文。而使用安全產(chǎn)品限制客戶端發(fā)起的連接數(shù),可以有效降低傀儡機(jī)的攻擊效果,即發(fā)起同樣規(guī)模的攻擊則需要更多的傀儡機(jī)。
中沖劍——攻擊防御溯本追源技術(shù) 針對(duì)CC攻擊防御的溯本追源技術(shù)是通過(guò)對(duì)服務(wù)器訪問(wèn)流量的實(shí)時(shí)監(jiān)測(cè),可以發(fā)現(xiàn)其在一定范圍內(nèi)波動(dòng),此時(shí)設(shè)置服務(wù)器低壓閥值,當(dāng)服務(wù)器訪問(wèn)流量高于低壓閥值時(shí)開(kāi)始記錄并跟蹤訪問(wèn)源。此外還要設(shè)置一個(gè)服務(wù)器高壓閥值,此高壓閥值代表服務(wù)器能夠承受的最大負(fù)荷,當(dāng)監(jiān)測(cè)到服務(wù)器訪問(wèn)流量達(dá)到或超過(guò)高壓閥值時(shí),說(shuō)明有DOS或者DDOS攻擊事件發(fā)生,需要實(shí)時(shí)阻斷攻擊流量,此時(shí)系統(tǒng)將逐一查找受攻擊服務(wù)器的攻擊源列表,檢查每個(gè)攻擊源的訪問(wèn)流量,將突發(fā)大流量的源IP地址判斷為正在進(jìn)行DOS攻擊的攻擊源,將這些攻擊源流量及其連接進(jìn)行實(shí)時(shí)阻斷。中沖劍大開(kāi)大闔,氣勢(shì)雄邁, 溯本追源技術(shù)也是在承受攻擊之中,尋找著破綻,一招御敵,氣勢(shì)十足。
七種武器各自為戰(zhàn),六脈神劍集于一身,當(dāng)七種武器遇到六脈神劍,孰勝孰敗已見(jiàn)分曉。