2021 Log4j 漏洞的 7 大教训



Java监控Java 日志框架 Log4j(版本 2.0 至 2.14.1)中的 Log4Shell (CVE-2021-44228) 零日漏洞于 2021 年 12 月 9 日被发现。Apache 基金会将 10 的最大 CVSS 分数分配给 Log4Shell,因为服务器和潜在的数十亿台设备面临风险。世界各地的安全专业人员开始修补漏洞,并扫描他们的系统以排除任何潜在的漏洞。



攻击是如何发生的


该漏洞是一个输入验证漏洞,在这种情况下,查找是通过 JNDI 功能自动处理的。 攻击者在远程服务器中托管易受攻击的 Java 类。 攻击者注入一个易受攻击的日志消息,该消息将一个类从他们的服务器加载到应用程序中,该应用程序在目标服务器中执行易受攻击的代码。 由于格式化是可嵌套的,级联事件可以被序列化以快速暴露大量数据。 由于 Log4j 用于客户端和服务器应用程序,因此它们同样容易受到攻击,因为 Log4j 可以解析任何用户输入。



尽管 Apache 团队已经删除了该漏洞,并且为了提高安全性,还从 Log4j v 2.16.0 开始禁用了远程查找工具,但现在最安全的版本是 Log4j 2.17.1 及更高版本。由于广泛使用 Log4j 作为首选日志框架(Java 在近 30 亿多台设备上运行),Log4Shell 漏洞在 2022 年继续存在,因为 IT 安全团队竞相击败重复攻击尝试,另一方面,可能预计将对不遵守规定处以高额罚款。这需要一个整体的方法来修复所有暴露在互联网上的组件,包括第三方集成。


如何修复它


先打补丁。然后,应用防火墙,禁用远程查找。所有带有旧版本 Log4j 的面向 Internet 的代码都需要紧急扫描和修复,包括跨云服务器的所有实例的全面修复。 考虑隔离、最小化、监控和主动防御 (IMMA) 模型。 攻击者总是留下足迹。梳理 CPU 峰值、未经授权的配置更改、意外的日志和命令,或网络连接中的不自然行为、容量峰值或可疑中断。


七节课



拥抱 DevSecOps 文化,在这种文化中,开发人员、安全专业人员和运营团队开展强有力的协作,共同讨论、发现、修复和避免漏洞。 选择经过批准的强大故障排除工具,并避免使用未经验证的在线资源提供的免费工具,因为它们可能会使情况恶化并使您的系统面临进一步的攻击。了解您的攻击面,并运行静态代码分析以发现源代码级别的漏洞。 采用安全的软件开发实践。专注于开发精益代码。提供意想不到的功能作为可选功能,以进一步减少漏洞。设计简单的软件库,并在其之上以稳健的方式组合更多的库,去除不必要的功能。 对软件版本实施快速、集中和自动的修补程序,并对所有暴露的组件进行全面监控,以领先于漏洞。 扫描所有系统对 Log4j 的使用。在如此大量的实例中,Log4j 的普遍性、寿命、流行和不受监控的使用使这成为一个全球性问题。查看每个库,无论是开源的还是封闭的,寻找类似的漏洞,并在攻击者发现它们之前主动修复它们。 在您的数据管理实践中实施零信任模型,这是建立在“首先验证,然后信任”的最小特权原则的理念。 明智地使用开源。由于 Log4j 是开源的,一个批评是它没有根据的遗留代码是不安全的,并且被许多开发人员不假思索地使用。然而,开源的一线希望是,因为它是免费提供的,它可以很容易地被社区修复和共享。


还应谨慎理解,Log4j 漏洞只是众多漏洞之一,还有更多漏洞等待曝光。专家警告说,虽然最糟糕的时期似乎已经过去,但要像往常一样继续下去还为时过早。整体补救措施不仅在于将 Log4j 修补到最新版本,还在于对所有具有暴露服务器和云组件的 IT 系统进行彻底扫描。对安全实践进行彻底修订以建立新的密码本也势在必行。



包括Site24x7在内的云监控解决方案了解漏洞的严重性,并立即扫描其系统以排除漏洞利用。此外,当应用程序面临 Log4j 漏洞时,Site24x7 的 APM Insight有一个内置的 Java 代理,可以立即检测到它们,并将它们显示在中央 APM 控制台上。