众所周知,至少有四个或五个 Log4j JAR 文件最终位于类路径中。我如何知道我使用的是哪个版本?
在得知我的服务器可能容易受到新的 Log4j 漏洞利用 (CVE-2021-44228) 后,我来到这里。所以我需要知道我是否安装了过时/易受攻击的 Log4j 版本 2。
此处以前的答案无助于检测旧版本,因为它们是为了让已经运行的 Java 代码找出该代码使用的 Log4j 版本,而我需要知道是否有任何 Java 应用程序可能使用易受攻击的版本。
这是我所做的:
sudo find / -name 'log4j*'
这列出了我的 (Linux) 服务器上的所有 Log4j 相关文件。这向我展示了几个 1.x 版本,它们不受此特定 CVE 的攻击,以及一个 2.15.0 文件,其中已经包含 CVE 的修复程序。
如果您运行它并找到具有 2.x 的文件或文件夹名称,其中 x <;15,那么你很可能容易受到攻击,需要弄清楚如何尽快更新你的文件。
我被警告说这不足以满足我的目的,因为 Log4j 文件可能隐藏在 find 命令不会发现的 .jar 文件中。
这是一个尝试扫描所有 .jar 文件的公共项目,以便在档案中也找到 Log4j 代码:Log4-detector