自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

如何檢查Java項(xiàng)目是否依賴于有漏洞的Log4j

譯文
開發(fā) 后端
本文通過展示如何對(duì)MariaDB的JDBC連接器進(jìn)行有關(guān)Log4j的依賴性漏洞檢查,示范性地建議大家將相關(guān)補(bǔ)丁,盡早發(fā)送到任何正在使用Log4j的開源項(xiàng)目中,以及時(shí)發(fā)現(xiàn)并升級(jí)易受攻擊的版本。

[[441798]]

【51CTO.com快譯】眾所周知,被定義和跟蹤為CVE-2021-44228,也被稱為Log4ShellLog4j漏洞,允許攻擊者在目標(biāo)系統(tǒng)中執(zhí)行任意代碼。因此,如果您的應(yīng)用正在使用Log4j的2.0-alpha1到2.14.1版的話,那么就應(yīng)當(dāng)盡快更新到其最新的版本(目前為2.16.0)。

對(duì)此,瑞士政府發(fā)布了一張能夠很好地解釋該漏洞的被攻擊流程圖,請(qǐng)參見下圖:

下面,讓我們根據(jù)上圖,深入研究與其有關(guān)的緩解策略。

使用Maven的依賴項(xiàng)插件

在Maven項(xiàng)目中,您可以通過如下簡(jiǎn)單命令,在依賴項(xiàng)樹(dependencies tree)中搜索log4j-core的相關(guān)依賴項(xiàng),并檢查該項(xiàng)目是否使用到了受影響的依賴項(xiàng)。

  1. 純文本  
  2. mvn dependency:tree -Dincludes=org.apache.logging.log4j:log4j-core 

該命令使用Maven Dependency Plugin來顯示項(xiàng)目的依賴樹(包括各種有傳遞關(guān)系的依賴項(xiàng))。通過后面的參數(shù),該命令過濾并輸出了log4-core的依賴項(xiàng)。因此,如果您的項(xiàng)目正在依賴某個(gè)易受攻擊的Log4j版本的話,那么您將會(huì)看到如下內(nèi)容:

在這個(gè)例子中,由輸出可知,該項(xiàng)目直接使用Log4j的2.14.1版。顯然,它是易受攻擊的。因此,本項(xiàng)目需要將如下依賴項(xiàng):

  1. XML 
  2. <dependency> 
  3.     <groupId>org.apache.logging.log4j</groupId> 
  4.     <artifactId>log4j-core</artifactId> 
  5.     <version>2.14.1</version> <!-- update this! --> 
  6. </dependency>

替換為:

  1. XML 
  2. <dependency> 
  3.     <groupId>org.apache.logging.log4j</groupId> 
  4.     <artifactId>log4j-core</artifactId> 
  5.     <version>2.16.0</version> <!-- or newer version --> 
  6. </dependency>

同理,我在MariaDB數(shù)據(jù)庫(kù)的JDBC連接器項(xiàng)目中,進(jìn)行了如下測(cè)試,并得出了對(duì)應(yīng)的結(jié)果:

慶幸的是,該項(xiàng)目并未使用Log4j,因此它不易受到Log4Shell的攻擊。更多有關(guān) MariaDB特定案例的信息,請(qǐng)參閱--https://dzone.com/articles/is-the-mariadb-jdbc-driver-affected-by-the-log4j-v。

使用Maven的幫助插件

如果您想做進(jìn)一步的調(diào)查,則需要檢查有效的POM(Project Object Model,項(xiàng)目對(duì)象模型),并搜索項(xiàng)目中使用的日志記錄框架。讓我們將目光轉(zhuǎn)回剛才的MariaDB JDBC連接器項(xiàng)目,我使用Maven的幫助插件,生成了有效的POM。由于我使用的是類Unix的操作系統(tǒng)(您可以通過截圖看到,其實(shí)是macOS),因此我使用如下grep命令(在Windows中,您可以使用findstr)來過濾輸出:

  1. 純文本 
  2. mvn help:effective-pom | grep log 

并且得到了來自mvn的如下輸出:

由輸出可知,MariaDB JDBC驅(qū)動(dòng)程序使用Logback作為日志記錄框架。雖然Logback不會(huì)受到Log4Shell的影響,但是它帶有1.2.8和1.3.0-alpha11版本中的相關(guān)漏洞。當(dāng)然,其嚴(yán)重程度要輕得多,我們不必過于恐慌。我查看了其連接器(connector)所使用的版本,該版本號(hào)為1.3.0-alpha10。盡管Logback作為測(cè)試依賴項(xiàng),被包含在MariaDB驅(qū)動(dòng)程序中,但我在GitHub上發(fā)送了一個(gè)拉取請(qǐng)求,以便對(duì)其予以更新。在此,我鼓勵(lì)您也對(duì)自己手頭的各種開源項(xiàng)目執(zhí)行類似的操作,以盡早發(fā)現(xiàn)那些易受攻擊的依賴項(xiàng)。

使用Syft和Grype

在包含了大量JAR文件的更復(fù)雜的項(xiàng)目中,您可以使用SyftGrype之類的工具。其中Syft是一個(gè)CLI(命令行接口)工具和Go語言庫(kù),可被用于從容器鏡像和文件系統(tǒng)中生成軟件物料清單(Software Bill of Materials,SBOM)。Grype則能夠通過多級(jí)嵌套,去掃描各個(gè)容器鏡像和文件系統(tǒng)中的漏洞。兩者可以協(xié)同使用。

