什么是 Log4j 漏洞?
订阅 IBM 时事通讯 探索 IBM Security QRadar
坐在办公桌前使用笔记本电脑的人

Log4J 又名“Log4Shell”,是 2021 年 11 月在 Apache Log4J 日志记录库发现的一个严重漏洞。Log4Shell 本质上让黑客完全控制运行未打补丁 Log4J 版本的设备。恶意行为者可以利用该漏洞在易受攻击的系统中运行自己想要的几乎任何代码。

研究人员认为 Log4Shell 是个“灾难性”安全漏洞,因为 Log4J 是全球部署最广泛的开源程序之一,而且该漏洞很容易利用。美国网络安全和基础设施安全局 (CISA) 主任 Jen Easterly 称“这是我整个职业生涯中见过的最严重的漏洞之一,即使不是唯一”。

Log4Shell 导致 2021 年 12 月网络攻击数量激增。根据 IBM X-Force Threat Intelligence Index 的记录,2020 年至 2021 年,漏洞利用增加了 34%,主要源于 Log4Shell。

Log4Shell 在被发现后不久就得到修补,但仍会带来多年风险,因为 Log4J 已深植于软件供应链。美国国土安全部(PDF;链接位于 ibm.com 外部)估计至少需要十年才能找到并修复每个易受攻击的实例。

什么是 Log4J?

Log4j 是 Apache 软件基金会开发的日志记录框架。顾名思义,Log4J 是个记录器;记录程序中的错误消息和用户输入等重要信息。

Log4J 是个开源软件库,提供开发人员可自由使用的预先编写的代码。开发人员可以将 Log4J 库插入自己的应用程序,无需专门编写记录器。这种便利性是 Log4J 应用广泛的原因;例如,它内置于 Microsoft 和 Amazon 等大型企业的产品中。

黑客如何利用 Log4Shell

Log4Shell 是 Log4J 某些版本中存在的远程代码执行 (RCE) 漏洞,其通用漏洞披露标识符为 CVE-2021-44228。该漏洞影响 Apache Log4J 2 的 2.14.1 版本及更早版本;Log4J 2.15 及更高版本和 Apache Log4J 1 的所有版本不受影响。

Log4Shell 源于旧版本 Log4J 2 处理 Java 命名和目录接口 (JNDI) 查询的方式。JNDI 是一款应用程序编程接口 (API),帮助 Java 应用程序访问外部服务器上托管的资源。JNDI 查询是个命令,告诉应用程序要前往服务器并下载具体对象,例如一段数据或脚本。旧版本的 Log4J 2 会自动运行通过这种方式下载的所有代码。

用户可以将 JNDI 查询包含在日志消息中,从而将其发送到易受攻击的 Log4J 版本。这很容易做。例如,旧版本的 Minecraft Java 版使用 Log4J 记录用户消息,用户可以在公共交谈窗口输入 JNDI 查询。

黑客可以借用这个 JNDI 功能远程执行恶意的任意代码。首先,黑客使用公共协议(例如轻量级目录访问协议 (LDAP))设置服务器,避免引起注意。接着,他们将恶意软件文件等恶意有效内容存储在该服务器上。最后,他们向程序发送 JNDI 查询命令,要求程序前往攻击者的 LDAP 服务器,下载该有效内容并执行代码。

Log4Shell 的影响

科技巨头阿里巴巴的安全研究人员于 2021 年 11 月 24 日发现 Log4Shell。通用漏洞评分系统 (CVSS) 立即给予 Log4Shell 最高的 10 分评级,原因如下:

  • Log4Shell 是零日漏洞,即发现时没有可用的补丁。在 Apache 尝试修复时,威胁参与者可能会利用 Log4Shell。

  • Log4J 也是使用最广泛的日志记录库之一,内置于消费者端点、Web 应用程序和企业云服务。Wiz 和 EY 表示,发现 Log4Shell 时, 93% 的云环境都面临风险(链接位于 ibm.com 外部)。

  • 企业并非总能立即判断自己是否易受攻击。Log4J 通常是网络中的间接依赖项,也即企业的资产可能并不使用 Log4J,但依赖于使用 Log4J 的其他应用程序和服务。

  • 最后,Log4Shell 非常容易利用。黑客无需特殊权限或身份验证。他们可以在聊天框和登录页面等公共表单中输入恶意命令,造成严重破坏。由于 Log4J 能够与同一系统上的其他服务通信,因此黑客可以通过 Log4J 将有效内容传递到系统的其他部分。

