李江, 張峰, 付俊, 楊光華
(中國移動通信研究院,北京 100053)
一種基于資源感知的小流量DDoS攻擊防御方法
李江, 張峰, 付俊, 楊光華
(中國移動通信研究院,北京 100053)
分布式拒絕服務(wù)攻擊(DDoS)對網(wǎng)絡(luò)具有極大的破壞性,嚴(yán)重影響現(xiàn)網(wǎng)的正常運(yùn)營。雖然現(xiàn)網(wǎng)已經(jīng)部署針對DDoS的流量清洗系統(tǒng),然而小流量的攻擊較洪水型攻擊更難以被感知,進(jìn)而不能得到有效的清洗。本文分析了網(wǎng)絡(luò)中小流量DDoS攻擊的原理和防御現(xiàn)狀,并提出一種基于資源感知的小流量DDoS攻擊防御方法。
分布式拒絕服務(wù)攻擊;小流量;資源感知
2013年8月25日凌晨時(shí)許,國家域名解析節(jié)點(diǎn)受到有史以來最大規(guī)模的DDoS攻擊,.cn域名解析受到影響,導(dǎo)致大量網(wǎng)站的訪問中斷,對網(wǎng)絡(luò)造成了很大影響。類似的DDoS攻擊幾乎每天都在網(wǎng)絡(luò)中上演,其中針對HTTP的攻擊尤為嚴(yán)重,其攻擊形式多樣,攻擊技巧在不斷提高,不僅嚴(yán)重影響用戶對互聯(lián)網(wǎng)的訪問,而且會干擾網(wǎng)絡(luò)的正常運(yùn)營。
傳統(tǒng)的DDoS攻擊往往通過向目標(biāo)主機(jī)發(fā)送大量的數(shù)據(jù)來達(dá)到攻擊的目的,而小流量DDoS攻擊只需通過較少的數(shù)據(jù)分組就能實(shí)現(xiàn)同樣效果。小流量的DDoS攻擊是針對洪水型大流量DDoS攻擊而言的,其特點(diǎn)包括攻擊通常利用上層協(xié)議;攻擊發(fā)生時(shí)網(wǎng)絡(luò)中的流量不一定會有十分明顯的增加。
本文針對小流量DDoS攻擊進(jìn)行了深入分析,對現(xiàn)有DDoS清洗系統(tǒng)在感知小流量DDoS攻擊方面的不足之處展開了討論,并提出了解決方案。
利用小流量沖擊大帶寬網(wǎng)絡(luò)服務(wù)的攻擊方式目前已經(jīng)十分猖獗,這類攻擊成本不高但效果明顯。本小節(jié)以兩種小流量DDoS攻擊為例,詳細(xì)介紹其攻擊方式及原理。
HTTP Get攻擊:這種攻擊主要針對基于ASP、JSP、PHP等腳本程序編寫并使用數(shù)據(jù)庫的網(wǎng)站系統(tǒng)。其特征在于和服務(wù)器建立正常的TCP連接,然而卻不斷地向服務(wù)器提交查詢、列表等大量耗費(fèi)數(shù)據(jù)庫資源的調(diào)用,是一種典型的以小博大的攻擊方法,如圖1所示。
并非所有HTTP Get攻擊都是小流量攻擊。為了通過較小流量達(dá)到攻擊效果,攻擊者通常會精心構(gòu)造一些請求,盡量多地消耗網(wǎng)站系統(tǒng)后臺數(shù)據(jù)庫的資源。一般來說,提交一個(gè)Get請求對網(wǎng)絡(luò)流量的影響幾乎是可以忽略的,然而服務(wù)器為處理此請求卻要做大量的數(shù)據(jù)庫操作,若在短時(shí)間內(nèi)該類請求過多,超出服務(wù)器承載范圍時(shí),便達(dá)到攻擊者所期望的效果——正常用戶無法連接網(wǎng)站、連接數(shù)據(jù)庫失敗、數(shù)據(jù)庫主程序CPU占用率偏高等。
圖1 HTTP Get攻擊示意圖
Slowloris攻擊及其變種:slowloris攻擊不僅是一種小流量的攻擊,更是一種慢速攻擊,它充分利用了HTTP協(xié)議的特點(diǎn)。HTTP協(xié)議規(guī)定,HTTP 請求以 結(jié)尾表示客戶端發(fā)送結(jié)束,服務(wù)端開始處理。那么,如果客戶端故意不發(fā)送 ,服務(wù)端將始終保持連接,直到超時(shí)。在進(jìn)行攻擊時(shí),攻擊者首先發(fā)送一個(gè)HTTP請求頭到服務(wù)器端,隨后緩慢地每隔幾秒或幾分鐘發(fā)送一次少量數(shù)據(jù)到服務(wù)端,從而導(dǎo)致服務(wù)端認(rèn)為HTTP頭部沒有接收完成而一直等待,進(jìn)而消耗服務(wù)器的CPU、內(nèi)存資源以及連接池。
圖2為在模擬一次slowloris攻擊時(shí),使用wireshark抓取的數(shù)據(jù)分組情況,攻擊者IP為*.*.46.163,被攻擊服務(wù)器安裝有Apache,IP為*.*.46.242。圖2中被標(biāo)記的分組都為沒有 結(jié)尾標(biāo)志的HTTP攻擊分組,攻擊者通過命令每隔10s(分組發(fā)送時(shí)間間隔可配置)向服務(wù)器發(fā)送一個(gè)數(shù)據(jù)分組。由于wireshark不能正確識別這些沒有結(jié)尾標(biāo)志的數(shù)據(jù)分組,因此將它們解析為“TCP segment of a reassembled PDU”,本質(zhì)上它們都是一個(gè)HTTP請求的一部分。
跟蹤圖2的攻擊,可以得到圖3所示的攻擊流,它顯示了攻擊者在和服務(wù)器的一個(gè)連接中發(fā)送的所有數(shù)據(jù)。圖中方框?yàn)閳D2的226號分組,方框后第一行為3661號分組,以此類推。
目前對DDoS防范采取的主要辦法是在被保護(hù)的網(wǎng)絡(luò)出口處部署DDoS攻擊監(jiān)測清洗系統(tǒng),用以監(jiān)測網(wǎng)絡(luò)中的流量和應(yīng)用層連接,通過設(shè)置流量與連接閾值,對超過閾值的流量和連接,進(jìn)行清洗。邏輯上,DDoS攻擊監(jiān)測清洗系統(tǒng)包括異常流量監(jiān)測模塊、流量牽引與清洗模塊、管理模塊等。異常流量監(jiān)測模塊通常利用流量分析機(jī)制,根據(jù)采樣比采集網(wǎng)絡(luò)流量信息,對網(wǎng)絡(luò)流的種類、流量、流向、地址、端口等進(jìn)行統(tǒng)計(jì),當(dāng)發(fā)現(xiàn)流量或連接異常時(shí),即時(shí)告警并觸發(fā)流量牽引;流量牽引則將去往被保護(hù)網(wǎng)絡(luò)的流量指向清洗模塊,清洗模塊根據(jù)內(nèi)置的算法識別攻擊,攔截過濾攻擊流量,之后回注正常流量,從而達(dá)到流量清洗的效果;管理模塊對整個(gè)系統(tǒng)進(jìn)行統(tǒng)一管理。
圖2 一次slowloris攻擊分組抓取
圖3 一條slowloris攻擊流
針對小流量DDos攻擊現(xiàn)有的DDoS攻擊檢測清洗系統(tǒng)并不能很好地識別出來。雖然現(xiàn)有的清洗系統(tǒng)有一整套對此類攻擊設(shè)置防護(hù)閾值、清洗閾值的辦法以及相應(yīng)的清洗算法,但是其卻無法發(fā)揮清洗系統(tǒng)的最佳防護(hù)能力。原因具體有以下兩點(diǎn)。
(1) 針對HTTP Get攻擊,現(xiàn)有清洗系統(tǒng)主要提供兩種防護(hù)辦法。第一種是監(jiān)控到目的IP的 http get/post請求QPS,設(shè)置告警和清洗閾值;第二種是監(jiān)控能夠引起大量數(shù)據(jù)庫操作的URI,對其單獨(dú)設(shè)置清洗閾值。然而這兩種防護(hù)辦法的配置復(fù)雜度高,特別是URI監(jiān)控,需要大量的人工分析才能得出哪些URI會引起大量數(shù)據(jù)庫操作,過于繁瑣。
(2) 針對slowloris攻擊及其變種,雖然可以通過監(jiān)控并限制單個(gè)源IP地址每秒鐘的連接數(shù)來達(dá)到防護(hù)目的,但現(xiàn)網(wǎng)環(huán)境較為復(fù)雜,同時(shí)由于NAT技術(shù)廣泛使用,從而并不能達(dá)到很好的感知攻擊和清洗攻擊的效果。
目前小流量的DDoS攻擊越來越多地被使用,而現(xiàn)有DDoS清洗設(shè)備需要經(jīng)過十分復(fù)雜的配置才能發(fā)揮較好的防御效果。在成熟的網(wǎng)絡(luò)環(huán)境里面,如何有效地感知DDoS攻擊,僅靠檢測流量鏡像、分析連接行為是不夠的,還需要集合其它因素做綜合判斷。
針對上述原因,本文提出了一種基于資源感知的小流量DDoS攻擊防御方法。方法基于小流量DDoS攻擊的事實(shí):發(fā)生攻擊時(shí)目標(biāo)網(wǎng)絡(luò)不一定能監(jiān)測到明顯的異常流量或者大量的異常連接,但是目標(biāo)網(wǎng)絡(luò)中遭到攻擊的設(shè)備本身其資源使用情況會出現(xiàn)異常,如CPU、內(nèi)存使用率、服務(wù)器并發(fā)數(shù)量、數(shù)據(jù)庫查詢頻率等。如果有網(wǎng)管系統(tǒng),則可更快更直觀的發(fā)現(xiàn)這些異常。本方案提出了一種設(shè)置資源監(jiān)測模塊的思路,以實(shí)時(shí)收集被保護(hù)網(wǎng)絡(luò)中設(shè)備的資源狀態(tài),從而及時(shí)地發(fā)現(xiàn)攻擊行為。其工作模型如圖4所示。
圖4 基于資源感知小流量DDoS攻擊的模型
從圖4可以看出,工作模型不需要建立一套全新的監(jiān)測DDoS攻擊的系統(tǒng),而是建立在現(xiàn)有DDoS攻擊監(jiān)測清洗系統(tǒng)的基礎(chǔ)之上。原有系統(tǒng)能夠通過流量或連接的閾值感知DDoS攻擊,本工作模型在此基礎(chǔ)上增加了利用服務(wù)器資源使用情況感知DDoS攻擊的模塊。資源監(jiān)測模塊定期利用SNMP協(xié)議或其它網(wǎng)管協(xié)議從被保護(hù)網(wǎng)絡(luò)的服務(wù)器中獲取各項(xiàng)資源的使用情況,包括但不限于設(shè)備的CPU使用率、內(nèi)存使用率、數(shù)據(jù)庫查詢頻率等。當(dāng)資源使用情況出現(xiàn)異常,資源監(jiān)測模塊立即向DDoS攻擊檢測清洗系統(tǒng)發(fā)送告警信息,包括系統(tǒng)資源使用異常的服務(wù)器IP地址及其它相關(guān)信息。隨后,清洗系統(tǒng)即啟動清洗流程,用設(shè)置好的算法進(jìn)行清洗。
這個(gè)模型具有以下優(yōu)點(diǎn)。
(1) 對小流量DDoS攻擊更為敏感。
(2) 僅在現(xiàn)有清洗系統(tǒng)上增加了一個(gè)模塊,且實(shí)現(xiàn)方式較為容易。
(3) 彌補(bǔ)了現(xiàn)有清洗系統(tǒng)在監(jiān)測小流量DDoS攻擊方面的不足,提供了流量監(jiān)測之外的一種更為有效的攻擊發(fā)現(xiàn)辦法。
針對小流量DDoS攻擊的攻擊特點(diǎn)及較難被現(xiàn)有DDoS防御系統(tǒng)監(jiān)測到的現(xiàn)狀,本文首先分析了小流量DDoS攻擊的行為及手段進(jìn)而總結(jié)出小流量DDoS攻擊較難監(jiān)測的原因,最后針對這些原因提出了基于資源感知小流量DDoS攻擊的防御方案,從而達(dá)到了在復(fù)雜網(wǎng)絡(luò)環(huán)境下,綜合判斷DDoS攻擊行為發(fā)生的目的。
[1] Yang-seo Choi, Ik-Kyun Kim, Jin-Tae Oh, Jong-Soo Jang. AIGG Threshold Based HTTP GET Flooding Attack Detection. WISA 2012.
[2] slowhttptest project. https://code.google.com/p/slowhttptest/
[3] 張永錚, 肖軍, 云曉春, 王風(fēng)宇. DDoS攻擊檢測和控制方法[J].軟件學(xué)報(bào), 2012, 23(8).
[4] 王景中, 張春飛. 基于異常流量的網(wǎng)絡(luò)行為分析系統(tǒng)設(shè)計(jì)[J].網(wǎng)絡(luò)安全技術(shù)與應(yīng)用, 2012,(11).
[5] 張毅, 劉強(qiáng). 基于流量行為的DDoS檢測系統(tǒng)[J]. 計(jì)算機(jī)工程, 2011,37(4).
[6] 肖軍, 云曉春, 張永錚. 基于會話異常度模型的應(yīng)用層分布式拒絕服務(wù)攻擊過濾[J]. 計(jì)算機(jī)學(xué)報(bào), 2010,33(9).
Defense mechanism against low-rate DDoS based on resource availability
LI Jiang, ZHANG Feng, FU Jun, YANG Guang-hua
(China Mobile Research Institute, Beijing 100053, China)
Distributed denial of service seriously damaged the network, has extremely negative effect on network operation and maintenance. Although anti-DDoS systems have been deployed at present, some relatively low-rate DDoS attacks are still diff i cult to detect and therefore, this kind of DDoS stream can not be effectively cleaned. The current situation of DDoS attack and defense mechanism has been analyzed, furthermore, a defense mechanism against low-rate DDoS based on resource availability has been proposed in this paper.
distributed denial of service; low-rate stream; resource availability
TN929.5
A
1008-5599(2013)12-0066-04
2013-10-08