尚未到被打補丁的(de)Apache HTTP服務器發現的(de)漏洞允許攻擊者訪問内部網絡上的(de)受保護的(de)資源,如果沒有正确定義一些重寫規則。
該漏洞影(yǐng)響的(de)Apache安裝在反向代理(lǐ)模式運作,負載均衡,緩存和(hé)其他(tā)業務涉及多(duō)個(gè)服務器的(de)資源分(fēn)配使用(yòng)的(de)配置類型 。
爲了(le)設置apache httpd的(de)運行作爲反向代理(lǐ),服務器管理(lǐ)員(yuán)使用(yòng)的(de)mod_proxy和(hé)mod_rewrite的(de)專用(yòng)模塊。
Qualys公司的(de)安全研究人(rén)員(yuán)警告說,一定的(de)規則,如果配置不正确,攻擊者可(kě)以誘騙執行未經授權的(de)請求訪問内部資源服務器。
問題不在于新的(de)漏洞,使類似的(de)襲擊是針對(duì)十月(yuè)。然而,同時(shí)檢討(tǎo)它的(de)補丁,Qualys公司的(de)研究員(yuán)Prutha帕瑞克實現,它可(kě)以繞過由于在錯誤的(de)程序的(de)URI(統一資源标識符)計劃剝離的(de)。該計劃是URI的(de)一部分(fēn),冒号前的(de)“:”字符,如HTTP,FTP或文件,。
一個(gè)比較常見的(de)改寫和(hé)代理(lǐ)規則(.*) http://internal_host $ 1,将請求重定向到本機internal_host。但是,如果這(zhè)是用(yòng)來(lái)和(hé)服務器接收,例如,爲“主機:端口”的(de)要求(用(yòng)兩個(gè)冒号),“主機:”部分(fēn)被剝離,剩下(xià)的(de)就是追加到http://internal_host爲了(le)它在内部提出。
問題是,在這(zhè)種情況下(xià),餘下(xià)的(de)部分(fēn)是“端口”,因此改造轉發到http://internal_host:port,一個(gè)意外的(de)行爲,可(kě)能導緻暴露在受保護的(de)資源請求。
爲了(le)減輕問題的(de)服務器管理(lǐ)員(yuán)應該在重寫規則一個(gè)斜杠前加$1,正确的(de)形式"^(.*) http://internal_host/ $ 1“,帕瑞克說。
Apache的(de)開發者都意識到了(le)這(zhè)個(gè)問題,目前正在討(tǎo)論的(de)修複的(de)最佳方法。一種可(kě)能性是,以加強在以前的(de)服務器代碼補丁,以拒絕這(zhè)樣的(de)請求,然而,有沒有其他(tā)旁路方法肯定不會被發現。
我們可(kě)以嘗試提高(gāo)該修補程序,但我認爲這(zhè)是簡單,更改mod_proxy的(de)translate_name挂鈎和(hé)mod_rewrite的(de)正确的(de)地方,以執行要求。