如何检查Java项目是否依赖于有漏洞的Log4j-600学习网

600学习网终身会员188,所有资源无秘无压缩-购买会员

[51CTO.com快速翻译]正如我们所知,它被定义和跟踪为

CVE-2021-44228,也称为Log4Shell中的Log4j漏洞,允许攻击者在目标系统中执行任意代码。因此,如果您的应用程序使用的是Log4j 2.0-alpha1到2.14.1,则应尽快将其更新到最新版本(当前为2.16.0)。

在这方面,瑞士政府发布了一个流程图,可以很好地解释这种脆弱姓。请参见下图:

慕课、黑马、极客时间、小码哥、拉钩、尚硅谷、开课吧等千套课程打包VIP套餐,IT课程一网打尽

接下来,让我们深入研究与上图相关的缓解策略。

在Maven项目中,您可以使用以下简单命令在依赖树中搜索log4j核心的相关依赖项,并检查项目是否使用了受影响的依赖项。

此命令使用Maven依赖插件显示项目的依赖树(包括具有传输关系的各种依赖)。命令通过以下参数过滤并输出log4核心的依赖项。因此,如果您的项目依赖于易受攻击的Log4j版本,您将看到以下内容:

慕课、黑马、极客时间、小码哥、拉钩、尚硅谷、开课吧等千套课程打包VIP套餐,IT课程一网打尽

在这个例子中,我们可以从输出中看到项目直接使用Log4j版本2.14.1。显然,它是易受攻击的。因此,此项目需要包含以下依赖项:

替换为:

同样,我在MariaDB数据库的JDBC连接器项目中进行了以下测试,并获得了相应的结果:

慕课、黑马、极客时间、小码哥、拉钩、尚硅谷、开课吧等千套课程打包VIP套餐,IT课程一网打尽

幸运的是,这个项目不使用Log4j,因此它不易受到Log4Shell攻击。有关MariaDB具体案例的更多信息,请参阅https://dzone。com/articles/is-the-mariadb-jdbc-driver-profected-by-the-log4j-v。

如果您想做进一步的调查,您需要检查有效的POM(项目对象模型)并搜索项目中使用的日志框架。现在让我们将注意力转向MariaDB JDBC连接器项目。我使用Maven的帮助插件来生成有效的POM。因为我使用类似Unix的操作系统(从屏幕截图中可以看到它实际上是macOS),所以我使用以下grep命令(在Windows中,可以使用findstr)来过滤输出:

从mvn获得以下输出:

慕课、黑马、极客时间、小码哥、拉钩、尚硅谷、开课吧等千套课程打包VIP套餐,IT课程一网打尽

从输出中可以看出,MariaDB JDBC驱动程序使用Logback作为日志框架。虽然Logback不会受到Log4Shell的影响,但它包含1.2.8和1.3.0-alpha11中的相关漏洞。我检查了它的连接器版本,它是1.3.0-alpha10。虽然Logback作为测试依赖包含在MariaDB驱动程序中,但我在GitHub上发送了一个pull请求来更新它。在这里,我鼓励您对手中的各种开源项目执行类似的操作,以尽早找到易受攻击的依赖项。

在包含大量JAR文件的更复杂的项目中,可以使用Syft和Grype等工具。Syft是一个CLI(命令行界面)工具和Go语言库,可用于从容器映像和文件系统生成软件物料清单(你好OM)。Grype可以通过多级嵌套扫描各种容器图像和文件系统以查找漏洞。这两者可以一起使用。

由开源数据安全平台开发的LunaSec工具可以通过扫描目录和匹配文件哈希来发现是否存在与Log4j依赖相关的漏洞。此工具适用于Windows.Linux和macOS系统。您只需通过以下命令触发相关传输目录中工具的扫描过程:

如果目标是易受攻击的项目,您将获得以下输出:

此外,FullHunt团队还提供了一个名为log4j扫描的开源工具。作为一个自动和全面的扫描仪,它可以用来查找易受攻击的Log4j主机。换句话说,它可以帮助团队扫描自己的基础设施并测试各种WAF(Web应用防火墙)绕过可能导致代码执行的攻击。尽管该工具可以提供多个选项,但其最基本的服务是用户可以将要扫描的URL传递给该工具,以便他们可以直接获得关于检测到的漏洞的报告。例如,可以使用以下命令:

其扫描结果的输出为:

<img src="https://mp.ofwee

免责声明: 1、本站信息来自网络,版权争议与本站无关 2、本站所有主题由该帖子作者发表,该帖子作者与本站享有帖子相关版权 3、其他单位或个人使用、转载或引用本文时必须同时征得该帖子作者和本站的同意 4、本帖部分内容转载自其它媒体,但并不代表本站赞同其观点和对其真实性负责 5、用户所发布的一切软件的解密分析文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。 6、您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。 7、请支持正版软件、得到更好的正版服务。 8、如有侵权请立即告知本站,本站将及时予与删除 9、本站所发布的一切破解补丁、注册机和注册信息及软件的解密分析文章和视频仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。
600学习网 » 如何检查Java项目是否依赖于有漏洞的Log4j-600学习网