整理 | 郑丽媛
出品 | CSDN(ID:CSDNnews)
翻翻去年此时的朋友圈,相信不少 Java 程序员又能回想起,去年被 Log4j 漏洞支配的一周:有边吃饭边修 Bug 的、有夜里熬夜打补丁的、还有周末一通电话就被抓去加班的…
当时,知名网络安全解决方案提供商 Check Point 曾预测,由于 Log4j 应用范围甚广,该漏洞很可能在未来几年内也将一直存在——如今看来,是一语成谶了。
据外媒 Wired 报道,在 Log4j 漏洞爆发一年之后,如今从 Apache 资源库 Maven Central 和其他资源库服务器下载的 Log4j 组件中,仍有超过四分之一是不安全的 Log4j 版本。
一年前的“史诗级”、“核弹级”高危漏洞
每年,安全研究人员都能发现许多亟待解决的关键漏洞,而 Log4j 漏洞能被称作“史诗级”漏洞,证明它并不寻常。
作为一款全球知名的开源 Java 日志框架,Log4j 被大量主流开源框架采用,包括但不限于 Apache Struts2、Apache Solr、Apache Druid、Apache Flink 等,几乎应用于整个互联网行业的“半壁江山”——当然,这都是在 Log4j 漏洞爆发后,人们才知道的。
受漏洞影响的主要是 Log4j 2.14.1 及以下版本,即当用户使用这些版本来处理日志时,漏洞会对用户输入的内容进行特殊处理,攻击者可在 Log4j 中构造特殊请求来触发远程代码执行,包括安装恶意软件或发起其他数字攻击。
漏洞爆发后,服务器业务(Steam、iCloud、Minecraft 等)被严重影响,《我的世界》一度有数十万用户被入侵,阿里云、斗象科技、绿盟科技、默安科技、奇安信等众多安全厂商迅速发布危害通报,Check Point 更是统计得出,近漏洞爆发的前 4 天,全球就有近一半企业因此受到了黑客的试图攻击。
诚如前 Log4j 开发者、现 Apache 软件基金会副总裁 Christian Grobmeier 当时所说:“苹果被波及、Twitter 也受到了影响,然后我才意识到居然有这么多人在使用它:基本上是半个世界,甚至更多,这太疯狂了。”
在漏洞被发现之前,没有人料想到,这么一个基于 Java 的日志框架,影响范围竟如此之广——由于触发简单、攻击难度低、影响人群广泛,Log4j 漏洞也被业内称为“史诗级”、“核弹级”高危漏洞。
一年过后,Log4j 漏洞依然潜伏在各个地方
值得庆幸的是,因为这个漏洞的严重程度,也引起了多方关注:Apache 方面迅速发布了 Log4j 漏洞补丁,程序员群体也火速展开了一场修复计算机系统的全球“竞赛”——在大多消费者没有受到影响的背后,是他们在背后夜以继日地紧急修复,与攻击者拼速度。
Apache 软件基金会主席 David Nalley 赞叹道:“在短时间内,我们就进行了修复,这真的很棒。”不过 David Nalley 指出,这个夸赞可能仅限于漏洞爆发的初期,并不适用于一年后的如今:“我很想说我们完美地处理了它,但现实并非如此。”
距离 Log4j 漏洞爆发,已经过去了一年,而它依然潜伏在各个地方,有的是一直存在还未修复,有的是新下载的 Log4j 仍是有漏洞的版本。
一直未修复
程序员在修复漏洞时,自然会优先处理影响最大、最为严重的部分。相比之下,那些不那么严重的就先暂且搁置,总想着等日后有时间了再慢慢迭代。但现实情况是,对于大多数程序员来说,这个“有时间了”的情况并不容易等到。
再者,很多情况下进行漏洞修复,公司也需要付出不少成本,因此在情况可控且无伤大雅的情况下,这一部分的漏洞修复工作也是能拖则拖。
除此之外,开源软件供应链也是一个重要原因。David Nalley 表示:“通过下载量,我们知道 Log4j 被广泛部署,但依旧很难完全掌握,因为它是开源的。”很多情况下,一个组织或企业购买或部署软件时,并不清楚其中具体包含了哪些其他组件,所以也很难意识到 Log4j 漏洞的存在及其修复的紧迫性。
仍下载有漏洞的 Log4j 版本
这一情况可能与 Apache 当初发布的多个漏洞补丁有所关联。当时,Apache 针对漏洞紧急发布了 Log4j 2.15,该版本默认禁用了部分容易被黑客利用的 Java 库主要功能,但很快便被攻击者破解,迫使 Apache 又发布了多个迭代版本,给开发者造成了一定混乱。
如开头所说,从 Apache 资源库 Maven Central 和其他资源库服务器下载的 Log4j 组件中,仍有超过四分之一(25%)是不安全的 Log4j 版本。
对于这个数据,软件供应链公司 Sonatype 的联合创始人兼首席技术官 Brian Fox 分析:“当人们选择不安全的开源软件组件时,大多数情况下都已经有一个可用的修复补丁了。我真的很震惊这个数字,唯一的解释只能是人们真的不了解他们的软件里到底有什么。”
“Log4j 漏洞将会是未来十年引发数据泄露事件的一个根本原因”
基于以上的各种原因,现在很可能出现的一种情况是:程序员在积极地构建和维护系统或软件,但不论他们再怎么努力,只要 Log4j 漏洞还在,攻击者便能轻而易举地入侵。
对此,软件供应链安全公司 Chainguard 的首席执行官 Dan Lorenc 预测:“Log4j 漏洞将会是未来十年引发数据泄露事件的一个根本原因——毕竟之前只要用一个 Log4j 组件就会有漏洞。”
同时,研究人员也发出警告:“Log4j 漏洞仍存在于全球很多系统中,而攻击者早晚会成功利用到它。”因此,虽然 Log4j 漏洞的爆发已过去一年,建议开发者可排查在 Java 应用中是否引入了 Log4j 组件,若存在则立即进行安全排查并升级至安全版本。
参考链接:https://www.wired.com/story/log4j-log4shell-one-year-later/
《新程序员001-004》全面上市,对话世界级大师,报道中国IT行业创新创造!
☞苹果税不用交了?App Store 不再是应用下载唯一入口……
☞35岁不应成为DBA的门槛
☞“我的 Linux 内核之旅”