到 2021 年 12 月 9 日,关于如何利用 Log4Shell 的概念验证代码已在 GitHub 上发布,黑客也在加紧发起攻击。Minecraft、Twitter 和 Cisco 等主要企业和服务都遭暴露。在 Log4Shell 活动的高峰期,Check Point 每分钟观察到 100 余次攻击,影响全球 40% 以上的业务网络(链接位于 ibm.com 外部)。

最早的攻击传播僵尸网络和挖矿恶意软件。一些黑客利用该漏洞发起无文件攻击,向 Windows 和 Linux 计算机发送恶意脚本,使之泄露密码和其他敏感信息。

多个勒索软件团伙盯上了 Log4Shell。黑客通过 Minecraft 传播 Khonsari 勒索软件。Night Sky 勒索软件针对运行 VMware Horizon 的系统发动攻击。

甚至民族国家行动者也加入进来。有人发现与中国、伊朗、朝鲜和土耳其有关的黑客利用该漏洞。

对 Log4Shell 的响应

Apache 于 2021 年 12 月 10 日推出第一个补丁 Log4J 2.15.0。但这个补丁暴露了漏洞 CVE-2021-45046,黑客可以借助该漏洞向具有某些非默认设置的日志发送恶意命令。

Apache 于 2021 年 12 月 14 日发布第二个补丁 Log4J 2.16.0。这个补丁也存在缺陷 CVE-2021-45105,黑客可以发起拒绝服务 (DoS) 攻击。

第三个补丁 Log4J 2.17 修复了 DoS 缺陷,但未能修复漏洞 CVE-2021-44832。黑客利用该漏洞,可以夺取名为“appender”的 Log4J 组件的控制权,从而运行远程代码。Apache 通过第四个补丁 Log4J 2.17.1 解决了这个问题。

Log4Shell 的持久性

虽然 Log4J 2.17.1 在 Apache 端消除了 Log4Shell 及其所有相关漏洞,但网络威胁仍然使用该漏洞。截至 2023 年 5 月,Log4Shell 仍位列最常被利用的漏洞榜单(链接位于 ibm.com 外部)。

Log4Shell 的持续存在有几个原因。

首先,Log4J 深植于许多企业的软件供应链中。如今,许多应用程序都是通过组装现有开源软件库来构建的。这个过程很方便,但这也意味着企业无法完全了解应用程序的全部组件。修补工作很容易错过 Log4J 的旧版本。

Log4J 的易受攻击版本得到修补后,并不总是保持修补状态。2022 年 11 月,Tenable 报告(链接位于 ibm.com 外部),仍然易受 Log4Shell 影响的资产中有 29% 是“重复出现的”。这些资产打过补丁,但漏洞再次出现。这是因为人们在构建或更新应用程序时,有时会不小心使用仍包含未打补丁版本 Log4J 的软件库。

最后,黑客开发出一种巧妙的方法来掩盖自身踪迹。根据 CISA(链接位于 ibm.com 外部)的说法,一些黑客使用 Log4Shell 闯入网络,然后修补资产。企业以为自己是安全的,实际黑客已经“进入”。

缓解和补救

Log4J 的最新版本不含 Log4Shell。网络安全专家建议安全团队重点确保系统中 Log4J 的所有实例都是最新的。

更新 Log4J 的过程可能比较缓慢,因为企业通常需要深入挖掘资产才能找到它。同时,安全团队可以使用攻击面管理 (ASM)、端点检测和响应 (EDR) 平台等持续漏洞扫描和威胁检测工具来监视面向互联网的资产。专家建议事件响应团队彻查 Log4Shell 活动的蛛丝马迹。

