如何扫描和修复Log4j漏洞?

Log4j漏洞是现代系统中最致命的安全问题之一。

日志记录是现代应用程序中的关键功能,日志记录库Log4j是该领域的领导者。

该库在大多数应用程序、服务和系统中都被使用。因此,所有使用Log4j的应用程序都受到了去年发现的这个Log4j漏洞的影响。

随着全球网络安全问题的增加,组织和个人正在采取措施来保护其应用程序、系统和数据。

当这个漏洞被发现时,它使专业人士和企业倍感压力。

因此,如果您想保护您的数据、网络、声誉和客户信任,检测Log4j漏洞并修复它是必要的。

在本文中,我将讨论Log4j漏洞是什么,以及检测和修复它的步骤。

让我们首先了解Log4j及其重要性。

什么是Log4j?

Log4j是一个用Java编写的开源日志记录工具,主要用于存储、格式化和发布应用程序和系统生成的日志记录,并检查是否存在错误。这些记录可以是各种类型的,从网页和浏览器数据到运行Log4j的系统的技术细节。

开发人员可以通过集成其代码来使用Log4j库,而不是从头开始编写代码。

使用Log4j,开发人员可以准确记录与其应用程序相关的所有事件的日志信息。它帮助他们监控应用程序,及时发现问题,并在问题发展为性能和/或安全方面的更大问题之前解决问题。

这个基于Java的库是由Ceki Gülcü编写的,并于2001年根据Apache许可证2.0发布。它利用Java命名和目录接口(JNDI)服务,允许应用程序与LDAP、DNS、CORBA等其他应用程序进行交互,并为基于Java的应用程序提供目录和命名功能。Log4j有三个组件来执行其任务:

事实上,Log4j是网络上最著名的日志记录库之一,被多个行业和国家的组织使用。它们在许多应用程序中集成了这个日志记录库,包括Google、Microsoft、Apple、Cloudflare、Twitter等顶级云服务。

它的开发者Apache软件基金会发布了Log4j 2,这是Log4j的升级版本,以解决之前版本中发现的问题。去年在Log4j中发现了一个漏洞,如果不予以解决,攻击者可以利用该漏洞侵入应用程序和系统,窃取数据,感染网络,并执行其他恶意活动。

让我们更深入地了解一下。

什么是Log4Shell – Log4j漏洞?

Log4Shell是Log4j库上的一个关键网络安全漏洞,它影响该库的核心功能。它允许一个攻击者通过执行远程代码来控制与互联网连接的设备或应用程序。一旦成功,他们可以:

  • 在设备或系统上运行任何代码
  • 访问所有网络和数据
  • 修改或加密受影响应用程序或设备上的任何文件

这个漏洞最初是由阿里巴巴(一家中国电子商务巨头)的安全研究员陈兆军在2021年11月24日报告的。这个漏洞影响了他们的云安全团队于12月9日发现的。-

接下来,NIST在国家漏洞数据库中发布了这个漏洞,并将其命名为CVE-2021-44228。然后,Apache软件基金会将此漏洞评为CVSS严重性的10分。由于具有广泛和容易利用的潜力,这是很少分配的且非常严重的漏洞,可能给组织和个人带来巨大的损害。

作为回应,Apache发布了对此漏洞的补丁,但仍然有一些部分未被处理,导致了其他漏洞:

  • CVE-2021-45046,通过JNDI查找实现了对Denial of Service (DoS) attacks的便利
  • CVE-2021-45105允许黑客控制线程上下文映射信息,并通过解释制作的字符串导致DoS攻击
  • CVE-2021-44832通过远程代码注入(RCE)影响所有Log4j 2版本

Log4Shell是如何工作的?

为了了解其严重性以及Log4Shell可能造成的伤害程度,了解这个Log4j漏洞的工作方式是很重要的。

Log4Shell漏洞允许攻击者远程注入任意代码到网络中并完全控制它。

这种网络攻击的过程始于日志库(如Log4j)收集和存储日志信息。如果没有日志库,服务器上的所有数据将在收集后立即存档。

但是,如果您想要分析这些数据或者需要根据特定的日志信息采取一些行动,您将需要一个日志库在存档之前解析日志数据。

由于Log4j漏洞,任何使用Log4j的系统或应用程序都变得容易受到网络攻击。日志库基于输入执行代码。黑客可以强制日志库执行有害代码,因为漏洞将允许他们操纵输入。

同时,在后台会发生很多事情。当传递一个特定制作的字符串给Log4j时,它将调用一个LDP服务器并下载存储在其目录中的代码以执行。这样,攻击者可以创建一个LDAP服务器来存储恶意代码,帮助他们控制执行代码的任何服务器。然后,它将发送一个字符串将他们的恶意代码定向到目标应用程序或系统,并完全控制它。

