作者:Matteo Merli,StreamNative CTO,Apache Pulsar PMC 主席;Addison Higham,StreamNative 主管工程师,Apache Pulsar Committer。
本文译自 StreamNative 英文博客,原文链接:https://streamnative.io/blog/...,更多详情请参考 StreamNative 公众号。
此文于本周二更新,详细添加了最新的 Log4j 漏洞如何影响其他 Pulsar 生态系统工具的详细信息。
上周末,Apache 开源项目 Log4j 2.16.0 被曝出新的漏洞,Log4j 紧急发布 2.17.0 版本。本文为大家提供最新版 Apache Pulsar 有关 Log4Shell 关键漏洞(即 log4j)的更新。以下列举了开源版本 Apache Pulsar 中漏洞的状态,以及需要解决安全漏洞所需采取的措施。
漏洞影响与项目状态更新
目前总共发现了三个影响 log4j 的 CVE。在这三个漏洞中,默认情况下只有两个影响 Apache Pulsar。Pulsar 社区一直在努力修补所有三个 CVE 造成的漏洞影响。截至目前,Pulsar 版本 2.9.1 和 2.8.2 已更新 log4j 版本并解决所有已知漏洞造成的影响。Pulsar 2.7 和 2.6 的新版本发布正在进行中。下表总结了 log4j 漏洞的影响和解决漏洞影响的操作。
解决方案
非标准 log4j / Pulsar Functions 和进程运行时用户解决方案
如上所示,如果用户配置了 customer log4j 模板字符串或通过进程运行时(Process Runtime)使用 Pulsar Functions,即使配置了 no message lookup 解决措施,外部也可以利用 log4j 进行漏洞攻击。总而言之,如果用户已将 log4j 模板字符串配置为包含对上下文对象($${ctx:}
、%x
、%mdc
等)的引用,或者通过进程运行时使用 Pulsar Functions,那么你的系统可能面临风险。我们建议用户删除自定义设置,如果必须通过进程运行时使用 Pulsar Functions 的话则升级到 Pulsar 2.8.2 或 2.9.1 版本。
Pulsar Functions 用户解决方案
用 Java 编写的 Pulsar Functions 需要重新部署来获得更新的值。该操作类似于使用 pulsar-admin functions update 命令,示例请参阅 https://pulsar.apache.org/doc...。
Apache Pulsar 开源版本解决方案
如果您使用的是开源版本 Pulsar,请参阅博客文章。此外,我们鼓励您尽可能升级到 2.8.2 或 2.9.1 版本。此外,开源或 StreamNative Helm charts 的用户不需要等待 helm chart 中的镜像更新,可以指定新版本。
周边生态相关更新
以下我们罗列了 Pulsar 生态系统中一些工具,并针对其是否受到影响进行解答。
- Pulsar Manager - Pulsar Manager 不受 log4j 漏洞的直接影响。Pulsar Manager 是使用 spring 框架构建的,它使用 logback 进行日志记录。Logback 也受到漏洞的影响,但与 log4j 漏洞不同的是,它需要权限直接编辑 logback 配置文件,这大大降低了问题的严重性。我们将在 spring 发布修复版本后发布 Pulsar Manager 新版本。
- Pulsar Spark/Flink Connector - Pulsar 的 Apache Flink 和 Apache Spark Connector 都不会直接受到影响。两个 Connector 都不直接包含 log4j,而是基于你所用的 Flink 或 Spark 发布版本中绑定的 log4j。升级 Flink 或 Spark 将解决这个问题。
- Pulsar IO Connector - Pulsar IO 中的 Connector(默认情况下)本身不包含 log4j,而是依赖于 Pulsar IO 框架提供的 log4j。按照上文说明并重新部署 Connector 将解决漏洞问题。本建议适用于 Pulsar 中包含的所有 Connector 以及 StreamNative 开源并支持的Connector。自己定制开发的 Connector 可能需要独立验证。
其他有关 log4j 安全漏洞的 FAQ
- 本次安全漏洞的严重程度。
潜在的问题可能非常严重,远程代码执行 (RCE) 漏洞会使任意代码严重暴露系统受到攻击者造成的更多破坏,从而可能获得完整的系统访问权限。目前未发现针对 Apache Pulsar 的已知 RCE 漏洞利用。但是,我们仍建议重视此问题,因为执行代码的机制很复杂,并且存在许多潜在的可能性。暴露环境变量或其他环境数据都有可能造成攻击。Apache Pulsar 社区 强烈建议用户立即采取措施。
- 开源版本的发布为何需要较长时间?
发布开源 Pulsar 新版本涉及遵循社区中明确定义的流程。由于在过去一周发现了其他漏洞,社区 / Pulsar PMC(项目管理委员会)决定多次重新启动发布流程,以包含最新版本的 log4j 来解决所有未解决的问题。
其他有关 log4j 安全漏洞的 FAQ
Apache Pulsar 针对 Log4j2 漏洞 (CVE-2021-44228) 的解决方案
关注公众号「Apache Pulsar」,获取干货与动态
加入 Apache Pulsar 中文交流群 👇🏻
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。