Log4Shell是什麼(me)?從Log4j漏洞說(shuō)起(qǐ)

創提信息
2022/01/04

分享到

在開(kāi)源Apache日志記錄庫Log4j中已發(fā)現了一個影響使用Java的設備和應用程序的新漏洞。該漏洞被(bèi)稱爲Log4Shell,是目前互聯網上最重大的安全漏洞,其嚴重程度爲10分(滿分10分),其影響有愈演愈烈之勢。幸運的是,Perforce靜态分析和SAST工具——Helix QACKlocwork——可以提供幫助。

 
在這(zhè)裡(lǐ),我們將(jiāng)解釋Log4j漏洞是什麼(me),提供一個Log4j示例,并解釋像Klocwork這(zhè)樣(yàng)的SAST工具如何幫助預防和檢測如Log4Shell這(zhè)樣(yàng)的漏洞。本文將(jiāng)包含如下内容:
 
     • Log4j是什麼(me)?
 
     • Log4Shell是什麼(me):從Log4j漏洞說(shuō)起(qǐ)
 
     • 哪些設備和應用程序容易受到Log4Shell的攻擊?
 
     • Klocwork如何檢測Log4j漏洞
 
     • 如何使用Klocwork防止Log4j漏洞


Log4j是什麼(me)?
 
Log4j是一個Java庫,用于在企業應用程序(其中包括自定義應用程序、網絡和許多雲計算服務)中記錄錯誤日志。
 
并且,在過(guò)去十年裡(lǐ)爲服務器和客戶端應用程序開(kāi)發(fā)的Java程序中,有很大一部分都(dōu)使用了Log4j。


Log4Shell是什麼(me):從Log4j漏洞說(shuō)起(qǐ)
 
Log4Shell,又稱爲CVE-2021-4428,是一種(zhǒng)影響Apache Log4j2核心功能(néng)的高嚴重性漏洞。該漏洞使攻擊者能(néng)夠實現遠程代碼執行。這(zhè)使他們能(néng)夠:
 
     • 通過(guò)受影響的設備或應用程序訪問整個網絡
 
     • 運行任意代碼
 
     • 訪問受影響的設備或應用程序上的所有數據
 
     • 删除或加密文件
 
受影響的版本,Log4j版本2 (Log4j2),包含在:
 
     • Apache Struts2
 
     • Apache Solr
 
     • Apache Druid
 
     • Apache Flink
 
     • ElasticSearch
 
     • Flume
 
     • Apache Dubbo
 
     • Logstash
 
     • Kafka
 
     • Spring-Boot-starter-log4j2
 
     • Swift frameworks


哪些設備和應用程序容易受到Log4Shell的攻擊?
 
如果連接到互聯網的設備運行Apache Log4j 2.0-2.14.1版本,那麼(me)它們很容易受到Log4Shell的攻擊。
 
如何檢測和預防最常見的軟件安全漏洞

 
Log4Shell隻是衆多潛在的安全漏洞之一。那麼(me)我們應該如何有效檢測和解決最常見的安全漏洞?


Klocwork如何檢測Log4j漏洞
 
作爲一個靜态分析和SAST工具,Klocwork會(huì)檢查您的源代碼,找出可能(néng)會(huì)讓您的設備或應用程序受到攻擊的設計和編碼缺陷,比如受污染的數據問題。Klocwork可以沿著(zhe)代碼中所有可能(néng)的執行路徑跟蹤受污染的、不受信任的或其他可疑的數據,包括Log4Shell (CVE-2021-4428)。
 
Klocwork的SV.LOG_FORGING檢查項可以“開(kāi)箱即用”,能(néng)夠檢測被(bèi)傳到日志記錄程序中的受污染的數據。從Perforce Support處獲取的一個小小的配置文件可擴展該檢查項來檢測Log4j漏洞。
 
此外,Klocwork還(hái)與Secure Code Warrior進(jìn)行了集成(chéng),這(zhè)有助于爲這(zhè)些類型的缺陷提供修複指導,并且提供額外的軟件安全培訓。Secure Code Warrior高亮顯示了安全漏洞,并提供了如何修複這(zhè)些錯誤的指導。


如何使用Klocwork防止Log4j漏洞
 
現在您已經(jīng)更好(hǎo)地理解了Log4j漏洞是什麼(me)以及Klocwork如何識别它,下面(miàn)是一個Log4j示例。此外,我們還(hái)提供了一個詳細的指南,以演示Klocwork如何幫助您檢測和修複這(zhè)個嚴重的漏洞。
 
1. 使用Klocwork SV.LOG_FORGING檢查項
 
要使用Klocwork的SV.LOG_FORGING檢查項:請轉到該應用程序的Klocwork Portal項目,添加配置文件,并确認SV.LOG_FORGING檢查項已啓用。
 
該擴展將(jiāng)Log4j方法添加到SV.LOG_FORGING的受污染數據的危險目的地列表中。這(zhè)使您能(néng)夠識别Log4j漏洞——Log4Shell。
 
2. 定位Log4j漏洞
 
一旦整個應用程序集成(chéng)分析完成(chéng),任何錯誤或漏洞都(dōu)會(huì)被(bèi)高亮顯示。
 
下面(miàn)的序列高亮顯示了日志僞造是如何實現的,并使攻擊者能(néng)夠利用日志記錄來操縱它們:


Log4Shell是什麼(me)--從Log4j漏洞說(shuō)起(qǐ)-1.jpg

 
一旦分析完成(chéng),Klocwork將(jiāng)在第5行報告漏洞。


3. 防止Log4j漏洞缺陷
 
Apache已經(jīng)發(fā)布了Log4j 2.16的新版本,該版本不包含Log4Shell漏洞。
 
此外,如果您無法更新到最新版本,Apache也提供了解決方案來緩解Log4j漏洞。
 
In releases >=2.10, this behavior can be mitigated by setting either the system property log4j2.formatMsgNoLookups or the environment variable LOG4J_FORMAT_MSG_NO_LOOKUPS to true.
 
For releases from 2.0-beta9 to 2.10.0, the mitigation is to remove the JndiLookup class from the classpath: zip -q -d log4j-core-*.jar org/apache/logging/log4j/core/lookup/JndiLookup.class.


使用Klocwork阻止Log4Shell等漏洞
 
Log4Shell是一個值得關注的軟件安全漏洞——不幸的是,它不是唯一一個。它隻是CWE-117和OWASP A10:2017所強調的衆多類型的安全漏洞的一個示例。
 
通過(guò)使用SAST工具(如Klocwork),您可以輕松地執行軟件安全标準(如CWE、OWASP和CERT),以更好(hǎo)地檢測、預防和消除軟件安全漏洞(如Log4Shell)。
 
若想親自體驗Klocwork如何簡單地通過(guò)盡早識别漏洞來保護您的軟件,今天就(jiù)點擊網頁右上角注冊申請免費試用吧。