閱文時長 | | 0.51分鍾 | 字數統計 | | 827.2字符 |
主要內容 | | 1、引言&背景 2、檢查依賴項中是否依賴了Log4J 3、偵測工具偵測結果 4、聲明與參考資料 | ||
『記Java程序Log4J漏洞的解決過程』 | |||
編寫人 | | SCscHero | 編寫時間 | | 2022/1/2 PM6:35 |
文章類型 | | 系列 | 完成度 | | 已完成 |
座右銘 | 每一個偉大的事業,都有一個微不足道的開始。 |
一、引言&背景 完成度:100%
a) 問題&時間線
- 開始知道Log4J漏洞是公司的安全郵件:大約是21年12月10號下午收到的郵件,知道了這個組件的漏洞。
- 我是在11號下午對Log4J組件做的修復(實際上時間已經晚了,我們另一個Java團隊就在10號晚上當天做了升級):我們主要是使用的.Net技術棧,少部分使用的是Python、Java Spring Boot的WebAPI結構。后來和幾個搞網安的朋友以及搞Java的朋友討論了一下,並且參加了公司組織的安全運維的會議,制定了解決方案。最后用長亭的工具掃描了沒問題了,匯報了老板。
- 那么寫這篇文章時間現在已經是元旦了,確實很晚了,之前忙於開發任務沒時間寫博文,現在元旦得空了寫寫記錄一下。相信很多朋友已經經歷完了這個漏洞,如果還有朋友沒搞得,希望也能幫助一點吧~??????
b) Log4J漏洞影響范圍
- 使用了Log4J版本大於2.0且小於 2.15.0-rc1。
- 使用Apache Log4j 1.X版本的應用,若開發者對JMS Appender利用不當,可對應用產生潛在的安全影響。
c) 解決思路
- 先根據Log4J的影響范圍,需要確認項目中是否使用了Log4J組件,手動檢查Maven的依賴項,以及依賴項的依賴項中是否存在。詳情可見第二章的一種方法,當然也有很多辦法都可以參考。
- 若使用了Log4J組件,且版本在漏洞影響范圍內,則需制定方案。
- 【方案1】按照Log4J2最新推出的版本進行升級,升級到Apache官方打Patch的版本。
- 【方案2】替換掉Log4J的組件,一Java朋友建議替換成LogBack。
- 【方案3-緩解措施】添加jvm啟動參數:-Dlog4j2.formatMsgNoLookups=true;在應用classpath下添加log4j2.component.properties配置文件,文件內容為:log4j2.formatMsgNoLookups=true;JDK使用11.0.1、8u191、7u201、6u211及以上的高版本;限制受影響應用對外訪問互聯網,並在邊界對dnslog相關域名訪問進行檢測。
- 通過一個安全運維大佬們都推薦的鏈接:https://log4j2-detector.chaitin.cn/。下載偵測工具,檢驗下效果。我用的是V2版本的偵測工具。
二、檢查依賴項中是否依賴了Log4J 完成度:100%
記一個方法。IDEA的可視化工具,可以反饋出依賴項是否又依賴了Log4J。在Maven項目中右擊Show Dependencies。

顯示如下圖:

三、偵測工具偵測結果 完成度:100%
使用了偵測工具掃描結果如圖:

四、聲明與參考資料 完成度:100%
原創博文,未經許可請勿轉載。
如有幫助,歡迎點贊、收藏、關注。如有問題,請評論留言!如需與博主聯系的,直接博客私信SCscHero即可。