Apache HTTP Server畸形Range選項處理遠程拒絕服務漏洞

以下文字全部轉載自“綠盟科技緊急通告
 
受影響的軟件及系統:
====================
Apache 1.3 全部版本
Apache 2 全部版本
 
綜述:
======
  Apache HTTP Server由於其開源及跨平臺的特性,是目前互聯網上使用最廣泛的Web服務器程序。近期Apache Web服務器被發現存在一個遠程拒絕服務漏洞,***者只要能夠連接服務器,通過發送畸形的惡意請求,可以導致服務器失去響應從而無法提供正常的服務。由於Apache服務器的巨大流行程度,而且漏洞影響幾乎全部版本的Apache服務器,因此需要引起相關用戶的高度重視。
 
  此漏洞是一個0day漏洞,技術細節及相應的利用代碼已經公開,也已經出現了利用此漏洞進行***的案例。軟件的廠商Apache軟件基金會已經得知了此漏洞的存在並開始處理,但還沒有提供正式的補丁或新版本的軟件,因此強烈用戶立即採用本公告提供的臨時解決方案以免受此漏洞的影響。
 
分析:
======
  漏洞源於Apache HTTP Server處理來自客戶端的HTTP請求中畸形的Range頭選項時存在的問題,如果在Range選項中設置了大量重疊的範圍指定命令,則Apache會在構造迴應數據時消耗大量內存和CPU資源,導致Apache失去響應,甚至造成操作系統資源耗盡。
 
  此漏洞可以實現穩定的觸發和利用,***者可以利用較小的代價實現對目標服務器的拒絕服務***。服務器遭受***以後響應正常請求的能力取決於服務器的配置情況,部分服務器可能完全失去服務功能,採用一定的配置加固措施可以免受此漏洞***的影響。
 
解決方法:
==========
  在廠商提供官方補丁或新版本軟件之前,建議用戶採用如下的配置方案之一以儘可能免受漏洞的影響:
 
  * 使用SetEnvIf配置命令來忽略畸形的Ranger選項,適用於Apache 2.0和2.2 。
 
  修改Apache的配置文件httpd.conf。 
  去掉如下行的註釋:
  LoadModule headers_module modules/mod_headers.so
  增加如下行的配置命令:
  SetEnvIf Range (,.*?){5,} bad-range=1
  RequestHeader unset Range env=bad-range
  重啓Apache服務器。
  
 
  * 安裝啓用mod_rewrite,設置規則過濾規則禁止帶有畸形的Ranger選項的請求,適用於所有版本的Apache 。
 
  修改Apache的配置文件httpd.conf。
  去掉如下行的註釋:
  LoadModule rewrite_module modules/mod_rewrite.so
  加入如下的mod_rewrite的規則配置行:
  RewriteEngine on
  RewriteCond %{HTTP:range} !(^bytes=[^,]+(,[^,]+){0,4}$|^$)
  RewriteRule .* – [F]
  重啓Apache服務器。
 
  上述兩種配置會禁止Range選項包含超過5個範圍指定命令的請求,在通常應用場景中對Web應用應該不會有什麼影響,如果Web應用提供PDF數據或流媒體信息,可能需要調整閾值到更大的數值。
 
  * 使用配置命令限制請求頭單個選項的大小,此方法不依賴其他的模塊,適用於所有版本的Apache 。
 
  修改Apache的配置文件httpd.conf。
  增加如下的配置行:
   LimitRequestFieldSize 200
 
  此配置限制每個請求頭的單個選項的最大字節數爲200,在大多數應用場景下應該可以正常工作,如果Web應用使用了比較長的頭選項,比如包含很多數據的Cookie,需要根據實際情況調整此閾值。
 
廠商狀態:
==========
  目前廠商還未提供正式補丁或修復了漏洞的新版本軟件,請密切關注廠商網站下載更新:
 
聲 明
==========
  本安全公告僅用來描述可能存在的安全問題,綠盟科技不爲此安全公告提供任何保證或承諾。由於傳播、利用此安全公告所提供的信息而造成的任何直接或者間接的後果及損失,均由使用者本人負責,綠盟科技以及安全公告作者不爲此承擔任何責任。綠盟科技擁有對此安全公告的修改和解釋權。如欲轉載或傳播此安全公告,必須保證此安全公告的完整性,包括版權聲明等全部內容。未經綠盟科技允許,不得任意修改或者增減此安全公告內容,不得以任何方式將其用於商業目的。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章