鄧詩(shī)琪 武旭東 牛小龍 李小衛(wèi) 雷敏
摘 要:Slow HTTP POST攻擊屬于應(yīng)用層慢速HTTP拒絕服務(wù)攻擊。在Slow HTTP POST攻擊中,攻擊者使用正常的POST請(qǐng)求進(jìn)行數(shù)據(jù)的傳輸,但是其報(bào)文首部中的Content-Length參數(shù)值被設(shè)置為很大的值。然而,為了長(zhǎng)時(shí)間占用建立起的請(qǐng)求連接,攻擊者在請(qǐng)求首部得到確認(rèn)之后開始進(jìn)行的傳輸主體中,設(shè)置了極小的數(shù)據(jù)傳輸大小,導(dǎo)致Web服務(wù)器認(rèn)為請(qǐng)求數(shù)據(jù)沒(méi)有傳輸完畢,將長(zhǎng)時(shí)間保留該請(qǐng)求連接,當(dāng)服務(wù)器的連接資源池被類似的攻擊請(qǐng)求占滿,就會(huì)造成拒絕服務(wù)。文章根據(jù)正常HTTP POST請(qǐng)求發(fā)生后,數(shù)據(jù)以“盡力傳輸”的模式進(jìn)行傳輸?shù)奶匦耘cSlow HTTP POST攻擊下數(shù)據(jù)傳輸?shù)奶匦缘膮^(qū)別,提出基于數(shù)據(jù)包大小檢查的Slow HTTP POST攻擊檢測(cè)方法,并對(duì)檢測(cè)方法進(jìn)行了仿真實(shí)驗(yàn)加以驗(yàn)證。
關(guān)鍵詞:數(shù)據(jù)包檢查;Slow HTTP POST攻擊;檢測(cè)方法
中圖分類號(hào):TP393.083 文獻(xiàn)標(biāo)識(shí)碼:A
Detection method for Slow HTTP POST attack based on packet size check
Abstract: Slow HTTP POST Attack is a type of slow-rate HTTP denial of service attack on application layer. An attacker uses normal POST request to make data transmission, but sets a large value for Content-Length parameter in header. However, for the purpose of keeping a long-time connection, the attacker makes a small data-transmission value in transmission body after the header is acknowledged and the Web server will still hold the connection and wait for other data to be transmitted. When connection resource pool of the Web server has been completely filled, the Web Server begins to deny service. This paper proposes a detection method for slow HTTP POST attack based on packet size check according to differences between normal data transmission schedule called “Best-Effort” and attack data transmission, and makes simulation test to verify the detection method.
Key words: packet size check; slow HTTP POST attack; detection method
1 引言
Slow HTTP POST攻擊是一種新型的應(yīng)用層慢速HTTP拒絕服務(wù)攻擊的一種子類型攻擊,其主要利用了HTTP協(xié)議持久連接以及HTTP POST請(qǐng)求需等待客戶端傳送完畢數(shù)據(jù)的特性,在向服務(wù)器發(fā)送HTTP POST請(qǐng)求報(bào)文時(shí),在首部中設(shè)置了極大的內(nèi)容長(zhǎng)度值(Content-Length)。然而之后客戶端在進(jìn)行實(shí)際的數(shù)據(jù)傳輸時(shí),卻在傳輸主體中設(shè)置了極小的數(shù)據(jù)傳輸大小,并緩慢地發(fā)送至服務(wù)器,導(dǎo)致Web服務(wù)器認(rèn)為請(qǐng)求數(shù)據(jù)沒(méi)有傳輸完畢,繼續(xù)保持當(dāng)前請(qǐng)求連接[1,2]。在攻擊端向Web服務(wù)器發(fā)送多個(gè)這樣的攻擊請(qǐng)求后,Web服務(wù)器的連接資源池將會(huì)被占滿,造成服務(wù)器拒絕服務(wù)。
Slow HTTP POST攻擊僅使用少量攻擊流量,現(xiàn)有失衡比例流量檢測(cè)法難以對(duì)其進(jìn)行探測(cè);在傳入的數(shù)據(jù)包分組上做簽名的方法只適用于攻擊請(qǐng)求中的數(shù)據(jù)包分組與正常合法請(qǐng)求中的數(shù)據(jù)包分組有區(qū)別的情況,不適用于發(fā)送與合法請(qǐng)求數(shù)據(jù)分組結(jié)構(gòu)一致的攻擊請(qǐng)求的Slow HTTP POST攻擊;用最大熵估計(jì)法檢測(cè)網(wǎng)絡(luò)流量異常誤報(bào)率高。
本文首先介紹了Slow HTTP POST攻擊的攻擊原理,分析了其攻擊成功的根本原因,并通過(guò)仿真實(shí)驗(yàn)對(duì)攻擊進(jìn)行復(fù)現(xiàn),然后根據(jù)攻擊特征提出基于數(shù)據(jù)包大小檢查的檢測(cè)方法,最后通過(guò)仿真實(shí)驗(yàn)對(duì)檢測(cè)方法進(jìn)行了驗(yàn)證。
2 攻擊原理
2.1 盡力傳輸
當(dāng)用戶在電腦上使用萬(wàn)維網(wǎng)瀏覽器通過(guò)網(wǎng)絡(luò)向服務(wù)器發(fā)送HTTP POST請(qǐng)求時(shí),為了實(shí)現(xiàn)最大程度地有效傳輸數(shù)據(jù)以及最優(yōu)化萬(wàn)維網(wǎng)瀏覽器性能,具有以盡力傳輸(Best Effort)運(yùn)行的特征[3],如圖1所示。
就Internet Explorer的HTTP POST請(qǐng)求來(lái)看,在瀏覽器向Web服務(wù)器發(fā)送了HTTP POST請(qǐng)求首部后,從第二個(gè)數(shù)據(jù)包開始,瀏覽器將向Web服務(wù)器按次序發(fā)送具有最大數(shù)據(jù)值的數(shù)據(jù)包,直到HTTP POST請(qǐng)求數(shù)據(jù)傳輸完畢。就Firefox瀏覽器來(lái)看,在向Web服務(wù)器發(fā)送HTP POST請(qǐng)求數(shù)據(jù)時(shí),將首先發(fā)送一個(gè)HTTP POST首部和最大數(shù)據(jù)貼合在一起的數(shù)據(jù)包,然后按次序發(fā)送最大長(zhǎng)度的數(shù)據(jù)包[4-6]。
2.2 Slow HTTP POST攻擊原理
在Slow HTTP Post攻擊中,攻擊者使用正常的POST請(qǐng)求進(jìn)行數(shù)據(jù)的傳輸,但是其報(bào)文首部中的Content-Length參數(shù)值被設(shè)置為很大的值,如圖2所示。
為了長(zhǎng)時(shí)間占用建立起的請(qǐng)求連接,攻擊者在請(qǐng)求首部得到確認(rèn)之后開始進(jìn)行的傳輸主體中,設(shè)置了極小的數(shù)據(jù)傳輸大小。
由于報(bào)文主體中每次傳輸?shù)臄?shù)據(jù)長(zhǎng)度太短,而報(bào)文首部中解析到的數(shù)據(jù)長(zhǎng)度Content-Length太大,導(dǎo)致Web服務(wù)器認(rèn)為請(qǐng)求數(shù)據(jù)沒(méi)有傳輸完畢,將長(zhǎng)時(shí)間保留該請(qǐng)求連接,直到超過(guò)傳輸時(shí)限。當(dāng)服務(wù)器的連接資源池被類似的攻擊請(qǐng)求占滿,就會(huì)造成拒絕服務(wù)[7-9]。
在Slow HTTP Post攻擊過(guò)程中,數(shù)據(jù)包的傳輸機(jī)制如圖3所示。
2.3 Slow HTTP POST攻擊過(guò)程
本文對(duì)目標(biāo)服務(wù)器進(jìn)行了Slow HTTP POST攻擊仿真, Slow HTTP Post攻擊過(guò)程連接數(shù)量變化情況如圖4所示。
Web服務(wù)器在攻擊發(fā)起后約10秒時(shí)變?yōu)椴豢捎脿顟B(tài),掛起的TCP連接數(shù)開始增加。從24秒開始,服務(wù)器關(guān)閉的TCP連接數(shù)量逐漸上升,至約72秒時(shí),掛起的TCP連接數(shù)開始下降。當(dāng)攻擊發(fā)生后108秒時(shí),服務(wù)器恢復(fù)可用狀態(tài)。攻擊成功的時(shí)長(zhǎng)為108-10=98秒。
3 檢測(cè)方法設(shè)計(jì)
Slow HTTP POST攻擊檢測(cè)方法利用萬(wàn)維網(wǎng)瀏覽器中正常數(shù)據(jù)的盡力傳輸機(jī)制與攻擊性數(shù)據(jù)傳輸機(jī)制的差異,對(duì)HTTP POST請(qǐng)求中的數(shù)據(jù)包進(jìn)行比較,提出了兩種攻擊判定條件。
第一個(gè)條件是如果當(dāng)數(shù)據(jù)包按次序傳輸?shù)降贜個(gè)時(shí),第二個(gè)數(shù)據(jù)包不是最大的數(shù)據(jù)包,則判定為Slow HTTP POST攻擊。
第二個(gè)條件是如果發(fā)生第三個(gè)數(shù)據(jù)包和第N-1個(gè)數(shù)據(jù)包是比最大尺寸小的數(shù)據(jù)包的情況時(shí),則判定為Slow HTTP POST攻擊。
攻擊檢測(cè)方法的偽代碼如表1所示。
攻擊檢測(cè)方法的主要工作流程如圖5所示。
4 實(shí)驗(yàn)驗(yàn)證
執(zhí)行Slow HTTP POST攻擊檢測(cè)腳本對(duì)攻擊進(jìn)行檢測(cè),檢測(cè)結(jié)果如圖6和圖7所示,可以看出,Slow HTTP POST攻擊發(fā)起后,目標(biāo)Web服務(wù)器端連續(xù)收到多個(gè)小流量的數(shù)據(jù)包,此時(shí)攻擊端正通過(guò)緩慢向服務(wù)器發(fā)送較小數(shù)據(jù)來(lái)持續(xù)占用目標(biāo)Web服務(wù)器連接池資源。然而,由于小流量數(shù)據(jù)包的連續(xù)流入,檢測(cè)算法會(huì)將其判定為Slow HTTP POST攻擊。
將本文提出的算法與現(xiàn)有其他算法檢測(cè)準(zhǔn)確率數(shù)據(jù)繪制與同一曲線,如圖8所示。從圖8可知,采用基于數(shù)據(jù)包檢查的檢測(cè)算法(Packet Size Check,簡(jiǎn)稱PC算法)對(duì)Slow HTTP POST攻擊進(jìn)行檢測(cè),檢測(cè)準(zhǔn)確率在83%至85%范圍內(nèi)浮動(dòng),較現(xiàn)有TCP持久連接時(shí)長(zhǎng)檢測(cè)算法(簡(jiǎn)稱TC算法)有所提高。同時(shí),雖然本文提出的PC算法檢測(cè)準(zhǔn)確率低于STFT頻譜分析法(簡(jiǎn)稱RTFA算法),但其實(shí)時(shí)檢測(cè)能力較強(qiáng),耗時(shí)較短。
5 結(jié)束語(yǔ)
Slow HTTP POST攻擊作為應(yīng)用層新型變種拒絕服務(wù)攻擊的一種,能夠以較小的攻擊代價(jià)輕松造成一臺(tái)Apache服務(wù)器拒絕服務(wù),其破壞力極強(qiáng),涉及范圍極廣,對(duì)其檢測(cè)防御方法研究工作至關(guān)重要。
通過(guò)本文提出的基于數(shù)據(jù)包大小檢查的Slow HTTP POST攻擊檢測(cè)方法可以實(shí)時(shí)性地對(duì)Slow HTTP POST攻擊進(jìn)行檢測(cè),以協(xié)助安全管理人員及時(shí)地采取相應(yīng)的防御措施。
基金項(xiàng)目:
2015年度國(guó)家科技支撐計(jì)劃項(xiàng)目(項(xiàng)目編號(hào):2015BAH08F02)。
參考文獻(xiàn)
[1] Wu Z, Hu R, Yue M. Flow‐oriented detection of low‐rate denial of service attacks[J]. International Journal of Communication Systems, 2016, 29(1):130-141.
[2] Wu Z, Jiang J, Yue M. A Particle Filter-Based Approach for Effectively Detecting Low-Rate Denial of Service Attacks[C]// International Conference on Cyber-Enabled Distributed Computing and Knowledge Discovery. IEEE, 2017:86-90.
[3] 吳志軍, 張景安, 岳猛,等.基于聯(lián)合特征的LDoS攻擊檢測(cè)方法[J].通信學(xué)報(bào), 2017, 38(5):19-30.
[4] Hirakawa T, Ogura K, Bista B B, et al. A Defense Method against Distributed Slow HTTP DoS Attack[C]// International Conference on Network-Based Information Systems. IEEE, 2016:152-158.
[5] 李赫.基于SDN的DDoS流量識(shí)別與控制技術(shù)研究[D].南京郵電大學(xué), 2016.
[6] 任龍.應(yīng)用層DDOS攻擊檢測(cè)技術(shù)研究[D].成都理工大學(xué), 2016.
[7] Brynielsson J. Detectability of Low-Rate HTTP Server DoS Attacks using Spectral Analysis[C]//Ieee/acm International Conference on Advances in Social Networks Analysis and Mining. ACM, 2015:954-961.
[8] Duravkin I, Loktionova A, Carlsson A. Method of slow-attack detection[C]// Problems of Infocommunications Science and Technology, 2014 First International Scientific-Practical Conference. IEEE, 2014:171-172.
[9] Park J, Iwai K, Tanaka H, et al. Analysis of Slow Read DoS attack[C]// International Symposium on Information Theory and ITS Applications. IEEE, 2014:60-6
[10] 魏玉人, 徐育軍. DDoS攻擊及防御技術(shù)綜述[J].軟件導(dǎo)刊, 16(3), 2017, 173-175.