Log4j漏洞深度回顾系列之一:攻击背景​

Log4j漏洞深度回顾系列之一:攻击背景​

2023-11-10 10:08:23

云计算 Akamai将结合自身技术团队的了解,Akamai与全球客户合作过程中应对该漏洞和其他安全隐患所积累的经验,以及Akamai对整个互联网流量的洞察,向大家介绍Log4j漏洞的起因、传播范围、利用方式、演变路径。

开源日志记录工具Apache Log4j曾被爆出一个严重的远程代码执行漏洞,攻击者可以借此构造恶意请求,触发远程恶意代码的执行。消息爆出后,该漏洞引起了极大的关注。小半年过去了,相关热度逐渐消退,是时候对整个过程进行一个彻底的总结回顾,并从中吸取教训,避免以后再遭遇类似的问题。

加入Client-Side Protection & Compliance,防范每一次用户数据外泄!

符合 PCI DSS v4.0 标准,助您严防网站恶意代码和漏洞!

进一步了解Akamai的网络安全服务方案

这一系列文章总共分为四篇,Akamai将结合自身技术团队的了解,Akamai与全球客户合作过程中应对该漏洞和其他安全隐患所积累的经验,以及Akamai对整个互联网流量的洞察,向大家介绍Log4j漏洞的起因、传播范围、利用方式、演变路径,以及最重要的:我们所有人都需要从中吸取的教训。

这就开始吧,本篇主要介绍Log4j漏洞的一些背景信息。

一、时间线

20211124日,Apache基金会接到通知,称已被广泛使用的,基于Java的日志库工具Log4j存在重大漏洞,可能导致隐私信息泄漏和远程代码执行(RCE)。而该漏洞自2013年就一直存在了

第二天,Apache基金会保留了CVE-2021-44228并开始研究解决方案。接下来的12天里,为了解决此问题,他们对源代码进行了多处修改,并于2021129日公开披露了这个漏洞

公布后,围绕该漏洞开始出现如洪水般的攻击尝试,并且在那之后,攻击规模和范围一直以惊人的速度增长

二、Log4j到底是什么

要真正理解该漏洞,首先需要知道Log4j到底是什么。Log4jJava社区中一个被开发者广泛使用的库,提供了一个简单但强大的框架,可用于记录错误信息、诊断信息等

Log4j提供了很多让人印象深刻的功能,其中之一是将日志记录至多个目标位置,包括但不限于控制台、文件、远程TCP服务器SyslogNT Event Log以及电子邮件。此外,它还支持对日志消息、日志事件、自定义布局等内容进行分层过滤

简而言之,Log4j提供了完整丰富的功能,使其受到开发者的广泛欢迎,从而导致从Web应用程序到嵌入式设备,各种地方都能见到Log4j的身影

三、查找和嵌

Log4j支持多种强大功能,其中最知名的功能之一应该是查找(Lookup)。该功能使得开发者可以将变量或表达式嵌入到Log4j在进行输出之前自动评估的文本中。例如,开发者可以编写代码将下列文本记入日志

“${date:MM-dd-yyyy} All Systems Good”

Log4j会将其中的模式${date:MM-dd-yyyy}识别为一种日志查找,并尽职地将该表达式替换为今天的日期。举例来说,如果今天是20211220日,那么在将上述日志输出到目标位置前,Log4j会将其内容改为

“12-20-2021 All Systems Good”

对开发者来说这很方便。如果不使用这种功能,开发者必须手工编写代码查询日期,将格式调整为字符串,将其附加到日志行,然后输出。尽管这样的代码写起来并不麻烦也不费事,但毕竟与软件的核心业务逻辑毫无关系,并且最终也会在一个个项目中不断延续下去

通过使用Log4j库中现成的功能,开发者可以专注于项目中更重要的开发工作,让Log4j处理与日志有关的各种任务

Log4j支持很多这种类型的查找表达式。让我们再来看看另外两个与本文内容密切相关的:envlowerenv可以将主机系统上的环境变量包含到日志行中。例如,开发者可以将下列文本记入日志

“The current user is ${env:USER}”

假设软件正在以管理员用户的身份运行,上述日志会输出如下的内容

“The current user is Administrator”

与将新数据注入文本的envdate不同,lower可用于操作已经存在的内容。Log4j会直接将表达式中出现的英文字母转换为小写形式。例如

“The lower case text is ${lower:ABCDEFG}”

会输出为

“The lower case text is abcdefg”

这个例子本身似乎感觉没什么意义,为何不自己将字母转换为小写呢?别忘了,Log4j还允许将查找表达式嵌套在一起,此时就厉害了

我们可以将前两个表达式嵌套为这种形式