因此,这就是如何利用Log4j漏洞:

  • 攻击者找到一个使用受漏洞影响的Log4j版本的服务器。
  • 他们将向目标服务器发送一个带有恶意LDAP服务器链接的get请求。
  • 目标服务器直接连接到此LDAP服务器,而不验证该请求。
  • 攻击者现在将向目标服务器发送一个包含恶意代码的LDAP服务器响应。由于Log4j的漏洞,该漏洞允许接收并在不验证的情况下执行代码,黑客可以利用这个弱点侵入目标服务器并利用连接的系统、网络和设备。

Log4j漏洞如何危害用户?

Log4j漏洞令人担忧,因为它被广泛应用于各种软件应用和系统。

由于日志记录是大多数软件应用的基本功能,并且Log4j是该领域的领先解决方案,因此Log4j在各种软件系统中得到应用。

一些使用Log4j的热门服务和应用包括Minecraft、AWS、iCloud、Microsoft、Twitter、互联网路由器、软件开发工具、安全工具等等。因此,攻击者可以针对大量的应用程序、服务和系统,包括家庭用户、代码开发人员、服务提供商和其他相关专业人员和个人。

此外,Log4j漏洞对攻击者来说非常容易利用。整个过程所需的技能水平较低,不需要专家级别的技能来进行攻击。这就是为什么利用这个漏洞的攻击数量在增加的原因。

Log4j漏洞的影响包括:

  • DoS攻击
  • 供应链攻击
  • 挖矿
  • 恶意软件注入,如ransomware和木马
  • 任意代码注入
  • 远程代码执行

以及更多。

由于这些攻击,您可能失去对应用程序、系统和设备的控制,并且您的数据可能会成为攻击者的目标,攻击者可能会篡改、操纵或将其暴露给外界。因此,您的业务可能在客户、信任、组织机密甚至销售和收入方面受到损害,更不用说合规风险了。

sell your data,超过40%的全球企业网络曾经遭受过这种漏洞的攻击。

因此,即使您的应用程序没有使用任何有漏洞的Log4j版本,您的第三方集成可能正在使用它,这使得您的应用程序容易受到攻击。

请注意,所有Log4j 2.17.0版本之前的版本都受到影响;因此,如果您使用它,您必须升级记录器。此外,受到此Log4j漏洞影响的著名供应商包括Adobe、AWS、IBM、思科、VMware、Okta、Fortinet等。如果您使用其中任何一个,请不断监控您的应用程序,并使用安全系统修复问题。

如何检测Log4j受影响的程序并修复问题

Log4Shell漏洞的CVSS评分为10分。因此,Log4j中的所有问题尚未修补。但是您或您的第三方供应商可能会使用Log4j,而您在应用程序中使用了它。

因此,如果您想保护数据、系统和网络,请确保按照一些补救措施。

#1. 更新您的Log4j版本

将当前的Log4j版本更新为Log4j 2.17.1是最有效的补救措施,如果您希望保护设备和应用程序免受Log4j漏洞造成的攻击。

Log4Shell是一种可能影响您的软件生态系统的零日攻击。Apache已经在最近的版本中修复了一些漏洞,但如果在升级之前您的系统已被入侵,您仍然面临风险。

因此,假设如此,您不仅必须升级版本,还必须立即启动事件响应程序,以确保系统和应用程序中没有漏洞,并缓解攻击。您还必须审核所有服务器日志,以查找入侵指标(IOCs),并不断监视系统和网络。

#2. 使用最新的防火墙和安全系统

防火墙,如Web应用防火墙(WAF)和下一代防火墙,可以通过扫描进出数据包并阻止可疑数据包来保护您的网络边界免受攻击者的攻击。因此,在您的网络中使用latest firewalls并在服务器上设置严格的出站规则,以帮助预防与Log4j漏洞相关的攻击。

尽管攻击者可能会绕过防火墙,但使用可以阻止攻击者请求的防火墙仍然可以获得一定程度的安全性。

此外,使用最新的签名和规则更新所有安全系统,如入侵检测系统(IDS)、入侵预防系统(IPS)等。这些系统将帮助阻止或过滤与恶意LDAP服务器连接的RMI和LDAP流量。

#3. 实施多因素身份验证

在您的应用程序和系统中设置多因素身份验证(MFA)将提供更好的安全性,使攻击者更难以攻击。即使攻击者成功突破第一层安全层,它也会提供第二层安全层。您可以通过生物特征识别,如指纹、虹膜扫描等方式,设置安全问题或启用安全PIN码来实现。

使用MFA将增加攻击者的难度和攻击所需的时间。同时,它还可以在您还有时间时立即通知您发生的事件,以便您采取必要的补救措施。

