NVIDIA 初创加速计划,免费加速您的创业启动 了解详情
写点什么

修完又复活!史诗级 Log4j 漏洞爆发 1 年仍“阴魂不散”,下一场暴雷可能已在路上

  • 2023-01-18
    北京
  • 本文字数:2148 字

    阅读完需:约 7 分钟

修完又复活!史诗级Log4j漏洞爆发1年仍“阴魂不散”,下一场暴雷可能已在路上

过去这一年,Log4j 频频暴雷。新年伊始,很多朋友可能觉得 Log4j 这事儿已经过去了。不,还没完呢。

 

2021 年,甚至很多人还根本没听说过 Apache Log4j 这一开源 Java 日志记录库。但它确实在无数应用程序中发挥着作用,包括各类Apache项目(Flink、Flume、Hadoop、Kafka、Solr、Spark 和 Struts 等),再到 Apple iCloud、Elastic LogStash、Twitter 以及众多 VMware 程序。就连《我的世界》游戏里都有它的身影。但是,又能如何?这只是个友善无害的日志记录程序……然后,麻烦就来了。

 

Apache 基金会于 2021 年 12 月 4 日悄悄发布了针对Log4j漏洞的补丁,可几乎没人注意到。后来,Mojang Studios 为其热门游戏《我的世界》推出了针对零日漏洞 CVE-2021-44228(又名 Log4Shell)的修复补丁,这才让大家意识到问题的严重性。事实证明,这个漏洞不仅易被利用,而且攻击者可以全面控制目标服务器。

严重程度?我打 10 分!


那问题到底有多严重?根据国家漏洞数据库(NVD)的统计,其 CVSSv3 得分为 10.0。有些朋友可能不清楚,严重度评分是从 0.1 到 10.0,就是说 Log4Shell 得了个最高分。这一零日漏洞的影响甚至引起了白宫方面的关注。总之,出事了,出大事了!

 

再来看 Check Point 的数据,截至 2021 年 12 月 13 日,也就是漏洞披露后的 72 小时,全球已经出现超 80 万次利用尝试。安全公司 Nextron Systems 的研究主管 Florian Roth 发布推文称,“#Log4Shell 不仅仅是个 RCE(远程代码执行)零日漏洞,更是一个会在各种软件产品上衍生出成百上千种其他零日漏洞的缺陷。它堪称零日漏洞中的集束炸弹。”

 

但,不是补丁很快就发布了吗?到 2021 年 12 月 20 日,Log4j 2.17.0 就已经修复了主要和次要问题。所以,这事应该过去了才对呀。

没那么简单

 

事实证明,Log4j 在软件代码中无处不在。更糟糕的是,即使是现在,很多人都无法判断自己的代码中是否还残留着易受攻击的 Log4j 版本。

 

到 2022 年 1 月,微软警告称民族国家黑客和网络犯罪分子仍在利用Log4j漏洞对目标系统植入恶意软件。与此同时,Check Point 研究人员发现了与伊朗有关的威胁团伙 APT35,其利用 Log4j 漏洞部署基于 PowerShell 的模块化恶意软件。同样的策略至今仍然存在。微软团队还发现另一伙来自中国的黑客,他们试图利用某些 VMware Horizon 版本中的漏洞来安装 Night Sky 勒索软件。

 

当然,“平民”一点的诈骗分子也在利用这个漏洞散播加密挖矿恶意软件。安全漏洞被用于窃取非法经济所得,听起来多么合乎逻辑。

 

2022 年 12 月初,网络安全与基础设施安全局(CISA)透露称,黑客仍在使用 Log4Shell。

72%的组织仍易受到攻击

 

根据安全公司 Tenable 的说法,“截至 2022 年 10 月 1 日,72%的组织仍易受到Log4Shell漏洞的攻击。”为什么会这样?“在全面修复之后,仍有近三分之一(29%)的资产中再次出现了 Log4Shell 漏洞。”

 

简单来说,原本的代码确实修复了,但之后有人引入了“新代码”,而新代码里又包含旧的 Log4j 版本。然后,漏洞就又复活了

 

Tenable 公司首席安全官 Bob Huber 强调,“对于普及度如此之高的漏洞,其实已经很难完全修复。更重要的是,漏洞修复绝不是「一劳永逸」的过程。虽然组织可能在某个时刻实现了完全修复,但随着将新资产添加到业务环境当中,Log4Shell 可能会一次又一次反复出现。根除 Log4Shell 是一场持续斗争,要求组织不断评估环境中的缺陷及其他已知漏洞。”

依赖项、依赖项,还是依赖项


但这真的可能吗?Tenable 并没有深入探讨,可 Endor Labs 的 Station 9 发布了一份“依赖项管理状态”研究报告,也许给出了一点启示。在很多厂商的开源代码库中,95%的漏洞并非源自开发者的主动选择,而是被间接引入了项目之内。

 

Endoir Labs 联合创始人兼 CEO Varun Badhwar 表示,“从部分指标来看,开发者每在软件项目中引入一个依赖项,平均被同时传递进来的其他依赖项多达 77 到 78 个。”因此,“实际发现的漏洞有 95%都源自这些传递的依赖项,也就是那些「搭便车」的乘客。我们需要在环境中跟踪所有依赖项,并了解哪些应用程序究竟在使用哪些软件包。”

 

