如何检查我的服务器上是否安装了 Log4j?

如何检查我的服务器上是否安装了 Log4j?

我读过有关 Log4j 的安全漏洞。

如何检查我的服务器上是否安装了 Log4j?我的具体服务器使用Ubuntu 18.04.6 LTS

我已经安装了许多第三方软件包,其中可能有一些包含它。

是否有一个命令可以在我的服务器上运行来检查 Log4j 是否已安装?

答案1

尝试这个脚本来获取提示:

echo "checking for log4j vulnerability..."
OUTPUT="$(locate log4j|grep -v log4js)"
if [ "$OUTPUT" ]; then
  echo "[WARNING] maybe vulnerable, those files contain the name:"
  echo "$OUTPUT"
fi
OUTPUT="$(dpkg -l|grep log4j|grep -v log4js)"
if [ "$OUTPUT" ]; then
  echo "[WARNING] maybe vulnerable, dpkg installed packages:"
  echo "$OUTPUT"
fi
if [ "$(command -v java)" ]; then
  echo "java is installed, so note that Java applications often bundle their libraries inside jar/war/ear files, so there still could be log4j in such applications."
fi
echo "If you see no output above this line, you are safe. Otherwise check the listed files and packages."

确保您的定位数据库是最新的updatedb

或者最好检查并运行来自 GitHub 的增强脚本哪个还会在打包的 Java 文件中进行搜索. 在一行中运行

wget https://raw.githubusercontent.com/rubo77/log4j_checker_beta/main/log4j_checker_beta.sh -q -O - | bash   

我不确定是否可以在未安装 Java 的服务器上运行已编译的 Java 程序?

或者甚至是编译版本,其中的源文件甚至不再能在打包的档案中找到?


还有很多发展GitHub,在这里你可以找到攻击和对策。


这对我来说太耗时了。我正在寻找可以转让 GitHub 上存储库所有权的人

答案2

没有命令可以肯定地告诉您这一点。有些应用程序直接将它们使用的库作为 jar 文件发送,有些则将它们包含在存档中。

即使如此,您也不知道发布了哪个版本以及该版本是如何使用的。确保缓解 CVE 的唯一方法是阅读应用程序的安全公告和发行说明并遵循其建议。

答案3

尝试这个命令:

  • dpkg -l | grep liblog4j

  • dpkg -l | grep log4

  • find / -name log4j-core-*.jar

  • locate log4j | grep -v log4js

答案4

log4jscanner

log4jscanner 由 Google 根据 Apache-2.0 许可证发布,是一个 log4j 漏洞文件系统扫描器和用于分析 JAR 文件的 Go 包。

相关内容