【问题标题】:Elasticsearch 5.6.16 patch log4j with 2.16Elasticsearch 5.6.16 用 2.16 修补 log4j
【发布时间】:2022-01-19 02:09:46
【问题描述】:

由于 log4j 漏洞,我需要修补无法立即更新的 elasticsearch 5.6.16 实例。

docker镜像使用:

  • /usr/share/elasticsearch/lib/log4j-core-2.11.1.jar
  • /usr/share/elasticsearch/log4j-core-2.11.1.jar

elasticsearch 5.6.16 可以与 log4j-core-2.16 一起使用吗?

用可以在这里找到的核心 jar 替换两者的正确方法是 https://repo1.maven.org/maven2/org/apache/logging/log4j/log4j-core/2.16.0/ 吗?

【问题讨论】:

    标签: elasticsearch log4j


    【解决方案1】:

    根据official security announcement,如果你在5.6.16上运行,你不需要升级Log4J,只需设置following JVM option

    -Dlog4j2.formatMsgNoLookups=true
    

    作为额外的缓解措施,您还可以使用以下方法从 log4j JAR 中删除 JndiLookup 类:

    zip -q -d <ES_HOME>/lib/log4j-core-2.* org/apache/logging/log4j/core/lookup/JndiLookup.class
    

    【讨论】:

    • 不幸的是,-Dlog4j2.formatMsgNoLookups=true 不再完全安全了 lists.apache.org/thread/83y7dx5xvn3h5290q1twn16tltolv88f。我现在已经删除了这个类,但想知道为什么这不会以错误结束。如何在运行应用程序时删除代码而不遇到异常?
    • 您引用的链接提到该选项不适用于“某些非默认配置”,因此如果您的配置是默认配置,您可以安全地应用它。至于删除 JndiLookup 类,这是一个 hack,但这是 Elastic 在他们最新的补丁版本中所做的。
    【解决方案2】:

    我们正在使用 Elastic Search 7.1.1 并且我们成功升级到 2.16 log4j 版本。确保交换 Core 和 Api jar 并重新启动服务器。它会起作用的。如果您尝试删除 JNDIlookup 类,它会失败。

    我们在所有车道上都做到了,而且它的工作和稳定

    【讨论】:

    • 太好了,很高兴知道!谢谢!
    【解决方案3】:

    我们在 ElasticSearch 版本 6.3.1 中使用了以下内容。我们必须从 log4j-core-*.jar 文件中删除 JndiLookup.class 漏洞类。

    如果您使用 Elasticsearch 5.0.0-5.6.10 和 6.0.0-6.3.2,则必须按照官方链接执行以下步骤。

    https://discuss.elastic.co/t/elasticsearch-5-0-0-5-6-10-and-6-0-0-6-3-2-log4j-cve-2021-44228-cve-2021-45046-remediation/292054

    【讨论】:

      猜你喜欢
      • 2022-01-20
      • 2022-01-19
      • 1970-01-01
      • 1970-01-01
      • 2022-01-18
      • 2022-01-16
      • 2022-01-17
      • 2021-09-03
      • 1970-01-01
      相关资源
      最近更新 更多