如何掃描和修復 Log4j 漏洞?
已發表: 2022-05-10Log4j 漏洞是現代系統中最致命的安全問題之一。
日誌記錄是現代應用程序的一個關鍵特性,而日誌庫 Log4j 是該領域的領導者。
該庫用於大多數應用程序、服務和系統。 因此,所有使用 Log4j 的應用程序都受到去年發現的這個 Log4j 漏洞的影響。
隨著全球範圍內對網絡安全的擔憂日益增加,組織和個人正在採取措施保護他們的應用程序、系統和數據。
當這個漏洞被發現時,它給專業人士和企業帶來了更大的壓力。
因此,如果您想保護您的數據、網絡、聲譽和客戶信任,檢測並修復 Log4j 漏洞至關重要。
在本文中,我將討論什麼是 Log4j 漏洞,以及檢測和修復它的步驟。
讓我們從了解 Log4j 以及為什麼需要它開始。
什麼是 Log4j?
Log4j 是一個用 Java 編寫的開源日誌工具,主要用於存儲、格式化和發布應用程序和系統生成的日誌記錄,然後檢查錯誤。 記錄可以是各種類型,從網頁和瀏覽器數據到運行 Log4j 的系統的技術細節。
開發人員無需從頭開始編寫代碼,而是可以通過將 Log4j 庫的代碼集成到他們的應用程序中來使用它。
使用 Log4j,開發人員可以使用準確的日誌信息跟踪與其應用程序相關的所有事件。 它可以幫助他們監控應用程序,及時發現問題,並在問題變成更大的性能和/或安全問題之前解決問題。

這個基於 Java 的庫由 Ceki Gulcu 編寫,於 2001 年在 Apache License 2.0 下發布。 它利用 Java 命名和目錄接口 (JNDI) 服務來允許應用程序與其他應用程序(如 LDAP、DNS、CORBA 等)交互,並為基於 Java 的應用程序獲取目錄和命名功能。 Log4j 具有三個組件來執行其任務:
- 記錄器來捕獲日誌記錄
- 以不同樣式格式化日誌記錄的佈局
- 將日誌記錄發佈到不同目的地的附加程序
事實上,Log4j 是網絡上最著名的日誌庫之一,並被來自多個行業和國家的組織使用。 他們已將此日誌庫集成到大量應用程序中,包括 Google、Microsoft、Apple、Cloudflare、Twitter 等的頂級雲服務。
它的開發商 Apache Software Foundation 開發了 Log4j 2,這是對 Log4j 的升級,以解決早期版本中發現的問題。 去年,在 Log4j 中發現了一個漏洞,如果不加以解決,攻擊者可能會侵入應用程序和系統、竊取數據、感染網絡以及執行其他惡意活動。
讓我們更多地了解它。
什麼是 Log4Shell – Log4j 漏洞?
Log4Shell 是 Log4j 庫上的一個嚴重網絡安全漏洞,它會影響庫的核心功能。 它允許攻擊者通過執行遠程代碼執行來控制聯網設備或應用程序。 當他們成功時,他們可以:
- 在設備或系統上運行任何代碼
- 訪問所有網絡和數據
- 修改或加密受影響應用或設備上的任何文件
此漏洞由阿里巴巴(中國電子商務巨頭)的安全研究員陈兆軍於 2021 年 11 月 24 日首次報告。 該漏洞影響了他們的 Minecraft 服務器,阿里巴巴的雲安全團隊於 12 月 9 日發現了該服務器。