“The lower case current user is ${lower:${env:USER}}”

这会导致Log4j首先将${env:USER}表达式评估为Administrator,随后将其送入lower,产生小写的administrator,最终会输出如下的内容

“The lower case current user is administrator”

四、JNDI

虽然dateenvlower都很有趣并且实用,但这个漏洞之所以能够存在,还离不开JNDI查找。JNDIJava Naming and Directory InterfaceJava命名和目录接口),是一种内置于Java开发和运行时环境中的机制,可通过一个通用接口以简单的方式查询各种目录服务中的信息

实际上,可支持的目录服务分为多种类型。例如,JNDI支持查询DNS服务器以发现主机的IP地址,并能查询ADLDAP中的目录实体。它甚至支持查询正在运行中的Java环境本身以获取Environmental Entries,例如当前正在运行的软件的专用配置选项

Log4j中的JNDI查找表达式可供开发者通过日志文本中嵌入的表达式直接访问这个极为强大的子系统。举例来说,如果开发者试图将下列字符串记入日志

“The current mail host is ${jndi:java:comp/env/mailhost}”

Log4j会将${jndi:java:comp/env/mailhost}表达式识别为JNDI查找,并将java:comp/env/mailhost这个伪URL传递给JNDI子系统。JNDI会将这种特定的URL类型识别为查询,进而在当前运行的组件查找一个名为mailhost的配置选项

假设该选项被配置为http://mymailserver.example.com,JNDI会将该信息回传给Log4j,随后Log4j会将查找表达式替换为http://mymailserver.example.com,并产生如下的输出结果

“The current mail host is mymailserver.example.com”

五、理解该漏洞的存

简而言之,Apache Log4j的这个漏洞为攻击者提供了一种重大的机会,因为该库广受欢迎,尤其是其查找、嵌套和JNDI功能更是如此。虽然这些功能为开发者提供了很大的便利,但也催生了可能借此通过请求泄漏数据或导致远程代码执行的机会。了解这些背景信息后,我们可以开始更好地理解这个漏洞,以及攻击者的利用方式了

文章来源网络,作者:运维,如若转载,请注明出处:https://shuyeidc.com/wp/230814.html<

(0)
运维的头像运维
上一篇2025-04-19 10:05
下一篇 2025-04-19 10:06

相关推荐

  • 个人主题怎么制作?

    制作个人主题是一个将个人风格、兴趣或专业领域转化为视觉化或结构化内容的过程,无论是用于个人博客、作品集、社交媒体账号还是品牌形象,核心都是围绕“个人特色”展开,以下从定位、内容规划、视觉设计、技术实现四个维度,详细拆解制作个人主题的完整流程,明确主题定位:找到个人特色的核心主题定位是所有工作的起点,需要先回答……

    2025-11-20
    0
  • 社群营销管理关键是什么?

    社群营销的核心在于通过建立有温度、有价值、有归属感的社群,实现用户留存、转化和品牌传播,其管理需贯穿“目标定位-内容运营-用户互动-数据驱动-风险控制”全流程,以下从五个维度展开详细说明:明确社群定位与目标社群管理的首要任务是精准定位,需明确社群的核心价值(如行业交流、产品使用指导、兴趣分享等)、目标用户画像……

    2025-11-20
    0
  • 香港公司网站备案需要什么材料?

    香港公司进行网站备案是一个涉及多部门协调、流程相对严谨的过程,尤其需兼顾中国内地与香港两地的监管要求,由于香港公司注册地与中国内地不同,其网站若主要服务内地用户或使用内地服务器,需根据服务器位置、网站内容性质等,选择对应的备案路径(如工信部ICP备案或公安备案),以下从备案主体资格、流程步骤、材料准备、注意事项……

    2025-11-20
    0
  • 如何企业上云推广

    企业上云已成为数字化转型的核心战略,但推广过程中需结合行业特性、企业痛点与市场需求,构建系统性、多维度的推广体系,以下从市场定位、策略设计、执行落地及效果优化四个维度,详细拆解企业上云推广的实践路径,精准定位:明确目标企业与核心价值企业上云并非“一刀切”的方案,需先锁定目标客户群体,提炼差异化价值主张,客户分层……

    2025-11-20
    0
  • PS设计搜索框的实用技巧有哪些?

    在PS中设计一个美观且功能性的搜索框需要结合创意构思、视觉设计和用户体验考量,以下从设计思路、制作步骤、细节优化及交互预览等方面详细说明,帮助打造符合需求的搜索框,设计前的规划明确使用场景:根据网站或APP的整体风格确定搜索框的调性,例如极简风适合细线条和纯色,科技感适合渐变和发光效果,电商类则可能需要突出搜索……

    2025-11-20
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注