使用LunaSec的工具

由開源的數(shù)據(jù)安全平臺(tái)開發(fā)的LunaSec工具,可以通過掃描目錄,以及匹配文件散列的方式,來發(fā)現(xiàn)是否存在Log4j依賴項(xiàng)的相關(guān)漏洞。該工具適用于Windows、Linux 和macOS系統(tǒng)。您只需在相關(guān)傳遞目錄,通過如下命令觸發(fā)該工具的掃描進(jìn)程即可:

  1. 純文本 
  2. log4shell scan your-project-dir 

如果目標(biāo)是一個(gè)易受攻擊的項(xiàng)目,那么你將會(huì)得到如下輸出內(nèi)容:

  1. 純文本 
  2. 10:04AM INF identified vulnerable path fileName=org/apache/logging/log4j/core/net/JndiManager$1.class path=test/struts-2.5.28-all/struts-2.5.28/apps/struts2-rest-showcase.war::WEB-INF/lib/log4j-core-2.12.1.jar versionInfo="log4j 2.8.2-2.12.0" 

使用log4j-scan

此外,FullHunt團(tuán)隊(duì)也提供了一個(gè)名為log4j-scan的開源工具。作為一個(gè)自動(dòng)且全面的掃描器,它可以被用于查找易受攻擊的Log4j主機(jī)。也就是說,它能夠方便團(tuán)隊(duì)掃描自己的基礎(chǔ)架構(gòu),并測(cè)試各種可能導(dǎo)致代碼執(zhí)行的WAF(Web應(yīng)用防火墻)繞過攻擊。該工具雖然能夠提供多個(gè)選項(xiàng),但是其最基本的服務(wù)是,用戶可以將待掃描的URL傳遞給該工具,以便直接獲得有關(guān)被檢測(cè)到的漏洞報(bào)告。例如,您可以使用如下命令:

  1. 純文本 
  2. python3 log4j-scan.py -u https://log4j.lab.secbot.local 

其掃描結(jié)果的輸出為:

使用Huntress Log4Shell漏洞測(cè)試器

作為一個(gè)在線式開源工具,Huntress Log4Shell漏洞測(cè)試器可以協(xié)助您檢查,某個(gè)應(yīng)用程序是否使用著Log4j的易受攻擊版本。您可以將該工具生成的字符串,作為待檢查應(yīng)用的輸入。例如,您可以在某個(gè)頁面的文本輸入框中使用它。該字符串可以包括針對(duì)LDAP服務(wù)器的JNDI(Java Naming and Directory Interface,Java命名和目錄接口)查詢。服務(wù)器會(huì)記錄來自應(yīng)用程序的各個(gè)請(qǐng)求,并顯示發(fā)出此類請(qǐng)求的IP地址。具體操作細(xì)節(jié),請(qǐng)參見演示視頻

小結(jié)

目前,有更多針對(duì)Log4j的工具正在涌現(xiàn)。作為安全從業(yè)人員,我建議您通過鏈接--https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-44228,關(guān)注各類安全專家發(fā)布的相關(guān)內(nèi)容。

正如我在上文中對(duì)MariaDB的JDBC連接器所進(jìn)行的操作,我同樣建議您將相關(guān)補(bǔ)丁,發(fā)送到任何正在使用Log4j的開源項(xiàng)目中,以及時(shí)發(fā)現(xiàn)并升級(jí)易受攻擊的版本。

原文標(biāo)題:How to Check if a Java Project Depends on A Vulnerable Version of Log4j,作者:Alejandro Duarte

【51CTO譯稿,合作站點(diǎn)轉(zhuǎn)載請(qǐng)注明原文譯者和出處為51CTO.com】

 

責(zé)任編輯:華軒 來源: 51CTO
相關(guān)推薦

2022-03-25 13:42:15

Log4j漏洞網(wǎng)絡(luò)安全

2021-12-14 23:44:26

漏洞Log4j項(xiàng)目

2021-12-23 09:47:36

Log4jRCE漏洞DoS漏洞

2022-01-24 10:02:53

漏洞微軟網(wǎng)絡(luò)攻擊

2021-12-23 11:03:25

Log4j 漏洞漏洞

2022-03-30 11:29:53

漏洞補(bǔ)丁Spring

2021-12-21 14:25:01

Log4j2漏洞網(wǎng)絡(luò)

2017-03-20 07:30:00

機(jī)器學(xué)習(xí)數(shù)據(jù)人工智能

2019-01-18 12:50:57

NoSQL數(shù)據(jù)庫(kù)Oracle

2021-12-24 09:52:31

Traefik Log4J 漏洞

2021-12-13 01:49:34

漏洞Log4j代碼

2021-12-22 16:53:31

Log4jLog4j庫(kù)零日漏洞

2022-01-02 07:07:55

CISAApache Log4漏洞

2021-12-29 14:47:43

Apache團(tuán)隊(duì)Log4j漏洞

2023-11-10 10:08:23

2022-01-06 09:52:39

Log4j漏洞攻擊

2021-12-11 19:04:38

漏洞

2021-12-23 19:20:43

漏洞賞金計(jì)劃漏洞log4j

2022-01-14 09:57:13

Log4j漏洞開源項(xiàng)目

2020-01-07 10:06:26

Slf4jLog4JLogback
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)