接下來,NIST 在國家漏洞數據庫中發布了這個漏洞,並將其命名為 CVE-2021-44228。 Apache 軟件基金會隨後將該漏洞的 CVSS 嚴重性評為 10。 這很少被分配並且非常嚴重,因為它有可能被廣泛而容易地利用,從而對組織和個人造成巨大損害。
作為回應,Apache 發布了針對此漏洞的補丁,但仍有一些部分未解決,導致其他漏洞:
- CVE-2021-45046 通過 JNDI 查找促進了拒絕服務 (DoS) 攻擊
- CVE-2021-45105 允許黑客控制線程上下文映射信息並通過解釋精心製作的字符串引發 DoS 攻擊
- CVE-2021-44832 通過遠程代碼注入 (RCE) 影響所有 Log4j 2 版本
Log4Shell 是如何工作的?
要了解它的嚴重性以及 Log4Shell 可以造成多大的危害,有必要了解這個 Log4j 漏洞是如何工作的。
Log4Shell 漏洞允許攻擊者遠程將任意代碼注入網絡並獲得對其的完全控制。
這個網絡攻擊序列從日誌庫開始,例如 Log4j,收集和存儲日誌信息。 如果沒有日誌庫,所有來自服務器的數據將在數據收集後立即存檔。
但是如果你想分析這些數據或者需要根據特定的日誌信息採取一些行動,你將需要一個日誌庫在日誌數據被歸檔之前對其進行解析。

由於 Log4j 漏洞,任何使用 Log4j 的系統或應用程序都容易受到網絡攻擊。 日誌庫根據輸入執行代碼。 黑客可以強制日誌庫執行有害代碼,因為該漏洞將允許他們操縱輸入。
與此同時,很多事情都在後台發生。 當 Log4j 被傳遞一個特製的字符串時,它將調用 LDP 服務器並下載託管在其目錄中的代碼以執行代碼。 這樣,攻擊者可以創建一個 LDAP 服務器來存儲惡意代碼,從而幫助他們控制執行代碼的任何服務器。 然後它會發送一個字符串,將他們的惡意代碼引導到目標應用程序或系統,並完全控制它。
所以,這就是如何利用 Log4j 漏洞:
- 攻擊者發現了一個帶有易受攻擊的 Log4j 版本的服務器。
- 他們將向目標服務器發送帶有惡意 LDAP 服務器鏈接的獲取請求。
- 目標服務器將直接連接到此 LDAP 服務器,而不是驗證請求。
- 攻擊者現在將向目標服務器發送包含惡意代碼的 LDAP 服務器響應。 由於 Log4j 的漏洞允許接收代碼並在未經驗證的情況下執行它,黑客可以利用此弱點侵入目標服務器並利用連接的系統、網絡和設備。
Log4j 漏洞如何危害用戶?
Log4j 漏洞令人擔憂,因為它用於廣泛的軟件應用程序和系統。
由於日誌記錄是大多數軟件應用程序的基本功能,而 Log4j 是該領域的領先解決方案,因此 Log4j 可以在各種軟件系統中找到應用程序。
一些使用 Log4j 的流行服務和應用程序是 Minecraft、AWS、iCloud、Microsoft、Twitter、互聯網路由器、軟件開發工具、安全工具等。 因此,攻擊者可以針對來自家庭用戶、代碼開發人員、服務提供商以及其他相關專業人士和個人的大量應用程序、服務和系統。

此外,Log4j 漏洞極易被攻擊者利用。 整個過程需要較少的技能組合,而不是專家水平,來進行攻擊。 這就是為什麼利用此漏洞的攻擊數量正在增加的原因。
Log4j 漏洞的影響是:
- 拒絕服務攻擊
- 供應鏈攻擊
- 硬幣開採
- 惡意軟件注入,例如勒索軟件和特洛伊木馬
- 任意代碼注入
- 遠程代碼執行
和更多。
由於這些攻擊,您可能會失去對應用程序、系統和設備的控制,並且您的數據可能會成為攻擊者的犧牲品,這些攻擊者可能會出售、操縱數據或將其暴露給外部世界。 因此,您的業務可能會在客戶數據隱私、信任、組織機密,甚至您的銷售和收入方面受到損害,更不用說合規風險了。
根據一份報告,超過 40% 的全球企業網絡因該漏洞而遭受攻擊。
因此,即使您沒有在應用程序中使用任何易受攻擊的 Log4j 版本,您的第三方集成也可能會使用它,這會使您的應用程序容易受到攻擊。
請注意,Log4j 2.17.0 之前的所有 Log4j 版本。 受到影響; 因此,如果您使用記錄器,則必須升級它。 此外,受此 Log4j 漏洞影響的著名供應商是 Adobe、AWS、IBM、Cisco、VMware、Okta、Fortinet 等。如果您使用其中任何一個,請持續監控您的應用程序並使用安全系統盡快修復問題出現。

