由于 log4shell 漏洞,我想搜索并找出我的 Java 專案是直接實作還是通過依賴項實作 log4j,以及哪個版本。
我有例如。使用這些依賴管理工具的專案:
- Maven專案
- 常春藤專案
- 沒有依賴管理的舊遺留專案
如何在這些型別的依賴管理工具上做到這一點?
有關漏洞的詳細資訊(包括緩解步驟):
CVE-2021-44228
Apache Log4j 安全漏洞
uj5u.com熱心網友回復:
您可以從專案中的命令列運行 Maven 依賴樹:
mvn dependency:tree
在輸出中搜索log4j. 如果您找到它,則可能意味著您的專案直接包含log4j,或者另一個依賴項log4j作為傳遞依賴項包含在內。
uj5u.com熱心網友回復:
如果你使用 maven 和 linux,你可以運行:
mvn dependency:tree | grep log4j
這將檢查您的依賴項并僅在您將 log4j 作為依賴項時才顯示結果
如果它是一個傳遞依賴,并且你想檢查它來自的依賴,你可以使用:
mvn dependency: tree | grep -B20 log4j
會在螢屏上顯示log4j之前的20行,如果還是看不到主要依賴是哪里來的,可以從20增加到50,依此類推直到找到
uj5u.com熱心網友回復:
到目前為止,我對https://github.com/anchore/syft和https://github.com/anchore/grype提供的內容感到滿意。這些工具列出了給定 docker 鏡像或包含代碼的目錄的所有代碼依賴項 - 獨立于堆疊!易于設定和快速執行。
雖然它與 Java 無關,但比基于 maven 的解決方案的特定問題更通用。所以,它是否有用取決于你。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/386421.html