此外,您还必须制定严格的 VPN 政策以减少数据泄漏。这将使用户能够在任何地方安全地访问您的系统,而不用担心攻击者。

#4. 更改系统属性

如果您无法升级到最新版本的 Log4j 库,而是使用从 Log4j 2.10 到 Log4j 2.14.1 的版本,您必须立即更改您的 Java 系统属性。

您必须设置它以防止攻击者用于检测漏洞并找到利用它们的方法的查找。

#5. 删除 JNDI

这个关键的安全漏洞的原因在于它的设计。JNDI Lookup 插件存在设计缺陷,攻击者可以利用它进行攻击。

JNDI 用于基于其日志中的输入数据进行代码执行,而日志记录器接受任何请求而不进行验证,因此任何人都可以轻松操纵它。

安全研究人员发现,自从 2013 年发布以来,该插件一直允许未解析的数据并将其发送到 Log4j 库。

因此,Log4j 漏洞容易受到简单的字符串注入的利用。一旦攻击者注入它,日志记录器将接受字符串中请求的操作,并立即执行它而不进行验证。

因此,如果您想保护系统和应用程序,必须禁用 JndiLookup 类,以防止日志数据导致的操作。

实际上,在 Log4j 2.16.0 中,默认情况下已禁用 JNDI 查找,以保护您的应用程序和系统。

因此,如果您使用的 Log4j 版本低于 2.16.0,请确保已禁用 JNDI Lookup。

#6. 与供应商沟通

如果您已经做到了一切正确,更新了防火墙和安全系统,更新了 Log4j 版本,禁用了 JNDI Lookup 等等,不要松懈。

即使您的应用程序没有使用受漏洞影响的 Log4j 版本,您的第三方供应商可能在使用它。因此,您永远不会知道您的应用程序或系统被黑客攻击的原因,因为真正的问题在于您的第三方集成。

因此,请与您的供应商交谈,并确保他们也已将 Log4j 升级到最新版本并实施了上述其他安全措施。

#7. 使用 Log4j 漏洞扫描工具

市场上有许多 Log4j 漏洞扫描工具可供您使用,以便轻松检测系统和应用程序中的 Log4j 漏洞。

因此,在寻找这些工具时,请检查它们的准确率,因为其中许多工具会产生误报。另外,找一个能满足您需求的工具,因为它们可能专注于识别 Log4j 漏洞、报告漏洞暴露和修复漏洞。

因此,如果您的重点是检测,找一款能检测问题的 Log4j 漏洞扫描工具,或者使用能检测和修复问题的工具。

一些最佳的 Log4j 扫描工具包括:

  • Microsoft 365 Defender:Microsoft提供了一系列安全解决方案和工具,帮助您在网络中检测和防止Log4j漏洞利用。您将能够发现远程代码执行和利用尝试,保护Windows和Linux设备免受Log4j漏洞的影响。
  • Amazon Inspector和AWS:亚马逊创建了一个扫描工具,用于查找Amazon EC2实例和Amazon ECR中的Log4j漏洞。
  • CloudStrike Archive Scan Tool(CAST):CloudStrike还创建了一个优秀的扫描工具,用于检测Log4j漏洞,帮助您及时修复问题,防止攻击者利用。
  • Google Cloud Logging检测:谷歌的云日志检测解决方案允许您使用日志浏览器检测Log4j漏洞利用。您可以在此工具中创建日志查询,并扫描潜在的利用字符串。
  • 谷歌还创建了log4jscanner,一个用于检测Log4j漏洞的开源文件系统扫描工具。
  • BurpSuite Log4j扫描器:这是一个供专业人士和企业使用的安全插件,可以帮助他们检测Log4j漏洞。
  • Huntress Log4Shell漏洞测试工具:该工具随机生成一个唯一标识符,您可以在测试输入字段时使用。在应用程序或输入字段中发现漏洞时,其安全LDAP服务器将立即终止恶意连接,并保护您的安全。
  • WhiteSource Log4j Detect:WhiteSource创建了一个免费的CLI工具,WhiteSource Log4j Detect,托管在GitHub上,以帮助您检测和修复Log4j漏洞 – CVE-2021-445046和CVE-2021-44228。
  • JFrog用于Log4j的开源扫描工具:JFrog创建了各种开源解决方案和工具,用于在二进制文件和源代码中查找Log4j漏洞。

结论

Log4j漏洞是一个严重的安全问题。由于这个日志记录库广泛应用于各种应用程序和系统中,Log4j漏洞已经广泛存在,使得攻击者可以利用各种系统和应用程序。

因此,如果您希望保护系统和应用程序免受此漏洞的影响,请确保将Log4j库升级到最新版本,并实施上述讨论的最佳实践。

类似文章