如何檢測受 Log4j 影響的程序並修復問題
Log4Shell 漏洞的 CVSS 得分為 10。 因此,尚未修補 Log4j 中的所有問題。 但您或您的第三方供應商可能正在使用您在應用程序中使用的 Log4j。
因此,如果您想保護您的數據、系統和網絡,請確保遵循一些補救措施。
#1。 更新您的 Log4j 版本

如果您想保護您的設備和應用程序免受 Log4j 漏洞導致的攻擊,將您當前的 Log4j 版本更新到 Log 4j 2.17.1 是最有效的補救技術。
Log4Shell 是一種零日攻擊,可能會影響您的軟件生態系統。 Apache 已經修復了最近版本中的一些漏洞,但是如果您的系統在升級之前被入侵,您仍然處於危險之中。
因此,假設這一點,您不僅必須升級版本,還必須立即啟動事件響應程序,以確保您的系統和應用程序中沒有漏洞並減輕攻擊。 您還必須查看所有服務器日誌以查找入侵指標 (IOC) 並持續監控您的系統和網絡。
#2。 使用最新的防火牆和安全系統
Web 應用程序防火牆 (WAF) 和下一代防火牆等防火牆可以通過掃描傳入和傳出數據包並阻止可疑數據包來幫助保護您的網絡外圍免受攻擊者的攻擊。 因此,請在您的網絡中使用最新的防火牆並在您的服務器上設置嚴格的傳出規則,以幫助防止與 Log4j 漏洞相關的攻擊。
儘管攻擊者可以繞過防火牆,但您仍然可以通過可以阻止攻擊者請求的防火牆獲得一定程度的安全性。
此外,使用最新的簽名和規則更新您的所有安全系統,例如入侵檢測系統 (IDS)、入侵防禦系統 (IPS) 等。 這些系統將幫助阻止或過濾 RMI 和 LDAP 流量連接到惡意 LDAP 服務器。
#3。 實施 MFA

