網路攻擊 慢速連線攻擊和處理方式

2021-10-09 02:46:44 字數 1561 閱讀 9594

慢速攻擊原理:

http慢速攻擊是利用http合法機制,在建立連線後,盡量長時間保持連線,不釋放,達到對http服務攻擊,攻擊者傳送post請求,自行構造報文向伺服器提交資料,將報文長度設定乙個很大的值,且在隨後每次傳送中,每次只傳送乙個很小的報文,這樣導致伺服器一直等待資料,連線始終一直被占用。

如果攻擊者使用多執行緒或傀儡機子去做同樣操作,伺服器web容器很快就被佔滿tcp連線而不再接受新請求

slowhttptest是一款對伺服器進行慢攻擊的測試軟體,包含了幾種攻擊方式,像slowloris、slowhttp post、slow read attack等。

總而言之,該工具的原理就是設法讓伺服器等待,當伺服器在保持連線等待時,就消耗了資源。

1、 最具代表性的是rsnake發明的slowloris,又被稱為slow headers。

【攻擊原理】

http協議規定,http request以\r\n\r\n(0d0a0d0a)結尾表示客戶端傳送結束,服務端開始處理。那麼,如果永遠不傳送\r\n\r\n會如何?slowloris就是利用這一點來做ddos攻擊的。攻擊者在http請求頭中將connection設定為keep-alive,要求web server保持tcp連線不要斷開,隨後緩慢地每隔幾分鐘傳送乙個key-value格式的資料到服務端,如a:b\r\n,導致服務端認為http頭部沒有接收完成而一直等待。如果攻擊者使用多執行緒或者傀儡機來做同樣的操作,伺服器的web容器很快就被攻擊者佔滿了tcp連線而不再接受新的請求。

2、slowloris的變種--slow http post,也稱為slow body。 

【攻擊原理】

在post提交方式中,允許在http的頭中宣告content-length,也就是post內容的長度。

在提交了頭以後,將後面的body部分卡住不傳送,這時伺服器在接受了post長度以後,就會等待客戶端傳送post的內容,攻擊者保持連線並且以10s-100s乙個位元組的速度去傳送,就達到了消耗資源的效果,因此不斷地增加這樣的鏈結,就會使得伺服器的資源被消耗,最後可能宕機。

3、slow read attack

【攻擊原理】

採用調整tcp協議中的滑動視窗大小,來對伺服器單次傳送的資料大小進行控制,使得伺服器需要對乙個回應分成很多個包來傳送。要使這種攻擊效果更加明顯,請求的資源要盡量大。

用wireshark抓包可以看出,當請求a.wmv資源(大小有9m多)時,客戶端windowssize被刻意設定為1152位元組。客戶端緩衝區在被來自伺服器的資料填滿後,發出了[tcp zerowindow]告警,迫使服務端等待。 

受到以上各種慢速攻擊後,伺服器再無法訪問 

解決辦法:

1.使用nginx,因為其本身就對慢速攻擊有很好防護

2.tomcat可通過執行模式nio和connectiontimeout值進行緩解

另外,在tomcat中配置connectiontimeout引數也可以防止head攻擊下的拒絕服務,但是對於body和read情況下沒有能力解決(論壇上也說了,tomcat就不是做這個事兒的)。 

原文:

軟考之路 網路攻擊 主動攻擊和被動攻擊

被動攻擊 針對路上的東西下手 概念 就是網路竊聽,竊取資料報並進行分析,從中竊取重要的敏感資訊 措施 防止被動攻擊的主要手段是資料加密傳輸 主動攻擊 針對計算機下手 概念 包括竊取 篡改 假冒和破壞 中間人攻擊 mitm攻擊 一種間接的入侵攻擊,這種攻擊模式是通過各種技術手段將受入侵者控制的計算機虛...

殭屍程序和處理方式

在父程式中用於判斷子程式是否結束 殭屍程序 子程序提前于父程序結束,造成無法清理掉pcb和其他系統消耗造成pid的長時間占用 如上圖 如果父程序異常結束時就成了乙個孤兒程序交個pid 1 的init作為父程序進行管理收屍 三種處理方式 父程序通過wait和waitpid等函式等待子程序結束,這會導致...

ESAPI處理sql注入和xss攻擊

使用esapi防止xss的做法 string safe esapi.encoder encodeforhtml request.getparameter input 對使用者輸入 input 進行html編碼,防止xss。使用esapi防止oracle資料庫sql注入的做法 string sqlst...