“Apache殺手”一種利用Range HTTP頭域的DDoS

碼頭工人 13年前發布 | 7K 次閱讀 Apache

2007 年,Google 工程師 Michael Zalewski 在研究了 HTTP/1.1 Range 頭域的實現后,發表了一篇備忘,詳細說明了 Apache 和 IIS 網頁服務器中存在的一個潛在漏洞。apache.jpg

在我印象中,一個單獨的、短的請求就可用來誘使服務器無目的地地發出數以 GB 的偽數據,而不顧服務器文件大小、連接數以及管理員設定的持續(keep-alive)請求數的限制。

8 月 19 號,“Full Disclosure”安全郵件列表中發布了一段 Apache DDoS 工具原型的 Perl 腳本。8月 24 號,Apache 安全小組就此發表了一篇備忘進行解釋

它最常見地表現在靜態內容生成且通過 mod_deflate 模塊進行壓縮的時候,但其它在內存中緩存或生成內容的模塊也可能會受到影響。這是一種非常普遍(缺省的,不是么?)的配置方式。

攻擊可以遠程進行,并且中等數量的請求就會導致內存和 CPU 占用率顯著提高。

我們注意到該工具已經得到越來越多的應用。

目前還沒有修復該漏洞的補丁和新版本的 apache,因此本公告將在長期修復補丁發布時更新。修復補丁預計將在接下來的 96 小時內發布。

星期五,Apache發布了第二則公告,其中他們解釋了當服務器處理請求以返回多個(重疊的)范圍時,Apache httpd 進程和它所謂的內部“桶隊列(bucket brigades)”是如何按照請求的順序進行處理的。單個請求可以請求非常大的范圍(例如從字節 0 到結尾),差距達到 100 倍。目前,這種類型的請求內部會擴展相當于 100 次大型的取指令操作,所有這些都以低效率的方式保存在內存中。

處理方式有兩種,要么使事情更有效率,要么清除或者簡化被認為過于笨重的請求。在最終修復方案出來前有幾種直接選擇可緩解這一狀況。

Apache 提出的緩解措施包括從完全禁止 Range 頭域到限制請求包的大小及部署定制的 Range 計數模塊。Lori MacVittie詳細說明了如何通過使用 Big-IP 來實現緩解措施

查看英文原文"Apache Killer" a DDoS using the Range HTTP Header
     來自: InfoQ

 本文由用戶 碼頭工人 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!