2021年12月9日晚,開源項目Apache Log4j 2的一個遠程代碼執行漏洞的利用細節被公開。而公開漏洞時,該漏洞被認為是影響了2.0至2.14.1-rc1的所有版本。但技術人員在後續的實際測試中發現,12月7日上午更新的2.15.0-rc1版本依然存在觸發該漏洞的可能性。最終在利用細節被公布的幾小時後——12月10日凌晨2點半左右,Apache Log4j 2更新至了2.15.0-rc2版本,至此漏洞才確認被修復。
Apache Log4j是一個基於Java的日誌記錄工具,目前是Apache軟體基金會下的一個開源項目。而此次出現漏洞的Apache Log4j 2則是目前該項目的最新版本,由於其優異的性能而被廣泛的應用於各種常見的Web服務中。
也正因該項目本身應用廣泛,而此次漏洞的修復滯後且利用門檻極低,再加上大量Web應用出於各種原因尚未甚至無法更新到最新安全版本,導致此次事件給整個網際網路帶來了極大的安全隱患。
在野攻擊
經過360的技術人員驗證,確認目前放出的利用代碼確實可以成功觸發該漏洞,並且操作門檻並不高。
同時,360安全大腦的雲端大數據也發現網絡中已經出現了針對該漏洞的大量測試攻擊,甚至已經開始出現試探性的在野攻擊案例。這也再次印證了該漏洞極高的風險性和極大的覆蓋範圍。
解決方案
該事件影響範圍廣且危害極大,呼籲廣大廠商和各種Web應用的使用者及時做出安全響應。360安全大腦在此也給出如下安全建議:
常規方案
使用了Apache Log4j 2的用戶,請將程序更新至官方最新安全版本(2.15.0-rc2)。下載地址如下:
https://github.com/apache/logging-log4j2/releases/tag/log4j-2.15.0-rc2
臨時應急方案
修改Log4j配置:
log4j2.formatMsgNoLookups=True
設置JVM啟動參數:
-Dlog4j2.formatMsgNoLookups=true
設置環境變量:
FORMAT_MESSAGES_PATTERN_DISABLE_LOOKUPS值為true
可以提高安全性的周邊設置
以下設置或操作可能會對防護此次安全事件起到作用,但無法確保安全。建議結合實際應用場景進行配置:
1. 使用儘可能更高版本的JDK
2. 使用rasp阻斷lookup的調用
3. 使用waf對流量中的${jndi進行攔截
4. 禁止所有不必要的外連數據。
360安全大腦防護