Apache Log4j Remote Code Execution (CVE-2021-44228)是在2021年底被揭露的一個重大漏洞,當時這個弱點被揭露的那天,負責Java系統的工程師們一定都在瘋狂爬文想知道怎麼回事、怎麼處理吧。現在回想起來感覺都還是不久前才發生的事,沒想到已經過了快三年了。
Log4j是開發Java系統的工程師最常用的log套件之一,當時被人發現Log4j 2.x版之後有一個lookup的功能,攻擊者可以透過輸入特定的內容,讓log4j去下載並執行遠端的惡意程式,說起來應該也算是一種Code Injection吧。
所幸當時我負責的系統舊到用的log4j版本沒有jndi lookup功能,所以完全沒受到影響。
就算有用到有弱點的版本也不用太擔心,只要手動將log4j的jar檔裡面,JndiLookup.class這個檔案刪除就可以避開這個弱點了。
不過說到底,open系統用了一大堆第三方套件,難保下一次又有哪個套件出現相似的弱點,要避免Remote Code Execution最保險的做法,還是做好輸入檢核,不要相信任何客戶端進來的東西。
另外做好Server端的網路控管,把防火牆規則設好,讓Ap Server不能隨意連到Internet也很重要。