SPARK 应用如何快速应对 LOG4J 的系列安全漏洞

简介: SPARK 应用如何快速应对 LOG4J 的系列安全漏洞

image.png

大家好,我是明哥!

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 的效果;

640.png

640.png

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,所以同样是高风险,是需要应对的;
  • 640.png640.png

640.png


640.png


640.png


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 系列,但该版本目前还没有正式发布;

640.png

5. 附录参考链接

砖厂官方相关链接

log4j 官方相关链接

HPE 链接

CVE 问题复现链接


相关实践学习
基于MaxCompute的热门话题分析
Apsara Clouder大数据专项技能认证配套课程:基于MaxCompute的热门话题分析
相关文章
|
分布式计算 数据处理 Apache
Spark和Flink的区别是什么?如何选择?都应用在哪些行业?
【10月更文挑战第10天】Spark和Flink的区别是什么?如何选择?都应用在哪些行业?
1850 1
|
6月前
|
SQL 人工智能 监控
SLS Copilot 实践:基于 SLS 灵活构建 LLM 应用的数据基础设施
本文将分享我们在构建 SLS SQL Copilot 过程中的工程实践,展示如何基于阿里云 SLS 打造一套完整的 LLM 应用数据基础设施。
1412 84
|
11月前
|
SQL 分布式计算 Serverless
鹰角网络:EMR Serverless Spark 在《明日方舟》游戏业务的应用
鹰角网络为应对游戏业务高频活动带来的数据潮汐、资源弹性及稳定性需求,采用阿里云 EMR Serverless Spark 替代原有架构。迁移后实现研发效率提升,支持业务快速发展、计算效率提升,增强SLA保障,稳定性提升,降低运维成本,并支撑全球化数据架构部署。
1173 56
鹰角网络:EMR Serverless Spark 在《明日方舟》游戏业务的应用
|
运维 监控 Cloud Native
一行代码都不改,Golang 应用链路指标日志全知道
本文将通过阿里云开源的 Golang Agent,帮助用户实现“一行代码都不改”就能获取到应用产生的各种观测数据,同时提升运维团队和研发团队的幸福感。
719 133
|
机器学习/深度学习 存储 监控
Elasticsearch 在日志分析中的应用
【9月更文第2天】随着数字化转型的推进,日志数据的重要性日益凸显。日志不仅记录了系统的运行状态,还提供了宝贵的洞察,帮助企业改进产品质量、优化用户体验以及加强安全防护。Elasticsearch 作为一个分布式搜索和分析引擎,因其出色的性能和灵活性,成为了日志分析领域的首选工具之一。本文将探讨如何使用 Elasticsearch 作为日志分析平台的核心组件,并详细介绍 ELK(Elasticsearch, Logstash, Kibana)栈的搭建和配置流程。
948 4
|
9月前
|
监控 安全 Linux
AWK在网络安全中的高效应用:从日志分析到威胁狩猎
本文深入探讨AWK在网络安全中的高效应用,涵盖日志分析、威胁狩猎及应急响应等场景。通过实战技巧,助力安全工程师将日志分析效率提升3倍以上,构建轻量级监控方案。文章详解AWK核心语法与网络安全专用技巧,如时间范围分析、多条件过滤和数据脱敏,并提供性能优化与工具集成方案。掌握AWK,让安全工作事半功倍!
319 0
|
12月前
|
存储 监控 算法
基于 PHP 语言的滑动窗口频率统计算法在公司局域网监控电脑日志分析中的应用研究
在当代企业网络架构中,公司局域网监控电脑系统需实时处理海量终端设备产生的连接日志。每台设备平均每分钟生成 3 至 5 条网络请求记录,这对监控系统的数据处理能力提出了极高要求。传统关系型数据库在应对这种高频写入场景时,性能往往难以令人满意。故而,引入特定的内存数据结构与优化算法成为必然选择。
306 3
|
运维 应用服务中间件 nginx
docker运维查看指定应用log文件位置和名称
通过本文的方法,您可以更高效地管理和查看Docker容器中的日志文件,确保应用运行状态可控和可监测。
2046 28
|
机器学习/深度学习 分布式计算 大数据
阿里云 EMR Serverless Spark 在微财机器学习场景下的应用
面对机器学习场景下的训练瓶颈,微财选择基于阿里云 EMR Serverless Spark 建立数据平台。通过 EMR Serverless Spark,微财突破了单机训练使用的数据规模瓶颈,大幅提升了训练效率,解决了存算分离架构下 Shuffle 稳定性和性能困扰,为智能风控等业务提供了强有力的技术支撑。
591 15
|
存储 人工智能 JSON
RAG Logger:专为检索增强生成(RAG)应用设计的开源日志工具,支持查询跟踪、性能监控
RAG Logger 是一款专为检索增强生成(RAG)应用设计的开源日志工具,支持查询跟踪、检索结果记录、LLM 交互记录和性能监控等功能。
554 7
RAG Logger:专为检索增强生成(RAG)应用设计的开源日志工具,支持查询跟踪、性能监控