于是乎,软件物料清单(SBOM)和软件工件供应链级别(SLSA)变得空前重要。如果没有二者的保障,企业在部署代码前根本无法评判其中包含着什么。

 

根据 Tenable 的统计,截至 2022 年 10 月 1 日,全球有 28%的组织已经完全修复了 Log4Shell,较 2022 年 5 月提高了 14%。但这还远远无法令人安心

如同一场流行病


Thales 公司首席产品安全官 Bob Burns 表示,Log4j 就如同“一场流行病,将在未来几年内持续保持威胁和传播力。”这也引发了人们对于开源软件底层安全的担忧。当然,从之前震惊全球的 SolarWinds 事件来看,专有软件也同样谈不上可靠。

 

关于专有软件安全的问题,安全厂商 ReversingLabs 的软件保险布道师 Charlie Jones 预计,Log4Shell 造成的影响可以与 MS-17-10 相媲美。MS-17-10 也就是大名鼎鼎的微软“永恒之蓝”SMB 漏洞,曾直接催生出 NotPetya 和 WannaCry 擦除恶意软件。而且,“Log4Shell 造成的挑战比 MS-17-10 还更复杂,因为其往往被深嵌在应用程序的依赖项内,因此难以用标准工具快速加以识别。”

 

Log4j 带来的真正教训是,哪怕我们努力想要清除和修复,首先也得搞清楚程序里到底有些什么。在这个影响软件供应链根基的问题被自动化工具攻克之前,预计将有更多由 Log4j 引发的问题出现。我们暂时能做的,唯有祈祷麻烦小一点、影响弱一点。

 

参考链接:

https://thenewstack.io/one-year-of-log4j

2023-01-18 16:2910998
用户头像
李冬梅 加V:busulishang4668

发布了 814 篇内容, 共 381.8 次阅读, 收获喜欢 1002 次。

关注

评论

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

正则表达式.01 - 元字符

insight

正则表达式 3月日更

程序员必须知道的数据结构:HashMap 与 LinkedHashMap

老王说编程

Java 数据结构 hashmap

【金三银四】这才是打开Java面试的正确方式,吃透这份【Java面试手册】offer稳了

Java 编程 面试

mock 请求分发

blueju

JavaScript React Mock umi umijs

Wireshark数据包分析学习笔记Day3

穿过生命散发芬芳

Wireshark 数据包分析 3月日更

程序员必须知道的数据结构:线性表与链表

老王说编程

Java 链表 线性表

互联网信贷风险与大数据 风险管理&信贷准入

张老蔫

28天写作

开源镜像仓库Harbor的镜像安全

运维研习社

Docker Harbor 漏洞扫描 镜像安全 私有仓库

Redis 与 I/O 多路复用模型

小方

redis

用c++创作一个简单小游戏

张鹤羽

28天写作 3月日更

LeetCode题解:714. 买卖股票的最佳时机含手续费,动态规划,JavaScript,详细注释

Lee Chen

算法 大前端 LeetCode

金三银四程序员面试必备:2021最新 最全面Java复习路线!已收录GitHub

比伯

Java 编程 程序员 架构 面试

架构大作业2

J

区块链药品溯源解决方案-区块链技术监管医药溯源

13530558032

《不看后悔》38个JVM精选问答,让你变成专家

Java 架构 面试 JVM虚拟机原理

Flutter 2 来了

SamGo

flutter

饿了么刚给我确认了p7的职位,对自己的经历,做一个面试总结。

Java架构之路

Java 程序员 架构 面试 编程语言

简易项目搭建 Models层封装

happlyfox

学习 28天写作 3月日更

架构大作业1

J

【回溯算法】借助最后一道「组合总和」问题来总结一下回溯算法 ...

宫水三叶的刷题日记

面试 LeetCode 数据结构与算法

阿里面经最新分享:Java面试指南/成长笔记(金三银四程序员必备)

比伯

Java 编程 程序员 架构 面试

总结近期腾讯+阿里+百度Java岗高频面试题,提问率高达98%,看到这篇文章基本offer稳了

Java架构之路

Java 程序员 架构 面试 编程语言

微信团队分享:微信直播聊天室单房间1500万在线的消息架构演进之路

JackJiang

微信 架构设计 即时通讯

恋物志(二):独居者的智能生活指南

脑极体

Elasticsearch Index Types and Mappings

escray

elastic 七日更 28天写作 死磕Elasticsearch 60天通过Elastic认证考试 3月日更

简单工厂模式、工厂模式、抽象工厂模式比较

良知犹存

设计模式

程序员必须知道的数据结构:队列与栈

老王说编程

数据结构 队列

区块链电子合同应用平台-助力企业数字化转型

13530558032

智慧党建系统开发,智慧组工平台建设

13530558032

两会热词“区块链”,打开传统溯源的一扇大门!

源中瑞-龙先生

区块链 两会

萌新不看会后悔的C++基本类型总结(二)

花狗Fdog

修完又复活!史诗级Log4j漏洞爆发1年仍“阴魂不散”,下一场暴雷可能已在路上_语言 & 开发_Steven J. Vaughan-Nichols_InfoQ精选文章