龙空技术网

一条命令迅速排查大量服务器是否存在Apache Log4j2漏洞风险

IT老良 4029

前言:

现时小伙伴们对“linux检测apache”可能比较关怀,小伙伴们都想要剖析一些“linux检测apache”的相关文章。那么小编也在网络上搜集了一些有关“linux检测apache””的相关资讯,希望你们能喜欢,我们一起来了解一下吧!

最近,搞IT的小伙伴们我想都知道Apache被爆出来的这个Log4j2远程代码执行漏洞,这个漏洞可以说影响范围极广,危害性非常强,所以大家一定要小心!Apache Log4j2是一个基于Java的日志记录工具,当程序将用户输入的数据进行日志记录时,即可触发此漏洞,成功利用此漏洞可以在目标服务器上执行任意代码。那么,我们如何快速地排查我们运行着的服务器是否存在这个Log4j2漏洞风险呢?本人当时一出来这个漏洞告警第一时间就排查出来了,可以说一条命令就得出结论,排查出我们大量服务器是否存在Apache Log4j2远程代码执行漏洞!!!本篇就来介绍一下本人的排查思路,大家可以参看一下哈~

最简单的思路是查看服务器是否存在Log4j组件,那么Linux运维工程师们一条命令如下:

find / -name "*log4j-*.jar"

我们查找有没有存在这个log4j包的路径就行了,如果有的话就深入分析自己运行的版本是否有影响,现在受影响的版本是Apache log4j2 2.0 - 2.14.1的版本。

那么如果只有少量服务器还好,有大量成百上千的服务器一台台去查看不得累死,所以就得有批量执行查看的思路,本人这里就采用了Ansible这款批量自动化运维神器了,在Ansible主机上执行命令如下:

ansible Linux -m command -a "find / -name '*log4j-*.jar'"

这条命令后,被ansible管理的所有远程主机会全部执行find命令后搜索显示结果,这样我们是不是第一时间就可排查出来了。

如果大家要确认服务器运行着的Log4j到底是否有影响,这里有个脚本可以排查,下载链接如下:,脚本原理是首先通过读取系统中所有打开的文件,来读取所有加载了的log4j的jar包,然后识别log4j 2.x的jar包文件名特征来识别出结果,如果没检测出来,则对其他jar包进行正则匹配 log4j-core,看是否有引用该jar包,如果显示 jar包路径,则说明存在该漏洞,没有则说明没有直接加载log4j对应jar包。

以下运行结果表示不存在log4j2漏洞风险。

以下运行结果表示存在log4j2漏洞风险,可以看到运行的log4j版本为2.13.3为受影响的版本。

接下来我们通过Ansible批量执行这个shell脚本命令如下:

ansible Linux -m script -a "/root/log4j-check.sh"

最后,我们所有的服务器运行log4j情况是不是就一目了然地展现出来了,就可以迅速排查出log4j2漏洞风险了。

大家学会了吗?其实最关键的一点就是我们要有个批量自动化运维的思路了,并且学会这种技能,当遇到这种紧急情况的时候,只要在控制端一条命令就可以迅速排查结果,本人之前也写了《Ansible自动化运维从入门到实战》这份专栏,有兴趣的小伙伴可以关注一下咯~

标签: #linux检测apache #查看服务器apache版本 #linux检测是否安装apache