Log4j漏洞是很严重的问题。这个零日漏洞影响Log4j库,让攻击者可以在依赖Log4j写入日志消息的系统上执行任意代码。
该漏洞拥有最高的CVSS评分:10.0,因此您需要格外留意。
最大的问题之一是知道您是否容易受到攻击。Log4j可以通过多种方式加以部署,因此情况变得更为复杂。您将它用作Java项目的一部分、将它并入到容器中,将它连同发行版软件包管理器一同安装,如果是这样,您安装了哪些log4j软件包?还是说您是从源代码来安装它的?正因为情况很复杂,您甚至可能不知道自己的服务器是否容易受到攻击。
幸好,GitHub用户Rubo77针对Linux服务器创建了一个脚本,可用于检查含有容易受到攻击的Log4j实例的软件包。它处于测试版阶段,并非百分之百可靠,不过使用它是很好的起点。要明白,该脚本并不测试与应用程序一起打包的jar文件,因此它只是您开始剖析漏洞的一个起点而已。
我在一台我知道安装了容易受到攻击的Log4j软件包的服务器上测试了这个脚本,它正确地标记出该服务器易受攻击。下面介绍如何在您的Linux服务器上运行这同一个脚本,以查明自己是否容易受到攻击。登录到您的服务器并执行命令:
wget https://raw.githubusercontent.com/rubo77/log4j_checker_beta/main/log4j_checker_beta.sh -q -O - | bash
如果您的服务器容易受到攻击,该命令的输出会提供一些线索。如您所见(图A),我的实例含有liblog4j2-java版本2.11.2-1,该版本存在这个漏洞。在这种情况下,我应立即升级到2.15.0。如果无法安装升级版,问题会一直存在,直至给软件包打上补丁。
请记住,该脚本并非万无一失,而是一个很好的起点。即使您的服务器不易受到攻击,也要确保您已更新了每个必要的软件包,以避免受到该漏洞的影响。