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

Uri*_*Uri 69 security ubuntu log4j

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

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

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

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

rub*_*o77 49

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

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."
Run Code Online (Sandbox Code Playgroud)

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

或者更好地检查并运行来自 GitHub 的增强脚本,该脚本还会在打包的 Java 文件中进行搜索。排成一行运行

wget https://raw.githubusercontent.com/rubo77/log4j_checker_beta/main/log4j_checker_beta.sh -q -O - | bash   
Run Code Online (Sandbox Code Playgroud)

我不确定是否可以在没有安装 java 的情况下在服务器上运行已编译的 Java 程序?

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


GitHub上也有很多开发内容,您可以在其中找到攻击和对策。


这对我来说需要很多时间。我正在寻找可以转让 GitHub 上存储库所有权的人

  • 我很高兴搜索允许使用运行随机远程脚本的 bash 行执行随机远程脚本的漏洞实例。 (66认同)
  • 这与 Tero Kilkanen 提供的答案具有相同的警告。并且仅仅因为 Java 不在路径上并不能确保它没有安装。 (4认同)
  • Lunasec 有很好的信息。他们还发布了易受攻击的 log4j 二进制类的哈希值,以便您可以扫描 .jar 和 .war 文件来查找它们。https://www.lunasec.io/docs/blog/log4j-zero-day-mitigation-guide/ (4认同)
  • @Uri 您安装了使用 log4j 的应用程序的可能性_非常非常高_。Log4j 在 Java 世界中非常非常常见,并且 Java 是一种非常非常常见的语言。 (3认同)
  • locate可能使用过时的数据,您应该首先执行updatedb (2认同)
  • **这对我来说需要很多时间。我正在寻找可以转让 GitHub 上存储库所有权的人** (2认同)

Ger*_*der 27

没有任何命令可以肯定地告诉你这一点。有些应用程序将它们直接作为 jar 文件提供的库,有些应用程序将它们包含在存档中。

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


小智 10

试试这个命令:

  • dpkg -l | grep liblog4j

  • dpkg -l | grep log4

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

  • locate log4j | grep -v log4js

  • @JanDorniak 我不认为是这样。他们的想法是找到所有提及的“log4j”,但排除“log4js”。 (5认同)

小智 6

我编写了这个 Python 脚本来查找系统上易受攻击的 Log4j2 版本:https://github.com/fox-it/log4j-finder

它的工作原理是递归扫描磁盘和内部 Java 存档文件并查找已知的错误文件。