鄧詩琪 武旭東 牛小龍 李小衛(wèi) 雷敏
摘 要:Slow HTTP POST攻擊屬于應(yīng)用層慢速HTTP拒絕服務(wù)攻擊。在Slow HTTP POST攻擊中,攻擊者使用正常的POST請求進(jìn)行數(shù)據(jù)的傳輸,但是其報文首部中的Content-Length參數(shù)值被設(shè)置為很大的值。然而,為了長時間占用建立起的請求連接,攻擊者在請求首部得到確認(rèn)之后開始進(jìn)行的傳輸主體中,設(shè)置了極小的數(shù)據(jù)傳輸大小,導(dǎo)致Web服務(wù)器認(rèn)為請求數(shù)據(jù)沒有傳輸完畢,將長時間保留該請求連接,當(dāng)服務(wù)器的連接資源池被類似的攻擊請求占滿,就會造成拒絕服務(wù)。文章根據(jù)正常HTTP POST請求發(fā)生后,數(shù)據(jù)以“盡力傳輸”的模式進(jìn)行傳輸?shù)奶匦耘cSlow HTTP POST攻擊下數(shù)據(jù)傳輸?shù)奶匦缘膮^(qū)別,提出基于數(shù)據(jù)包大小檢查的Slow HTTP POST攻擊檢測方法,并對檢測方法進(jìn)行了仿真實驗加以驗證。
關(guān)鍵詞:數(shù)據(jù)包檢查;Slow HTTP POST攻擊;檢測方法
中圖分類號:TP393.083 文獻(xiàn)標(biāo)識碼: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請求需等待客戶端傳送完畢數(shù)據(jù)的特性,在向服務(wù)器發(fā)送HTTP POST請求報文時,在首部中設(shè)置了極大的內(nèi)容長度值(Content-Length)。然而之后客戶端在進(jìn)行實際的數(shù)據(jù)傳輸時,卻在傳輸主體中設(shè)置了極小的數(shù)據(jù)傳輸大小,并緩慢地發(fā)送至服務(wù)器,導(dǎo)致Web服務(wù)器認(rèn)為請求數(shù)據(jù)沒有傳輸完畢,繼續(xù)保持當(dāng)前請求連接[1,2]。在攻擊端向Web服務(wù)器發(fā)送多個這樣的攻擊請求后,Web服務(wù)器的連接資源池將會被占滿,造成服務(wù)器拒絕服務(wù)。
Slow HTTP POST攻擊僅使用少量攻擊流量,現(xiàn)有失衡比例流量檢測法難以對其進(jìn)行探測;在傳入的數(shù)據(jù)包分組上做簽名的方法只適用于攻擊請求中的數(shù)據(jù)包分組與正常合法請求中的數(shù)據(jù)包分組有區(qū)別的情況,不適用于發(fā)送與合法請求數(shù)據(jù)分組結(jié)構(gòu)一致的攻擊請求的Slow HTTP POST攻擊;用最大熵估計法檢測網(wǎng)絡(luò)流量異常誤報率高。
本文首先介紹了Slow HTTP POST攻擊的攻擊原理,分析了其攻擊成功的根本原因,并通過仿真實驗對攻擊進(jìn)行復(fù)現(xiàn),然后根據(jù)攻擊特征提出基于數(shù)據(jù)包大小檢查的檢測方法,最后通過仿真實驗對檢測方法進(jìn)行了驗證。
2 攻擊原理
2.1 盡力傳輸
當(dāng)用戶在電腦上使用萬維網(wǎng)瀏覽器通過網(wǎng)絡(luò)向服務(wù)器發(fā)送HTTP POST請求時,為了實現(xiàn)最大程度地有效傳輸數(shù)據(jù)以及最優(yōu)化萬維網(wǎng)瀏覽器性能,具有以盡力傳輸(Best Effort)運(yùn)行的特征[3],如圖1所示。
就Internet Explorer的HTTP POST請求來看,在瀏覽器向Web服務(wù)器發(fā)送了HTTP POST請求首部后,從第二個數(shù)據(jù)包開始,瀏覽器將向Web服務(wù)器按次序發(fā)送具有最大數(shù)據(jù)值的數(shù)據(jù)包,直到HTTP POST請求數(shù)據(jù)傳輸完畢。就Firefox瀏覽器來看,在向Web服務(wù)器發(fā)送HTP POST請求數(shù)據(jù)時,將首先發(fā)送一個HTTP POST首部和最大數(shù)據(jù)貼合在一起的數(shù)據(jù)包,然后按次序發(fā)送最大長度的數(shù)據(jù)包[4-6]。
2.2 Slow HTTP POST攻擊原理
在Slow HTTP Post攻擊中,攻擊者使用正常的POST請求進(jìn)行數(shù)據(jù)的傳輸,但是其報文首部中的Content-Length參數(shù)值被設(shè)置為很大的值,如圖2所示。
為了長時間占用建立起的請求連接,攻擊者在請求首部得到確認(rèn)之后開始進(jìn)行的傳輸主體中,設(shè)置了極小的數(shù)據(jù)傳輸大小。
由于報文主體中每次傳輸?shù)臄?shù)據(jù)長度太短,而報文首部中解析到的數(shù)據(jù)長度Content-Length太大,導(dǎo)致Web服務(wù)器認(rèn)為請求數(shù)據(jù)沒有傳輸完畢,將長時間保留該請求連接,直到超過傳輸時限。當(dāng)服務(wù)器的連接資源池被類似的攻擊請求占滿,就會造成拒絕服務(wù)[7-9]。
在Slow HTTP Post攻擊過程中,數(shù)據(jù)包的傳輸機(jī)制如圖3所示。
2.3 Slow HTTP POST攻擊過程
本文對目標(biāo)服務(wù)器進(jìn)行了Slow HTTP POST攻擊仿真, Slow HTTP Post攻擊過程連接數(shù)量變化情況如圖4所示。
Web服務(wù)器在攻擊發(fā)起后約10秒時變?yōu)椴豢捎脿顟B(tài),掛起的TCP連接數(shù)開始增加。從24秒開始,服務(wù)器關(guān)閉的TCP連接數(shù)量逐漸上升,至約72秒時,掛起的TCP連接數(shù)開始下降。當(dāng)攻擊發(fā)生后108秒時,服務(wù)器恢復(fù)可用狀態(tài)。攻擊成功的時長為108-10=98秒。
3 檢測方法設(shè)計
Slow HTTP POST攻擊檢測方法利用萬維網(wǎng)瀏覽器中正常數(shù)據(jù)的盡力傳輸機(jī)制與攻擊性數(shù)據(jù)傳輸機(jī)制的差異,對HTTP POST請求中的數(shù)據(jù)包進(jìn)行比較,提出了兩種攻擊判定條件。
第一個條件是如果當(dāng)數(shù)據(jù)包按次序傳輸?shù)降贜個時,第二個數(shù)據(jù)包不是最大的數(shù)據(jù)包,則判定為Slow HTTP POST攻擊。
第二個條件是如果發(fā)生第三個數(shù)據(jù)包和第N-1個數(shù)據(jù)包是比最大尺寸小的數(shù)據(jù)包的情況時,則判定為Slow HTTP POST攻擊。
攻擊檢測方法的偽代碼如表1所示。
攻擊檢測方法的主要工作流程如圖5所示。
4 實驗驗證
執(zhí)行Slow HTTP POST攻擊檢測腳本對攻擊進(jìn)行檢測,檢測結(jié)果如圖6和圖7所示,可以看出,Slow HTTP POST攻擊發(fā)起后,目標(biāo)Web服務(wù)器端連續(xù)收到多個小流量的數(shù)據(jù)包,此時攻擊端正通過緩慢向服務(wù)器發(fā)送較小數(shù)據(jù)來持續(xù)占用目標(biāo)Web服務(wù)器連接池資源。然而,由于小流量數(shù)據(jù)包的連續(xù)流入,檢測算法會將其判定為Slow HTTP POST攻擊。
將本文提出的算法與現(xiàn)有其他算法檢測準(zhǔn)確率數(shù)據(jù)繪制與同一曲線,如圖8所示。從圖8可知,采用基于數(shù)據(jù)包檢查的檢測算法(Packet Size Check,簡稱PC算法)對Slow HTTP POST攻擊進(jìn)行檢測,檢測準(zhǔn)確率在83%至85%范圍內(nèi)浮動,較現(xiàn)有TCP持久連接時長檢測算法(簡稱TC算法)有所提高。同時,雖然本文提出的PC算法檢測準(zhǔn)確率低于STFT頻譜分析法(簡稱RTFA算法),但其實時檢測能力較強(qiáng),耗時較短。
5 結(jié)束語
Slow HTTP POST攻擊作為應(yīng)用層新型變種拒絕服務(wù)攻擊的一種,能夠以較小的攻擊代價輕松造成一臺Apache服務(wù)器拒絕服務(wù),其破壞力極強(qiáng),涉及范圍極廣,對其檢測防御方法研究工作至關(guān)重要。
通過本文提出的基于數(shù)據(jù)包大小檢查的Slow HTTP POST攻擊檢測方法可以實時性地對Slow HTTP POST攻擊進(jìn)行檢測,以協(xié)助安全管理人員及時地采取相應(yīng)的防御措施。
基金項目:
2015年度國家科技支撐計劃項目(項目編號: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攻擊檢測方法[J].通信學(xué)報, 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ù)研究[D].南京郵電大學(xué), 2016.
[6] 任龍.應(yīng)用層DDOS攻擊檢測技術(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.