慢連接攻擊原理- IT安全運維
2020-05-07 17:06 作者:艾銻無限 瀏覽量:
慢速攻擊原理:
在網(wǎng)絡(luò)
安全運維中http慢速攻擊是利用http合法機(jī)制,在建立連接后,盡量長時間保持連接,不釋放,達(dá)到對HTTP服務(wù)攻擊,攻擊者發(fā)送POST請求,自行構(gòu)造報文向服務(wù)器提交數(shù)據(jù),將報文長度設(shè)置一個很大的值,且在隨后每次發(fā)送中,每次只發(fā)送一個很小的報文,這樣導(dǎo)致服務(wù)器一直等待數(shù)據(jù),連接始終一直被占用。如果攻擊者使用多線程或傀儡機(jī)子去做同樣操作,服務(wù)器WEB容器很快就被占滿TCP連接而不再接受新請求。
slowhttptest是一款對服務(wù)器進(jìn)行慢攻擊的測試軟件,包含了幾種攻擊方式,像Slowloris、SlowHTTP POST、Slow Read attack等。總而言之,該工具的原理就是設(shè)法讓服務(wù)器等待,當(dāng)服務(wù)器在保持連接等待時,就消耗了資源。
1、 最具代表性的是rsnake發(fā)明的Slowloris,又被稱為slow headers。
【攻擊原理】
HTTP協(xié)議規(guī)定,HTTP Request以\r\n\r\n(0d0a0d0a)結(jié)尾表示客戶端發(fā)送結(jié)束,服務(wù)端開始處理。那么,如果永遠(yuǎn)不發(fā)送\r\n\r\n會如何?Slowloris就是利用這一點來做DDoS攻擊的。攻擊者在HTTP請求頭中將Connection設(shè)置為Keep-Alive,要求Web Server保持TCP連接不要斷開,隨后緩慢地每隔幾分鐘發(fā)送一個key-value格式的數(shù)據(jù)到服務(wù)端,如a:b\r\n,導(dǎo)致服務(wù)端認(rèn)為HTTP頭部沒有接收完成而一直等待。如果攻擊者使用多線程或者傀儡機(jī)來做同樣的操作,服務(wù)器的Web容器很快就被攻擊者占滿了TCP連接而不再接受新的請求。
2、Slowloris的變種--Slow HTTP POST,也稱為Slow body。
【攻擊原理】
在POST提交方式中,允許在HTTP的頭中聲明content-length,也就是POST內(nèi)容的長度。
在提交了頭以后,將后面的body部分卡住不發(fā)送,這時服務(wù)器在接受了POST長度以后,就會等待客戶端發(fā)送POST的內(nèi)容,攻擊者保持連接并且以10S-100S一個字節(jié)的速度去發(fā)送,就達(dá)到了消耗資源的效果,因此不斷地增加這樣的鏈接,就會使得服務(wù)器的資源被消耗,最后可能宕機(jī)。
3、Slow Read attack
【攻擊原理】
采用調(diào)整TCP協(xié)議中的滑動窗口大小,來對服務(wù)器單次發(fā)送的數(shù)據(jù)大小進(jìn)行控制,使得服務(wù)器需要對一個回應(yīng)分成很多個包來發(fā)送。要使這種攻擊效果更加明顯,請求的資源要盡量大。
用Wireshark抓包可以看出,當(dāng)請求a.wmv資源(大小有9M多)時,客戶端windowssize被刻意設(shè)置為1152字節(jié)。客戶端緩沖區(qū)在被來自服務(wù)器的數(shù)據(jù)填滿后,發(fā)出了[TCP ZeroWindow]告警,迫使服務(wù)端等待。
受到以上各種慢速攻擊后,服務(wù)器再無法訪問
適合網(wǎng)絡(luò)
安全運維掌握的解決辦法:
1.使用NGINX,因為其本身就對慢速攻擊有很好防護(hù)
2.tomcat可通過運行模式NIO和connectionTimeout值進(jìn)行緩解
3.dos deflate軟件:https://www.cnblogs.com/cloudapps/p/4996050.html
另外,在tomcat中配置connectionTimeout參數(shù)也可以防止head攻擊下的拒絕服務(wù),但是對于body和read情況下沒有能力解決。
艾銻無限科技專業(yè):
IT外包、
企業(yè)外包、
北京IT外包、
桌面運維、弱電工程、
網(wǎng)站開發(fā)、wifi覆蓋方案,
網(wǎng)絡(luò)外包,網(wǎng)絡(luò)管理服務(wù),網(wǎng)管外包,
綜合布線,服務(wù)器運維服務(wù),
中小企業(yè)it外包服務(wù),服務(wù)器維保公司,硬件運維,網(wǎng)站運維服務(wù)
以上文章由北京艾銻無限科技發(fā)展有限公司整理