Log4Shell – Log4j 漏洞,此漏洞由阿里巴巴的安全研究员陈兆军于 2021 年 11 月 24 日首次报告。
Log4j 漏洞是现代系统中最致命的安全问题之一。
日志记录是现代应用程序的一个关键特性,而日志库 Log4j 是该领域的领导者。
该库用于大多数应用程序、服务和系统。因此,所有使用 Log4j 的应用程序都受到去年发现的这个 Log4j 漏洞的影响。
随着全球范围内对网络安全的担忧日益增加,组织和个人正在采取措施保护他们的应用程序、系统和数据。
当这个漏洞被发现时,它给专业人士和企业带来了更大的压力。
因此,如果您想保护您的数据、网络、声誉和客户信任,检测并修复 Log4j 漏洞至关重要。
在本文中,我将讨论什么是 Log4j 漏洞,以及检测和修复它的步骤。
让我们从了解 Log4j 以及为什么需要它开始。
什么是 Log4j?
Log4j是一个用 Java 编写的开源日志工具,主要用于存储、格式化和发布应用程序和系统生成的日志记录,然后检查错误。记录可以是各种类型,从网页和浏览器数据到运行 Log4j 的系统的技术细节。
开发人员无需从头开始编写代码,而是可以通过将 Log4j 库的代码集成到他们的应用程序中来使用它。
使用 Log4j,开发人员可以使用准确的日志信息跟踪与其应用程序相关的所有事件。它可以帮助他们监控应用程序,及时发现问题,并在问题变成更大的性能和/或安全问题之前解决问题。
这个基于 Java 的库由 Ceki Gülcü 编写,于 2001 年在 Apache License 2.0 下发布。它利用 Java 命名和目录接口 (JNDI) 服务来允许应用程序与其他应用程序(如 LDAP、DNS、CORBA 等)进行交互,并为基于 Java 的应用程序获取目录和命名功能。Log4j 具有三个组件来执行其任务:
记录器来捕获日志记录
以不同样式格式化日志记录的布局
将日志记录发布到不同目的地的附加程序
事实上,Log4j 是网络上最著名的日志库之一,并被来自多个行业和***的组织使用。他们已将此日志库集成到大量应用程序中,包括 Google、Microsoft、Apple、Cloudflare、Twitter 等的顶级云服务。
它的开发商 Apache Software Foundation 开发了 Log4j 2,这是对 Log4j 的升级,以解决早期版本中发现的问题。去年,在 Log4j 中发现了一个漏洞,如果不加以解决,攻击者可能会侵入应用程序和系统、窃取数据、感染网络以及执行其他恶意活动。
让我们更多地了解它。
什么是 Log4Shell – Log4j 漏洞?
Log4Shell 是 Log4j 库上的一个严重网络安全漏洞,它会影响库的核心功能。它允许攻击者通过执行远程代码执行来控制联网设备或应用程序。当他们成功时,他们可以:
在设备或系统上运行任何代码
访问所有网络和数据
修改或加密受影响应用或设备上的任何文件
此漏洞由阿里巴巴的安全研究员陈兆军于 2021 年 11 月 24 日首次报告。该漏洞影响了他们的Minecraft 服务器,阿里巴巴的云安全团队于 12 月 9 日发现了该服务器。
接下来,NIST 在***漏洞数据库中发布了这个漏洞,并将其命名为 CVE-2021-44228。Apache 软件基金会随后将该漏洞的 CVSS 严重性评为 10。这很少被分配并且非常严重,因为它有可能被广泛而容易地利用,从而对组织和个人造成巨大损害。
作为回应,Apache 发布了针对此漏洞的补丁,但仍有一些部分未解决,导致其他漏洞:
CVE-2021-45046通过 JNDI 查找促进了拒绝服务 (DoS) 攻击
CVE-2021-45105 允许黑客控制线程上下文映射信息并通过解释精心制作的字符串引发 DoS 攻击
CVE-2021-44832 通过远程代码注入 (RCE) 影响所有 Log4j 2 版本
Log4Shell 是如何工作的?
要了解它的严重性以及 Log4Shell 可以造成多大的危害,有必要了解这个 Log4j 漏洞是如何工作的。
Log4Shell 漏洞允许攻击者远程将任意代码注入网络并获得对其的完全控制。
这个网络攻击序列从日志库开始,例如 Log4j,收集和存储日志信息。如果没有日志库,所有来自服务器的数据将在数据收集后立即存档。
但是如果你想分析这些数据或者需要根据特定的日志信息采取一些行动,你将需要一个日志库在日志数据被归档之前对其进行解析。
由于 Log4j 漏洞,任何使用 Log4j 的系统或应用程序都容易受到网络攻击。日志库根据输入执行代码。黑客可以强制日志库执行有害代码,因为该漏洞将允许他们操纵输入。
与此同时,很多事情都在后台发生。当 Log4j 被传递一个特制的字符串时,它将调用 LDP 服务器并下载托管在其目录中的代码以执行代码。这样,攻击者可以创建一个 LDAP 服务器来存储恶意代码,从而帮助他们控制执行代码的任何服务器。然后它会发送一个字符串,将他们的恶意代码引导到目标应用程序或系统,并完全控制它。
所以,这就是如何利用 Log4j 漏洞:
攻击者发现了一个带有易受攻击的 Log4j 版本的服务器。
他们将向目标服务器发送带有恶意 LDAP 服务器链接的获取请求。
目标服务器将直接连接到此 LDAP 服务器,而不是验证请求。
攻击者现在将向目标服务器发送包含恶意代码的 LDAP 服务器响应。由于 Log4j 的漏洞允许接收代码并在未经验证的情况下执行它,黑客可以利用此弱点侵入目标服务器并利用连接的系统、网络和设备。
Log4j 漏洞如何危害用户?
Log4j 漏洞令人担忧,因为它用于广泛的软件应用程序和系统。
由于日志记录是大多数软件应用程序的基本功能,而 Log4j 是该领域的领先解决方案,因此 Log4j 可以在各种软件系统中找到应用程序。
一些使用 Log4j 的流行服务和应用程序是 Minecraft、AWS、iCloud、Microsoft、Twitter、互联网路由器、软件开发工具、安全工具等。因此,攻击者可以针对来自家庭用户、代码开发人员、服务提供商以及其他相关专业人士和个人的大量应用程序、服务和系统。
此外,Log4j 漏洞极易被攻击者利用。整个过程需要较少的技能组合,而不是专家水平,来进行攻击。这就是为什么利用此漏洞的攻击数量正在增加的原因。
Log4j 漏洞的影响是:
拒绝服务攻击
供应链攻击
硬币开采
恶意软件注入,例如勒索软件和特洛伊木马
任意代码注入
远程代码执行
和更多。
由于这些攻击,您可能会失去对应用程序、系统和设备的控制,并且您的数据可能会成为攻击者的牺牲品,这些攻击者可能会出售您的数据、操纵它或将其暴露给外部世界。因此,您的业务可能会在客户数据隐私、信任、组织机密,甚至您的销售和收入方面受到损害,更不用说合规风险了。
根据一份报告,超过 40% 的全球企业网络因该漏洞而遭受攻击。
因此,即使您没有在应用程序中使用任何易受攻击的 Log4j 版本,您的第三方集成也可能会使用它,这会使您的应用程序容易受到攻击。
请注意,Log4j 2.17.0 之前的所有 Log4j 版本。受到影响;因此,如果您使用记录器,则必须升级它。此外,受此 Log4j 漏洞影响的著名供应商是Adobe、AWS、IBM、Cisco、VMware、Okta、Fortinet 等。如果您使用其中任何一个,请持续监控您的应用程序并使用安全系统尽快修复问题出现。
如何检测受 Log4j 影响的程序并修复问题
Log4Shell 漏洞的 CVSS 得分为 10。因此,尚未修补 Log4j 中的所有问题。但您或您的第三方供应商可能正在使用您在应用程序中使用的 Log4j。
因此,如果您想保护您的数据、系统和网络,请确保遵循一些补救措施。
1.更新您的 Log4j 版本
如果您想保护您的设备和应用程序免受 Log4j 漏洞导致的攻击,将您当前的 Log4j 版本更新到 Log 4j 2.17.1 是最有效的补救技术。
Log4Shell 是一种零日攻击,可能会影响您的软件生态系统。Apache 已经修复了最近版本中的一些漏洞,但是如果您的系统在升级之前被入侵,您仍然处于危险之中。
因此,假设这一点,您不仅必须升级版本,还必须立即启动事件响应程序,以确保您的系统和应用程序中没有漏洞并减轻攻击。您还必须查看所有服务器日志以查找入侵指标 (IOC) 并持续监控您的系统和网络。
2.使用新版的防火墙和安全系统
Web 应用程序防火墙 (WAF) 和下一代防火墙等防火墙可以通过扫描传入和传出数据包并阻止可疑数据包来帮助保护您的网络外围免受攻击者的攻击。因此,请在您的网络中使用新版的防火墙并在您的服务器上设置严格的传出规则,以帮助防止与 Log4j 漏洞相关的攻击。
尽管攻击者可以绕过防火墙,但您仍然可以通过可以阻止攻击者请求的防火墙获得一定程度的安全性。
此外,使用新版的签名和规则更新您的所有安全系统,例如入侵检测系统 (IDS)、入侵防御系统 (IPS) 等。这些系统将帮助阻止或过滤 RMI 和 LDAP 流量连接到恶意 LDAP 服务器。
3.实施 MFA
在您的应用程序和系统中设置多因素身份验证 (MFA) 将为攻击者提供更好的安全性。即使攻击者设法破坏第一层,它也会提供第二层安全性。您可以通过指纹、虹膜扫描等生物识别技术、设置安全问题或启用安全 PIN 来完成此操作。
使用 MFA 将增加攻击者执行全面攻击的难度和时间。同时,它还可以立即将事件通知您,以便您在仍有时间时采取必要的补救措施。
此外,您还必须应用严格的VPN政策来减少数据泄露。这将使用户能够从任何地方安全地访问您的系统,而不必担心攻击者。
4.更改系统属性
如果您无法升级到新版版本的 Log4j 库,如果您使用从 Log4j 2.10 到 Log4j 2.14.1 的版本,则必须立即更改您的 java 系统属性。
您必须以这样的方式设置它,以防止攻击者使用查找漏洞来检测漏洞,然后找到利用它们的方法。
5.删除 JNDI
这一关键安全漏洞的原因在于其设计。JNDI Lookup 插件有一个设计缺陷,攻击者可以通过该缺陷执行攻击。
JNDI 用于基于其日志中的输入数据执行代码,任何人都可以轻松地对其进行操作,因为记录器无需验证即可接受任何请求。
安全研究人员发现,该插件自 2013 年发布以来一直允许未解析的数据,并将其发送到 Log4j 库。
因此,Log4j 漏洞很容易通过简单的字符串注入来利用。一旦攻击者注入它,记录器将接受字符串中请求的操作并立即执行它而无需验证。
所以,如果你想保护你的系统和应用程序,你必须禁用这个类——JndiLookup。这将阻止记录器根据日志数据采取行动。
事实上,JNDI 查找在 Log4j 2.16.0 中已经默认禁用,以尝试保护您的应用程序和系统。
因此,如果您使用低于 2.16.0 的 Log4j 版本,请确保您已禁用 JNDI 查找。
6.与您的供应商交谈
如果一切正常,更新了防火墙和安全系统,更新了 Log4j 版本,禁用了 JNDI 查找等,请不要放松。
即使您没有在应用程序中使用易受攻击的 Log4j 版本,您的第三方供应商也可能在使用它。因此,您永远不会知道您的应用程序或系统是如何被黑客入侵的,因为真正的问题在于您的第三方集成。
因此,请与您的供应商交谈并确保他们也已将 Log4j 升级到新版版本并实施了上面讨论的其他安全实践。
7.使用 Log4j 漏洞扫描程序
市场上有许多 Log4j 漏洞扫描工具,可让您轻松检测系统和应用程序中的 Log4j 漏洞。
因此,当您寻找这些工具时,请检查它们的准确率,因为其中许多会产生误报。此外,找到一个可以满足您需求的工具,因为它们可能专注于识别 Log4j 漏洞、报告暴露和修复漏洞。
因此,如果您的重点是检测,请找到可以检测问题的 Log4j 漏洞扫描程序,或者使用可以检测和修复问题的漏洞扫描程序。
一些最好的 Log4j 扫描工具是:
Microsoft 365 Defende r:Microsoft 提供了一系列安全解决方案和工具来帮助您检测和防止网络中的 Log4j 漏洞。您将能够发现远程代码执行和利用尝试,保护您免受 Windows 和 Linux 设备中的 Log4j 漏洞的影响。
Amazon Inspector 和 AWS: Amazon 创建了一个扫描工具来查找 Amazon EC2 实例和 Amazon ECR 中的 Log4j 漏洞。
CloudStrike 存档扫描工具 (CAST): CloudStrike 还创建了一个出色的扫描工具来检测 Log4j 漏洞,以帮助您在攻击者利用它之前及时修复问题。
Google Cloud Logging 检测: Google 的云日志检测解决方案允许您使用 Logs Explorer 检测 Log4j 漏洞。您可以在此工具中创建日志查询并扫描潜在的漏洞利用字符串。
谷歌还创建了 log4jscanner,一个用于检测 Log4j 漏洞的开源文件系统扫描程序。
BurpSuite Log4j Scanner:这是一个安全插件,供专业人士和企业使用,帮助他们检测 Log4j 漏洞。
Huntress Log4Shell Vulnerability Tester:此工具随机生成一个唯一标识符,您可以在测试输入字段时使用该标识符。在应用程序或输入字段中发现漏洞后,其安全的 LDAP 服务器将立即终止恶意连接并确保您的安全。
WhiteSource Log4j Detect: WhiteSource 创建了一个免费的 CLI 工具 WhiteSource Log4j Detect,托管在 GitHub 上,以帮助您检测和修复 Log4j 漏洞 - CVE-2021-445046 和 CVE-2021-44228。
用于 Log4j 的 JFrog 开源扫描工具: JFrog 创建了各种开源解决方案和工具来查找二进制文件和源代码中的 Log4j 漏洞。
结论
Log4j 漏洞是一个关键的安全问题。由于这个日志库在各种应用程序和系统中被广泛使用,Log4j 漏洞已经变得普遍,允许攻击者利用广泛的系统和应用程序。
因此,如果您想保护您的系统和应用程序免受此漏洞的影响,请确保将 Log4j 库升级到新版版本并实施上述最佳安全实践。
- 1.更新您的 Log4j 版本
- 2.使用新版的防火墙和安全系统
- 3.实施 MFA
- 4.更改系统属性
- 5.删除 JNDI
- 6.与您的供应商交谈
- 7.使用 Log4j 漏洞扫描程序
- 结论
发表评论