大数据平台的Log4j 系列安全漏洞应对指南

举报
数据社 发表于 2022/09/25 02:01:19 2022/09/25
【摘要】 作者:明哥 来源:明哥的IT随笔 全文共2468个字,建议7分钟阅读 1. CDH/HDP/CDP 等大数据平台中如何快速应对 LOG4J2 的JNDI系列漏洞 在前段时间发表的博文 “CDH/HDP/CDP等大数据平台中如何快速应对LOG4J的JNDI系列漏洞” 中,我们描述了 CDH/HDP/CDP 等大数据平台中如...

20fdb168844c6e85015e799c160d5fa8.png

作者:明哥 来源:明哥的IT随笔

全文共2468个字,建议7分钟阅读

1. CDH/HDP/CDP 等大数据平台中如何快速应对 LOG4J2 的JNDI系列漏洞

在前段时间发表的博文 “CDH/HDP/CDP等大数据平台中如何快速应对LOG4J的JNDI系列漏洞” 中,我们描述了 CDH/HDP/CDP 等大数据平台中如何快速应对 LOG4J 的 JNDI 系列漏洞,其核心关键是:

  • 正式的最终修复方案:是等待大数据平台供应商如 Cloudera 提供的正式的修复包,但由于大数据平台供应商需要在大数据平台底层的多个开源组件都有了正式修复包后,才能整合测试并发包,所以一般进度相对落后;

  • 快速的临时修复方案:由于大数据平台底层的众多大数据组件,在使用 LOG4J 时,只使用了 LOG4J 的基本功能,并没有使用到 LOG4J 的 “JNDI Lookup plugin support” 功能,所以可以粗暴删除大数据平台底层众多JAR包中的危险类 JndiLookup.class;

  • 辅助工具包:Cloudera 在 GitHub 上提供了系列脚本,来辅助删除 CDH/HDP/CDP 等大数据平台上的危险类 JndiLookup.class,大家可以去 GITHUB 自行下载,GITHUB 下载链接如下:https://github.com/cloudera/cloudera-scripts-for-log4j.git

2. Flink 应用如何应对 LOG4J2 的JNDI系列漏洞

在前段时间发表的博文 “CDH/HDP/CDP等大数据平台中如何快速应对LOG4J的JNDI系列漏洞” 中,我们描述了大数据计算组件 FLINK,如何快速应对 LOG4J 的 JNDI 系列漏洞,其核心关键是:

  • Flink1.11 及以后版本,使用的是 LOG4J2.X系列,会受到上述JNDI系列漏洞影响;Flink 1.11 以前的版本,由于使用的是 LOG4J1.X 系列,不会受到上述JNDI系列漏洞影响;

  • flink 组件正式的修复方案是升级flink: 得益于 flink 社区快速及时的响应和修复,目前 flink 社区已经发布了针对 1.11/1.12/1.13/1.14 系列的修复版本,大家可以根据自己的情况,升级到同系列下最新版本即可修复该问题;

  • 如果线上应用因为各种原因,不能或不方便升级 Flink,大家仍可以采用临时修复方案,即删除JAR中 log4j-core 里的 JndiLooup.class,以达到禁用 JNDI 的效果;

bfe7af1695eca977bad48fdd4dc2e0a7.png image 4716099d7af05e2126b828e824c4b745.png image

3. SPARK 与 LOG4J 的系列安全漏洞

在前段时间发表的博文 “CDH/HDP/CDP等大数据平台中如何快速应对LOG4J的JNDI系列漏洞” 中,我们指出了:

  • spark 的最新版本是3.2.0,目前其依赖的还是log4j1.2.17,即log4j1.x系列,所以不受上述 LOG4J JNDI 系列漏洞影响 (截至到 01/19/2022)。

但这是否代表,SPARK 使用的 LO4GJ 就没有安全漏洞呢?答案是否定的。

  • 从以下 maven的官方截图可以看出,SPARK3.2 底层有多个安全漏洞,其中有两个是跟 LOG4J 相关的,即:CVE-2021-4104 和 CVE-2019-17571;(spark2.x 和spark3.x目前使用的都是 log4j1.x);

  • 点开连接,可以看到这两个CVE的级别,分别达到了 HIGH 和 Critical,所以同样是高风险,是需要应对的;1ec346f703b1d3d0a49e02085101ed90.png

4dff524f26bfb001cebfefba7c8ee34b.png image 5180c5914d4c3641c72b2ca987ddf39d.png image d320c8069c47420aba85092d7e48b570.png image fd599f799031a3b60d006b01384a41e5.png image

4. SPARK 应用如何应对 LOG4J 的系列安全漏洞

仔细分析下这两个高危漏洞 CVE-2021-4104 和 CVE-2019-17571:

  • CVE-2019-17571:Log4j 1.2 中包含一个 SocketServer 类,该类易受不可信数据反序列化的影响,当侦听不可信网络流量以获取日志数据时,该类可被利用与反序列化小工具结合使用以远程执行任意代码,这会影响从 1.2 到 1.2.17 的 Log4j 版本;

  • CVE-2021-4104:Log4j 1.2 中包含一个 JMSAppender 类, 该类易受不可信数据反序列化的影响,当攻击者对 LOG4J 配置文件有写权限时,可以通过更改配置文件指定使用 JMSAppender,达到类似 CVE-2021-44228 的远程执行任意代码的效果。(底层机制是通过指定 TopicBindingName 和 TopicConnectionFactoryBindingName,使得 JMSAppender 发起 JNDI 请求);

  • 当未使用 Log4j 的 SocketServer 类和 JMSAppender 类的功能时,不受此漏洞影响,亦即默认情况下只使用 Log4j local logging时,是不会触发风险的的;

  • 另外,Apache Log4j 1.2 系列在 2015 年8月份后,官方不再维护,各应用需要升级使用 LOG4J 2.X;

那么 SPARK 如何应对 LOG4J 的上述系列安全漏洞呢?

  • 不使用 Log4j 的 SocketServer 类创建 Socket 服务,同时也不主动使用 Log4j 的 JMSAppender,同时做好 LOG4J 的配置文件的权限管理,防止被篡改使用 JMSAppender;

  • 为彻底杜绝问题,也可以把问题类从jar包中删除掉:包含 org/apache/log4j/net/JMSAppender.class 和 org/apache/log4j/net/SocketServer.class;

  • 正式的永久解决方案:等待 SPARK 官方的升级修复包,Spark官方已经宣布将在Spark3.3.0 版本升级使用log4j2的2.x 系列,但该版本目前还没有正式发布;

85b1b19192af47ed3b78448014b7f8b7.png image

5. 附录参考链接

砖厂官方相关链接

log4j 官方相关链接

HPE 链接

CVE 问题复现链接

65ef17ce36030ee9355dd1326ee91466.png

企业数字化转型设计(107页PPT)


13ebfbdb8b78158cf6b53f097bf77cc0.png

「OneModel方法论」企业数据体系应该怎么规划?


84b2c02dc31b2b90348c1cfb6e492644.png

「数仓面试」如何确定主题域?


文章来源: dataclub.blog.csdn.net,作者:数据社,版权归原作者所有,如需转载,请联系作者。

原文链接:dataclub.blog.csdn.net/article/details/122632275

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。