在您的應用程序和系統中設置多因素身份驗證 (MFA) 將為攻擊者提供更好的安全性。 即使攻擊者設法破壞第一層,它也會提供第二層安全性。 您可以通過指紋、虹膜掃描等生物識別技術、設置安全問題或啟用安全 PIN 來完成此操作。
使用 MFA 將增加攻擊者執行全面攻擊的難度和時間。 同時,它還可以立即將事件通知您,以便您在仍有時間時採取必要的補救措施。
此外,您還必須應用嚴格的 VPN 政策來減少數據洩露。 這將使用戶能夠從任何地方安全地訪問您的系統,而不必擔心攻擊者。
#4。 更改系統屬性
如果您無法升級到最新版本的 Log4j 庫,如果您使用從 Log4j 2.10 到 Log4j 2.14.1 的版本,則必須立即更改您的 java 系統屬性。
您必須以這樣的方式設置它,以防止攻擊者使用查找漏洞來檢測漏洞,然後找到利用它們的方法。
#5。 刪除 JNDI
這一關鍵安全漏洞的原因在於其設計。 JNDI Lookup 插件有一個設計缺陷,攻擊者可以通過該缺陷執行攻擊。
JNDI 用於基於其日誌中的輸入數據執行代碼,任何人都可以輕鬆地對其進行操作,因為記錄器無需驗證即可接受任何請求。
安全研究人員發現,該插件自 2013 年發布以來一直允許未解析的數據,並將其發送到 Log4j 庫。
因此,Log4j 漏洞很容易通過簡單的字符串注入來利用。 一旦攻擊者註入它,記錄器將接受字符串中請求的操作並立即執行它而無需驗證。
所以,如果你想保護你的系統和應用程序,你必須禁用這個類——JndiLookup。 這將阻止記錄器根據日誌數據採取行動。
事實上,JNDI 查找在 Log4j 2.16.0 中已經默認禁用,以嘗試保護您的應用程序和系統。
因此,如果您使用低於 2.16.0 的 Log4j 版本,請確保您已禁用 JNDI 查找。
#6。 與您的供應商交談
如果一切正常,更新了防火牆和安全系統,更新了 Log4j 版本,禁用了 JNDI 查找等,請不要放鬆。
即使您沒有在應用程序中使用易受攻擊的 Log4j 版本,您的第三方供應商也可能在使用它。 因此,您永遠不會知道您的應用程序或系統是如何被黑客入侵的,因為真正的問題在於您的第三方集成。
因此,請與您的供應商交談並確保他們也已將 Log4j 升級到最新版本並實施了上面討論的其他安全實踐。
#7。 使用 Log4j 漏洞掃描程序
市場上有許多 Log4j 漏洞掃描工具,可讓您輕鬆檢測系統和應用程序中的 Log4j 漏洞。
因此,當您尋找這些工具時,請檢查它們的準確率,因為其中許多會產生誤報。 此外,找到一個可以滿足您需求的工具,因為它們可能專注於識別 Log4j 漏洞、報告暴露和修復漏洞。
因此,如果您的重點是檢測,請找到可以檢測問題的 Log4j 漏洞掃描程序,或者使用可以檢測和修復問題的漏洞掃描程序。

一些最好的 Log4j 掃描工具是:
- Microsoft 365 Defende r:Microsoft 提供了一系列安全解決方案和工具來幫助您檢測和防止網絡中的 Log4j 漏洞。 您將能夠發現遠程代碼執行和利用嘗試,保護您免受 Windows 和 Linux 設備中的 Log4j 漏洞的影響。
- Amazon Inspector 和 AWS: Amazon 創建了一個掃描工具來查找 Amazon EC2 實例和 Amazon ECR 中的 Log4j 漏洞。
- CloudStrike 存檔掃描工具 (CAST): CloudStrike 還創建了一個出色的掃描工具來檢測 Log4j 漏洞,以幫助您在攻擊者利用它之前及時修復問題。
- Google Cloud Logging 檢測: Google 的雲日誌檢測解決方案允許您使用 Logs Explorer 檢測 Log4j 漏洞。 您可以在此工具中創建日誌查詢並掃描潛在的漏洞利用字符串。
- 谷歌還創建了 log4jscanner,一個用於檢測 Log4j 漏洞的開源文件系統掃描程序。
- BurpSuite Log4j Scanner:這是一個安全插件,供專業人士和企業使用,幫助他們檢測 Log4j 漏洞。
- Huntress Log4Shell Vulnerability Tester:此工具隨機生成一個唯一標識符,您可以在測試輸入字段時使用該標識符。 在應用程序或輸入字段中發現漏洞後,其安全的 LDAP 服務器將立即終止惡意連接並確保您的安全。
- WhiteSource Log4j Detect: WhiteSource 創建了一個免費的 CLI 工具 WhiteSource Log4j Detect,託管在 GitHub 上,以幫助您檢測和修復 Log4j 漏洞 - CVE-2021-445046 和 CVE-2021-44228。
- 用於 Log4j 的 JFrog 開源掃描工具: JFrog 創建了各種開源解決方案和工具來查找二進製文件和源代碼中的 Log4j 漏洞。
結論
Log4j 漏洞是一個關鍵的安全問題。 由於這個日誌庫在各種應用程序和系統中被廣泛使用,Log4j 漏洞已經變得普遍,允許攻擊者利用廣泛的系統和應用程序。
因此,如果您想保護您的系統和應用程序免受此漏洞的影響,請確保將 Log4j 庫升級到最新版本並實施上述最佳安全實踐。