Log4Shell 公开后,许多防火墙、入侵检测系统 (IDS)入侵防御系统 (IPS) 添加了旨在发现 Log4Shell 漏洞的规则。这些工具有助于安全团队检测并拦截来自攻击者控制的服务器的流量。

Log4Shell 时间线
  • 2013 年 7 月 18 日:Apache 发布首个支持 JNDI 插件的版本 Log4J 2.0-beta9。Log4Shell 尽管要到几年后才会被发现,但在这一刻已诞生。

  • 2021 年 11 月 24 日:阿里巴巴安全研究人员发现 Log4Shell 并将其报告给 Apache。Apache 开始开发补丁,但没有发布公开安全建议。

  • 2021 年 12 月 9 日:阿里巴巴安全研究人员发现 Log4Shell 被广泛讨论的证据;概念验证漏洞利用代码已发布到 GitHub。

  • 2021 年 12 月 10 日:Apache 发布第一个补丁;Minecraft 开发人员在 Minecraft Java 版中发现 Log4Shell。网络安全社区很快意识到情况的严重性,各组织争先恐后地锁定自己的系统。

  • 2021 年 12 月 11 日:Cloudflare 发现威胁行为者早在 12 月 1 日就开始利用 Log4Shell 的证据,这比最初想象的要早。

  • 2021 年 12 月 14 日:发现 CVE-2021-45046,Apache 发布解决该问题的补丁。

  • 2021 年 12 月 17 日:发现 CVE-2021-45105,Apache 发布解决该问题的补丁。

  • 2021 年 12 月 28 日:发现 CVE-2021-44832,Apache 发布最后一个补丁。从 Log4J 2.17.1 开始,Log4Shell 已得到全面修复。

  • 2022 年 1 月 4 日美国联邦贸易委员会 (FTC)(链接位于 ibm.com 外部)宣布,打算追究因未能解决 Log4Shell 问题而向黑客泄露消费者数据的所有企业。

  • 2023 年 5 月:Check Point 发现 Log4Shell 仍然是第二大最常被利用的漏洞。

相关解决方案
IBM Security® QRadar® Suite

利用互联的现代化安全套件战胜攻击。QRadar 产品组合嵌入了企业级 AI,并提供用于端点安全、日志管理、SIEM 和 SOAR 的集成产品,所有这些产品都具有通用用户界面、共享见解和互联工作流程。

深入了解 QRadar 套件
数据安全和保护解决方案

IBM 数据安全解决方案在本地或混合云中实施,可帮助您获得更大的可见性和洞察力,以调查和修复网络威胁、实施实时控制并管理法规遵从性。

深入了解数据安全和保护解决方案
X-Force® 事件响应团队

主动威胁搜寻、持续监视和深入调查威胁只是本已忙碌的 IT 部门面临的几个优先事项。拥有一支值得信赖的事件响应团队随时待命可以减少您的响应时间,最大限度地减少网络攻击的影响,并帮助您更快地恢复。

探索 X-Force 事件响应
资源 零日漏洞利用终极指南

了解有关零日漏洞利用的重点信息及其在安全中发挥的关键作用。由 IBM 公司的 Randori 编写。

什么是网络攻击?

网络攻击是指试图通过未经授权访问计算机系统来窃取、暴露、更改、禁用或破坏他人的资产。

什么是漏洞管理?

漏洞管理是指持续发现和解决组织 IT 基础架构和软件中的安全缺陷。

采取下一步行动

IBM Security QRadar EDR(旧称 ReaQta)凭借几乎不需要人员交互且简单易用的智能自动化,几近实时地修复已知和未知的端点威胁。借助攻击可视化故事板,快速做出明智决策。使用自动警报管理,聚焦重要威胁。利用高级的、持续学习的 AI 功能,保障业务连续性。

了解有关 qRadar EDR 的更多信息 申请 QRadar EDR 演示