好吧,我的问题是:
mvn依赖关系:树
不允许您遍历到底部的底部。检查这个:当我在我的pom.xml上执行mvn依赖:Tree
时,它会给出这样的内容:[INFO] | | +- io.quarkus:quarkus-core:jar:2.4.1.Final:compile
[INFO] | | | +- jakarta.enterprise:jakarta.enterprise.cdi-api:jar:2.0.2:compile
[INFO] | | | | \- jakarta.el:jakarta.el-api:jar:3.0.3:compile
[INFO] | | | +- jakarta.inject:jakarta.inject-api:jar:1.0:compile
[INFO] | | | +- io.quarkus:quarkus-ide-launcher:jar:2.4.1.Final:compile
[INFO] | | | +- io.quarkus:quarkus-development-mode-spi:jar:2.4.1.Final:compile
[INFO] | | | +- org.jboss.logging:jboss-logging:jar:3.4.2.Final:compile
[INFO] | | | +- org.jboss.logmanager:jboss-logmanager-embedded:jar:1.0.9:compile
[INFO] | | | +- org.jboss.logging:jboss-logging-annotations:jar:2.2.1.Final:compile
[INFO] | | | +- org.jboss.threads:jboss-threads:jar:3.4.2.Final:compile
[INFO] | | | +- org.jboss.slf4j:slf4j-jboss-logmanager:jar:1.1.0.Final:compile
[INFO] | | | +- org.graalvm.sdk:graal-sdk:jar:21.2.0:compile
现在我明白了,-
和\-
是用来替换的
和的
(但是直到5分钟前我发现它很混乱),所以它们不是未扩展的。但是,如果某些依赖项的pom使用log4j,我不做任何事情就安全了吗?例如,当我检查org.jboss.logging: jboss日志:jar: 3.4.2。最终:编译
在https://search.maven.org/artifact/org.jboss.logging/jboss-logging/3.4.2.Final/jar,我看到org.apache.logging.log4j: log4j-core: 2.11
被使用,但随后被排除在外。所以我知道Quarkus很安全。但是,我必须检查我在依赖树中找到的每一个jar的pom,以找出什么是使用的,什么不是?
这里有一些背景:https://nvd.nist.gov/vuln/detail/CVE-2021-44228
编辑:现在我想也许设置环境变量更好,所以它将一劳永逸地解决它。
请记住始终从下面列出的资源中查看最新信息
直接回答问题:
检查代码中的Log4J依赖项:
log4j-core-2匹配的JAR文件。([0-9] \.){1,2}jar
(将检测易受CVE-2021-45046…CVE-2021-44228…CVE-2021-45105攻击的版本)。如果您还想检测旧版本(它们有自己的严重性CVE,也需要升级),那么REGEX将只是log4j
,您必须手动确定哪些特定JAR是易受攻击的。在运行应用程序时检测Log4J的使用(是否在容器中并不重要):
供应商建议
。在列表中搜索您正在运行的任何软件/插件。如果您正在运行列表中的内容,并且有可用的更新,请更新。漏洞检测
。使用那里的工具。如果检测到漏洞,请进行补救。 漏洞检测
。使用那里的工具。这些将检测您是否已经受到攻击。如果您检测到您有,然后进行补救并在必要时对该攻击做出响应。更多资源
补救措施:
CVE-2021-45046。。。CVE-2021-44228。。。CVE-2021-45105
虽然大多数需要知道的人可能已经知道了足够多的知识来做他们需要做的事情,但我想我还是会把这个放在以防万一。。。
基本上是
zip
命令。. zip
. zip
扩展)\\path\\to\\unzippeFolder\\org\\apache\\log\\log4j\\core\\lookup\\JndiLookup.class
如果您只需要处理1或2个JAR文件,并且您不介意安装7-zip,或者您可以使用PowerShell来完成这项工作,那么这是很好的。但是,如果您有很多JAR文件,或者如果您不想安装7-zip并且无法访问Power Shell,那么我创建了一个开源VBS脚本,它将为您完成此任务,而无需安装任何其他软件。https://github.com/CrazyKidJack/Windowslog4jClassRemover
阅读自述和发行说明https://github.com/CrazyKidJack/Windowslog4jClassRemover/releases/latest
我们面临的情况是,我们正在基于Red Hat JBoss AMQ 6构建一个应用程序,foo
。使用jib maven插件,我们的代码将被内置到一个uber jar中,并放在/opt/xxx
下执行,而基础映像将把其他jar放在/opt/amq/lib
下的映像中。
对于我们的代码,我们做到:
mvn dependency:tree | grep log4j
我们发现其他团队的一些dep带来了传递log4j 1.17左右。另一个团队会处理它;在此之前,作为一种解决方案,我们将在我们的内部构件中手动从jar中删除JMSAppender.class
和SocketServer.class
,以便从那里下载的每个jar会缺少类文件。
在包含log4j的基本映像中查找其他库则更为复杂。我必须先找出图像中的内容。我首先docker保存
官方的amq63 OpenShift映像到tarball中;然后,我提取罐子并使用grep
搜索罐子。
docker save <image-name> -o amq63.tar
提取tar,输入每个层的文件夹,并使用以下脚本:
#!/bin/bash
for f in $(find . -name "*.jar"); do
echo $f
jar -tvf $f | grep -E "(*JMSAppender*.class|*SocketServer.class|*log4j*.class)"
if [[ $? -eq 0 ]]; then
# only uncomment these lines after confirmation!
#echo Removing class file from $f
#zip -d $f "*JMSAppender.class" "*SocketServer.class" "*SimpleSocketServer.class"
fi
done
检查发现的一些罐子,它们也可能受到漏洞的影响。也许JMSAppender.class也应该从那里删除。我发现jib maven插件可以从本地tar
文件加载图像,如tar://path/to/file.tar
,所以我们可以修改图像taramq63.tar
并再次构建。所以,如果它在Target
中,就像tar://Target/amq63.tar
一样。如果是绝对路径,则为:tar:///home/me/amq63.tar
。
此外,我们还应该更改配置文件的访问权限,使其成为只读的。
编辑:而且,如果你想从正在运行的pod中编辑jar,它将不起作用,因为你需要重新启动来再次加载类文件,但是pod不能重新启动;它们是不可变的;配置映射更改将持续,但状态在豆荚不会。
我使用的是带有Scala 2.12的Databricks群集版本7.3 LTS。这个版本确实使用Log4J。 官方文件说它使用Log4J版本。这是否意味着我没有这个漏洞?如果我这样做了,我可以在集群上手动修补它,还是需要将集群升级到下一个LTS版本?
如何确认elasticsearch版本是否暴露log4j漏洞?我的elasticsearch版本是6.8.4
log4j中最近存在一个漏洞https://nvd.nist.gov/vuln/detail/CVE-2021-44228其临界值为10 如何检查gradle中是否存在Log4j易受攻击的版本,以便列出所有依赖项,包括可传递依赖项?
正如我们在新闻中看到的,针对流行的库报告了一个新的零日漏洞,该漏洞允许攻击者远程执行代码。在我们的应用程序中,我们仍然使用以下依赖项。 是否仅针对报告该问题?或适用于版本是否也是?是否有测试该漏洞的示例代码?
关于已经在CVE-2021-44228发现的Log4j JNDI远程代码执行漏洞-(另见参考文献)-我想知道Log4j-v1.2是否也受到影响,但是我从源代码审查中得到的最接近的是JMS-Appender。 问题是,虽然互联网上的帖子表明Log4j 1.2也存在漏洞,但我找不到相关的源代码。 我是否遗漏了其他人已经确认的东西? Log4j 1.2在socket server类中似乎有一个漏洞,但我
如何检测SonarQube LTS 8.2版本中的log4j漏洞。 我尝试了这个社区参考,但是找不到8.2版本的。 https://community.sonarsource.com/t/sonarqube-sonarcloud-and-the-log4j-vulnerability/54721