如果未安装Java,您是否可以安全地使用log4j CVE-2021-44228?

8wigbo56  于 2022-11-23  发布在  Java
关注(0)|答案(2)|浏览(195)

我已经阅读了很多关于这个问题有多严重的资料,并了解了在我们公司正在生产的代码中找到它的可用选项,以及更新使用易受攻击版本的服务器。
我找不到的是,如果一个特定的服务器没有安装Java,也就是说,如果我以root身份登录并运行java -version,并获得java: command not found,这个服务器是否完全安全,不会出现这个问题,所以我可以继续前进?
我最初的直觉是:没有Java-没有问题。2但是,GitHub发布了一个更新,说明他们的企业服务器:
关键:Log4j库中存在一个远程执行代码漏洞,标识为CVE-2021 - 44228,该漏洞会影响3.3.1之前的所有GitHub Enterprise Server版本。Log4j库用于GitHub Enterprise Server示例上运行的开放源代码服务。此漏洞已在GitHub Enterprise Server 3.0.22、3.1.14、3.2.6和3.3.1。有关更多信息,请参阅GitHub博客上的这篇文章。
但是他们的企业服务器上没有安装Java。
我猜这个有问题的服务一定是在一个Docker容器中运行的Java,所以我想我需要考虑机器上的Java或者在容器中运行的Java。
是否还有其他我没有考虑到的隐藏方式可以运行这个log4j进程?

bvn4nwqk

bvn4nwqk1#

log4j2是一个必须被运行的java进程使用的库,它是易受攻击的。但是你是对的,检查java命令是否安装到命令行是不够的。
以下是两个选项(不完整),说明如果命令行上没有java命令,您的系统如何仍然容易受到攻击。

  • 可以将Java下载到某个目录中,而无需将java命令或目录添加到可执行文件PATH中。通过使用. bash(或. bat)脚本,指向下载的java版本的java进程仍然可以启动。但是,如果未将目录添加到路径中,则不会启用java命令。
  • Java可能在Docker容器内运行。Java命令只能在Docker容器内使用,但从外部不可见。我不确定是否需要额外的漏洞利用来突破容器,如果不需要额外的努力就可以轻松做到这一点。
50few1ms

50few1ms2#

我还没有一个完整的答案,但非常肯定的是你是不安全的,即使Java没有安装,Docker没有安装,Java没有运行在进程列表中,Java没有在你的yum/apt安装的应用程序列表中。
我没有考虑过的一个明显的例子是Java作为JRE添加到应用程序中。
我们拥有的Coverity平台服务器未安装Java,但Java正在运行,例如ps -ax | grep java

/home/coverity/cov_platform-2021.9.0/jre/bin/java -Djava.awt.headless=true -Djdk.tls......

确定JRE中是否包含Log4j的易受攻击版本要困难得多。
此外,仅仅检查进程列表也是不够的,在这种情况下,进程列表包含java,但是Java可能仅在由另一进程触发时才运行,例如cronnginx等。

相关问题