什么是Log4Shell?Log4j漏洞解读

在这里插入图片描述

一个影响使用Java的设备和应用程序的新漏洞已经在开源Apache日志库Log4j中被发现。该漏洞被称为Log4Shell,是目前互联网上最重要的安全漏洞,其严重程度为10分。幸运的是,Perforce静态分析和SAST工具——Helix QAC和Klocwork——可以提供帮助。

本文解释了什么是Log4j漏洞,提供了一个Log4j的例子,并解释了像Klocwork这样的SAST工具是如何帮助预防和检测漏洞的,比如Log4Shell。

什么是Log4j?

Log4j是一个Java库,用于记录企业应用程序中的错误信息,其中包括自定义应用程序、网络和许多云计算服务。

此外,在过去十年中开发的大部分Java程序都使用了它,包括服务器和客户端应用程序。

什么是Log4Shell:Log4j漏洞解读

Log4Shell,也被称为CVE-2021-4428,是一个影响Apache Log4j2核心功能的高危漏洞。

该漏洞使攻击者能够进行远程代码执行。这使他们能够:

  • 通过受影响的设备或应用程序访问整个网络
  • 运行任何代码
  • 访问受影响设备或应用程序上的所有数据
  • 删除或加密文件

受影响的版本,即Log4j第二版(Log4j2),包含在:

  • Apache Struts2
  • Apache Solr
  • Apache Druid
  • Apache Flink
  • ElasticSearch
  • Flume
  • Apache Dubbo
  • Logstash
  • Kafka
  • Spring-Boot-starter-log4j2
  • Swift frameworks

哪些设备和应用程序容易受到Log4Shell的影响?

如果一个连接到互联网的设备运行Apache Log4j,版本2.0-2.14.1,那么他们就容易受到Log4Shell的攻击。

Klocwork如何检测Log4j的漏洞

作为一个静态分析和SAST工具,Klocwork检查你的源代码,以发现可能使你的设备或应用程序受到攻击的设计和编码缺陷,如污损的数据问题。Klocwork可以沿着你的代码中所有可能的执行路径,包括Log4Shell(CVE-2021-4428),追踪被污染的、不受信任的或其他可疑的数据。

Klocwork的SV.LOG_FORGING检查器 “开箱即用”,可以检测到被传递给日志应用程序的污点数据。Perforce提供一个小型知识库文件扩展该检查器,以检测Log4j的漏洞(详情请咨询Perforce中国授权合作伙伴龙智)。

此外,Klocwork还有一个特点,即可与Secure Code Warrior集成,有助于为这些类型的缺陷提供补救指导,以及额外的软件安全培训。Secure Code Warrior突出了安全漏洞,并提供了如何修复这些错误的指导。

如何用Klocwork防止Log4j漏洞的发生

现在你更好地理解了什么是Log4j漏洞以及Klocwork如何识别它,这里有一个Log4j的例子。此外,还有一个分步指南,展示Klocwork如何帮助你检测和补救这个严重的漏洞。

  1. 使用Klocwork SV.LOG_FORGING检查器

要使用Klocwork的SV.LOG_FORGING检查器。进入Klocwork应用程序的Portal,在具体项目下,添加分类规则库文件,并确认SV.LOG_FORGING检查器已启用。

该扩展将Log4j方法添加到SV.LOG_FORGING的污损数据的危险目的地列表中。这使得你可以识别Log4j的漏洞,即Log4Shell。

  1. 定位Log4j漏洞

一旦整个应用集成分析完成,任何错误或漏洞都会被突出展示。

下面的序列突出了日志伪造的可能性,使攻击者能够利用日志记录,以便操纵它们:

1 public class Test2 implements HttpHandler {

2 static Loggerlog=LogManager.getLogger(Test2.class.getName());

3 public void handle(HttpExchange he) {

4 String apiVersion = he.getRequestHeaders().getFirst

(“X-Api-Version”);

5 log.info(“Api Version:{}”, apiVersion);

6 }

7 }

一旦分析完成,Klocwork将在第5行报告该漏洞。

  1. 防止Log4j漏洞缺陷的发生

Apache已经发布了Log4j的新版本——2.16版,其中不包含Log4Shell漏洞。

此外,如果你不能更新到最新版本,Apache已经提供了缓解Log4j漏洞的解决方案。

在>=2.10的版本中,这种行为可以通过设置系统属性log4j2.formatMsgNoLookups或环境变量LOG4J_FORMAT_MSG_NO_LOOKUPS来缓解。

对于从2.0-beta9到2.10.0的版本,缓解措施是将JndiLookup类从classpath中移除:zip -q -d log4j-core-*.jar org/apache/logging/log4j/core/lookup/JndiLookup.class。

用Klocwork阻止漏洞,比如Log4Shell

Log4Shell是一个令人担忧的软件安全漏洞,不幸的是,它不是唯一的漏洞。它只是CWE-117和OWASP A10:2017漏洞类型中比较突出的一个例子。

通过使用Klocwork这样的SAST工具,你可以轻松地执行软件安全标准,如CWE、OWASP和CERT,以更好地检测、预防和消除软件安全漏洞,如Log4Shell。

亲身体验一下Klocwork是如何通过尽早发现漏洞来保护你的软件的。联系Perforce中国授权合作伙伴龙智,立即开始免费试用。

文章来源:https://www.perforce.com/blog/kw/what-is-log4shell-log4j-vulnerability?utm_medium=email&utm_source=marketo-email&utm_campaign=sca-global-2021q4-ec-customernewsletternovember&utm_content=blog

龙智集成全球主流工具及自研插件产品,为您量身定制DevSecOps解决方案。立刻联系我们(电话:400-7755-506 邮箱: marketing@shdsd.com),了解如何更好、更快地交付软件。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值