如何制定Apache安全最佳做法?
Apache HTTP Server軟件于18年前首次推出,逾十年以來,該軟件一直都是最流行的Web服務器軟件--Apache占Web服務器市場的份額超過50%,這也使其成為最熱門的攻擊目標。
安全公司ESET和Sucuri的研究人員發現了最新針對Apache的高調攻擊,攻擊人員試圖尋找一個后門進入Apache,重定向網絡流量到惡意網站,訪客進入惡意網站后,將被Blackhole漏洞利用工具包所感染。這種攻擊表明,企業必須制定Apache安全最佳做法,并且企業需要意識到,不安全的Apache Web服務器可能引起嚴重的后果。
在這篇文章中,我們將提供最佳做法來幫助企業保護Apache服務器抵御現代攻擊。
Apache安全基礎
在很多情況下,Apache服務器感染是因為過時的模塊、配置或甚至Web服務器托管的Web代碼。為了解決這些問題,企業應該使用最新版本的Apache HTTP及其附件,同時還應該保持HTTP服務器的更新,這是至關重要的。然而,目前攻擊者的趨勢是專注于外部組件框架、模塊和附件,這些方面的漏洞讓Apache HTTP很容易受到攻擊,并且很難擺脫。企業應該追蹤這些新組件,這等于成功了一半,另一半則是確保這些數據包安裝了最新補丁,以及升級到最新版本。另外,在更新時,企業還應該記得要仔細檢查下載來源,聰明的攻擊往往試圖將惡意軟件偽裝成軟件更新。
除了保持更新外,企業還應該配置Apache HTTP Server以將攻擊面減到最小。雖然這聽起來很簡單,但這只有系統管理員可以處理的幾十個考慮因素(通常還需要與Web開發人員協作)。例如,分布式拒絕服務攻擊的最新趨勢是使用最少量的流量消耗系統資源。這種攻擊的影響可以通過配置參數來最小化,例如配置RequestReadTimeout、TimeOut、KeepAliveTimeout 和MaxRequestWorkers來減少資源消耗值。此外,系統管理員應該考慮的以下其他因素:
• 使用限制特權的賬戶運行HTTPd,如果攻擊者試圖攻擊后臺程序本身的話,這樣做能夠最大限度地減少對整個系統的影響。
• 通過配置AllowOverride參數到None,拒絕對. htaccess文件的使用。這能夠確保htaccess文件不能使用。
• 配置模式(例如mod_python 和 mod_php)來使用安全模式,在有必要的地方進行這種配置,但在新版本中可能沒有這個必要。
• 鎖定文件系統,這樣只有根用戶可以重寫Apache二進制文件,這樣做將防止httpd二進制文件被惡意版本替換。
監測Apache攻擊
即使部署了保護措施來保護Apache服務器,企業仍然必須警惕攻擊者通過其他途徑“趁虛而入”。為了確保攻擊者不會偷偷潛入,企業必須密切監測其日志來追蹤攻擊跡象。啟用一定水平的日志記錄,同時記錄系統水平的HTTPd,以及內部web后臺程序。你可以簡單地創建bash或Python腳本,來搜索日志中特定內容,或者使用內置syslogd命令來提醒管理員潛在的錯誤或攻擊。有效的監測和警報需要企業了解所提供的內容。一些內容(例如使用LDAP用于身份驗證)的運作方式可能會導致不太動態的web服務器生成警報。如果你的服務器試圖使用LDAP,而web應用被設計為使用本地身份驗證,這可能會引起報警。禁用mod_php可能使企業排除這種類型的攻擊警報,從而使真正的警報發揮其作用。對于面臨高風險攻擊的web服務器,考慮啟用mod_log_forensic以獲得對客戶端請求的更深入視圖。
啟用mod_security,所有系統都可以獲益,但高風險web服務器獲益最多。該模塊還可以使企業利用各種工具來檢測和阻止攻擊。你還可以通過IPS、IDS、NIDS和SIEM系統將它集成到現有的企業安全模式中。mod_security還能夠作為web應用防火墻,當用于可能沒有最佳輸入過濾的web應用時,它的作用非常巨大。
保持警惕
通過制定這些基本措施,企業可以確保Apache HTTP服務器的安全,同時以最低風險提供內容。操作安全系統最重要的部分之一就是保持追蹤最新的安全風險和軟件版本。這樣做,再加上積極地監測,將能夠很好地保護你的Apache實例的安全。