FCon7折倒计时最后一周:日程已上线70%!查看详情>>> 了解详情
写点什么

突发!Log4j 爆“核弹级”漏洞,Flink、Kafka 等至少十多个项目受影响

  • 2021-12-10
  • 本文字数:2395 字

    阅读完需:约 8 分钟

突发!Log4j 爆“核弹级”漏洞,Flink、Kafka等至少十多个项目受影响

昨晚,对很多程序员来说可能是一个不眠之夜。12 月 10 日凌晨,Apache 开源项目 Log4j 的远程代码执行漏洞细节被公开,由于 Log4j 的广泛使用,该漏洞一旦被攻击者利用会造成严重危害。


据悉,Apache Log4j 2.x <= 2.14.1 版本均回会受到影响。根据“微步在线研究响应中心”消息,可能的受影响应用包括但不限于:Spring-Boot-strater-log4j2、Apache Struts2、Apache Solr、Apache Flink、Apache Druid、Elasticsearch、Flume、Dubbo、Redis、Logstash、Kafka 等。很多互联网企业都连夜做了应急措施。


截至本文发出,斗鱼、京东、网易、深信服和汽车产业安全应急响应中心皆发文表示,鉴于该漏洞影响范围比较大,业务自查及升级修复需要一定时间,暂不接收 Log4j2 相关的远程代码执行漏洞。


lookup 功能造成的漏洞


Log4j 是一款开源 Java 日志记录工具。日志记录主要用来监视代码中变量的变化情况,周期性的记录到文件中供其他应用进行统计分析工作;跟踪代码运行时轨迹,作为日后审计的依据;担当集成开发环境中的调试器的作用,向文件或控制台打印代码的调试信息。因此,对于程序员来说,日志记录非常重要。


在强调可重用组件开发的今天,Apache 提供的强有力的日志操作包 Log4j。Log4j 可以轻松控制 log 信息是否显示、log 信息的输出端类型、输出方式、输出格式,更加细致地控制日志的生成过程,而其通过配置文件可以灵活地进行配置而不需要大量的更改代码。因此,很多互联网企业都选择使用 Log4j 。


2014 年,Log4j 2 发布。Log4j 2 是对 Log4j 的重大升级,完全重写了 log4j 的日志实现。Log4j 2 提供了 Logback 中可用的许多改进,同时修复了 Logback 架构中的一些固有问题,目前已经更新到 2.15.0 版本。


Log4j2 也支持 SLF4J,可以自动重新加载日志配置,并支持高级过滤选项。此外它还允许基于 lambda 表达式对日志语句进行延迟评估,为低延迟系统提供异步记录器,并提供无垃圾模式以避免由垃圾收集器操作引起的任何延迟。通过其他语言接口,企业也可以在 C、C++、.Net、PL/SQL 程序中使用 Log4j。


此次漏洞的出现,正是由用于 Log4j 2 提供的 lookup 功能造成的,该功能允许开发者通过一些协议去读取相应环境中的配置。但在实现的过程中,并未对输入进行严格的判断,从而造成漏洞的发生。“微步在线研究响应中心”做了漏洞复现:



简单来说,就是在打印日志时,如果发现日志内容中包含关键词 ${,那么这个里面包含的内容会当做变量来进行替换,导致攻击者可以任意执行命令。详细漏洞披露可查看:

https://issues.apache.org/jira/projects/LOG4J2/issues/LOG4J2-3201?filter=allissues


由于线上 web 业务的任何数据都可能写入 Log4j,甚至一些 pre-auth 的地方,比如注册、登录,实际攻击入口取决于业务具体情况。目前百度搜索、苹果 iCloud 搜索、360 搜索等都出现了该问题。



图源:公众号“信安之路”


12 月 10 日上午,阿里云安全团队再次发出预警,发现 Apache Log4j 2.15.0-rc1 版本存在漏洞绕过,建议及时更新至 Apache Log4j 2.15.0-rc2 版本。


对于这次漏洞,有网友评价说道,“可以说是灾难性的漏洞,比之前的 fastjson 和 shiro 还要严重,这个漏洞估计在之后三四年内还会继续存在….”

快速检测及修复方案


针对此次漏洞,“微步在线研究响应中心”也给出了一些应急方案。


1. 紧急缓解措施


(1)修改 jvm 参数 -Dlog4j2.formatMsgNoLookups=true


(2)修改配置 log4j2.formatMsgNoLookups=True


(3)将系统环境变量 FORMAT_MESSAGES_PATTERN_DISABLE_LOOKUPS 设置为 true


2. 检测方案


(1)由于攻击者在攻击过程中可能使用 DNSLog 进行漏洞探测,建议企业可以通过流量监测设备监控是否有相关 DNSLog 域名的请求,微步在线的 OneDNS 也已经识别主流 DNSLog 域名并支持拦截。


(2)根据目前微步在线对于此类漏洞的研究积累,我们建议企业可以通过监测相关流量或者日志中是否存在“jndi:ldap://”、“jndi:rmi”等字符来发现可能的攻击行为。


3. 修复方案


检查所有使用了 Log4j 组件的系统,官方修复链接如下:

https://github.com/apache/logging-log4j2/releases/tag/log4j-2.15.0-rc2

安全应该是一个持续的过程


每个人都知道安全的重要性,但安全问题还是频繁发生。


去年 5 月,360 网络安全响应中心发布“ Fastjson 远程代码执行漏洞通告”。通告称,Java 库 fastjson <= 1.2.68 版本存在远程代码执行漏洞,漏洞被利用可直接获取服务器权限。该漏洞评定为“高危漏洞”,影响面“广泛”。


前年,阿里云应急响应中心监测到,Apach Shiro 官方披露了其 cookie 持久化参数 rememberMe 加密算法存在漏洞,攻击者利用 Padding Oracle 攻击手段可构造恶意的 rememberMe 值,绕过加密算法验证,执行 java 反序列化操作,最终可导致远程命令执行获取服务器权限,风险极大。


安全本身并不是一个能够创造价值的功能,反而更像是需要消耗价值以确保功能稳定的功能。中小企业常常没有足够的资金投入安全建设,而有资金的企业也会把这部分预算将到最低。


网络攻击成功的可能性以及潜在损失的程度是难以实现估计的,决策者通常是依靠经验判断来做决定投入金额。根据 Alex Blau 在哈佛商业评论中的文章中提到的,决策者在作出决定时,会有以下三个误区:


  1. 将网络安全视为一种防御。在这个过程中,强大的防火墙和有能力的工程师可以让他们远离威胁。

  2. 认为遵守 NIST 或 FISMA 等安全框架就足够安全。

  3. 以为如果近期没有发生安全漏洞,那么看起来没有问题的部分就不需要修复。


这些想法的问题在于,网络安全不是要解决有限的问题,而应该是一个持续进行的过程。麻省理工学院数字经济倡议主任 Erik Brynjolfsson 表示,对抗网络威胁应该被归到“更高级别的优先考虑项”。他认为,一些修复并不复杂。虽然增加一些额外的小操作会让整个流程变长,并增加一点成本,但会让企业和个人更加安全。


Brynjolfsson 提出,在网络安全方面,使用公开可用的密码学通常比为特定公司构建的专有系统更加安全。


2021-12-10 14:0618036

评论

发布
暂无评论
发现更多内容

适合初学者的 10 个JavaScript 代码整洁技巧

devpoint

JavaScript ES6 7月月更 数据操作

你想知道的数组易错知识都在这了-C

芒果酱

7月月更

Qt|字符排序以及转化问题

中国好公民st

qt 7月月更

Qt | 串口通信 QSerialPort

YOLO.

通信 qt 串口 串口通信 7月月更

Pro 单店版和多店版,你还傻傻分不清楚?

CRMEB

纯CSS实现四种方式文本反差色效果

南城FE

CSS 前端 css动画 7月月更 反差色

多传感器时间同步

秃头小苏

时间同步 7月月更

linux之抓包神器tcpdump

入门小站

Linux

解读《深入理解计算机系统(CSAPP)》第7章链接

小明Java问道之路

连接 csapp ELF 链接 7月月更

深入JS函数中默认参数的使用

猪痞恶霸

前端 js 7月月更

GaussDB云数据库初步使用记录

DS小龙哥

7月月更

QT和MFC的优缺点比较

乌龟哥哥

7月月更

Linux 0.12 源码阅读

贾献华

7月月更

RocketMQ之消费者启动与消费流程

vivo互联网技术

RocketMQ 中间件 ACK

《深入 Linux 设备驱动程序那和机制》读书笔记

贾献华

7月月更

图解网络:访问控制列表ACL,功能堪比防火墙!

wljslmz

防火墙 acl 网络技术 7月月更 访问控制列表

iOS 中的 Category

NewBoy

ios 前端 移动端 iOS 知识体系 7月月更

【LeetCode】奇数值单元格的数目Java题解

Albert

LeetCode 7月月更

在线SQL转TSV工具

入门小站

工具

使用AssemblyScript 构建 WebAssembly 应用

devpoint

webassembly Wasm 7月月更 assemblyscript

5G NR RRC连接控制

柒号华仔

5G 7月月更

在线直播系统源码——开源源码

开源直播系统源码

软件开发 直播源码 开源源码 在线直播系统源码

Go 语言入门很简单:上下文

宇宙之一粟

Go 语言 7月月更

继承(二)

Jason199

js 继承 7月月更

【愚公系列】2022年7月 Go教学课程 009-数据类型之浮点型

愚公搬代码

7月月更

Wireshark抓包分析Eureka注册发现协议

程序员欣宸

Java SpringCloud Eureka 7月月更

老司机狂飙之路--EventBus原理简要分析

芝麻粒儿

android EventBus 7月月更

不习惯的Vue3起步四 の 生命周期&provide/inject

空城机

Vue3 7月月更

Java面向对象基础

五分钟学大数据

Java 7月月更

ArrayBlockingQueue源码分析-删除数据

zarmnosaj

7月月更

在线文本批量查找多个字符串出现的次数工具

入门小站

工具

  • 扫码添加小助手
    领取最新资料包
突发!Log4j 爆“核弹级”漏洞,Flink、Kafka等至少十多个项目受影响_语言 & 开发_褚杏娟_InfoQ精选文章