问题描述
上下文:我们使用2.6.3版本的com.microsoft.azure:applicationinsights-logging-log4j1_2来插装我们的scala代码。不幸的是,这取决于1.2.17版本的log4j:log4j。1.2.17版本的log4j:log4j存在严重的安全漏洞(ref:https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2019-17571)问题是:Log4j 1.2中包含的SocketServer类容易受到不受信任数据的反序列化攻击,当侦听日志数据的不受信任的网络通信量时,当与反序列化小工具结合使用时,可以利用该类来远程执行任意代码。这会影响1.2至1.2.17的Log4j版本
解决方案是迁移到org.apache.logging.log4j:log4j-core问题:1)应用程序洞察JAR是否使用SocketServer类?2.)这是一个已知的漏洞吗?3.)我们有哪些选项可以获得使用最新版本org.apache.logging.log4j:log4j-com.microsoft.azure:applicationinsights-logging-log4j1_2的新版本核心如有任何帮助,我们将不胜感激。
SocketServer
类是推荐答案服务器,您可以在单独的JVM中运行它,以便从应用程序中的SocketAppender
接收消息。Log4j库中的任何其他类都未使用它。
另一方面,applicationinsights-logging-log4j1_2
是一个非常小的JAR(2个类),它提供一个ApplicationInsightsAppender
以允许Log4j 1.2将日志发送到Application Insights。
您可以安全地使用此附加器和所有标准附加器(包括SocketAppender
),而不会出现CVE-2019-17571中描述的问题。
迁移到Log4j 2.x
显然建议迁移到Log4j 2.x,但原因完全不同:它受支持并且提供了许多新功能。
项目applicationinsights-logging-log4j2
包含ApplicationInsightsAppender
的一个版本,可与Log4j 2.x一起使用。
这篇关于Com.microsoft.azure:applicationinsights-logging-log4j1_2--取决于易受攻击的log4j:log4j:JAR:1.2.17版本的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!