瞭解如何在適用於端點的 Microsoft Defender 中管理 Log4Shell 弱點
Log4Shell 弱點是遠端程式代碼執行 (在 Apache Log4j 2 記錄連結庫中找到的 RCE) 弱點。 由於 Apache Log4j 2 常供許多軟體應用程式和在線服務使用,因此對全球各地的公司而言,這是一個複雜且高風險的情況。 CVE-2021-44228 CVE-2021-45046 (稱為 “Log4Shell”,) 引進新的攻擊媒介,攻擊者可以利用此攻擊媒介來擷取數據,並在組織中部署勒索軟體。
注意事項
請參閱部落格 指引,以預防、偵測及搜捕Log4j 2弱點的惡意探索,Microsoft資訊安全回應中心 ,以取得有關弱點和產品特定風險降低建議的指引和技術資訊,以保護您的組織。
探索、監視和風險降低功能的概觀
Defender 弱點管理提供下列功能,可協助您識別、監視及減輕組織暴露於 Log4Shell 弱點的風險:
- 探索:偵測已公開的裝置,包括Microsoft適用於端點的Defender上線裝置,以及已探索但尚未上線的裝置,都是以磁碟上偵測到的易受攻擊軟體和易受攻擊的檔案為基礎。
- 威脅感知: 用來評估組織暴露程度的合併檢視。 此檢視會顯示您在裝置層級和軟體層級的曝光情形,並提供易受攻擊檔案詳細數據的存取權,例如上次看到檔案、上次執行的時間,以及上次使用開啟的埠執行該檔案的時間。 您可以使用此資訊來排定補救動作的優先順序。 與公開裝置相關的數據最多可能需要 24 小時才會出現在儀錶板上。
- 風險降低選項: 套用風險降低選項,以協助降低暴露風險。
- 進階搜捕: 使用進階搜捕來傳回磁碟上所識別易受攻擊log4j檔案的詳細數據。
注意事項
Windows 10 & Windows 11、Windows Server、Linux 和 macOS 支持這些功能。
Linux 上的支援需要 Microsoft適用於端點的 Defender Linux 用戶端版本 101.52.57 (30.121092.15257.0) 或更新版本。
macOS 上的支援需要Microsoft適用於端點的Defender macOS用戶端版本20.121111.15416.0或更新版本。
如需支援版本的詳細資訊,請參閱 支援的操作系統平臺和功能。
公開的裝置探索
在 Microsoft Defender 入口網站中,內嵌 Defender 弱點管理功能以及啟用 Log4j 偵測,可協助您探索暴露在 Log4Shell 弱點的裝置。
已上線的裝置會使用現有的內嵌 Defender 弱點管理功能進行評估,以探索易受攻擊的軟體和檔案。
若要在探索到但尚未上線的裝置上進行偵測,必須啟用Log4j偵測。 這會以裝置探索主動探查網路的相同方式起始探查。 探查包含多個上線端點, (Windows 10+ 和 Windows Server 2019+ 裝置) ,且只在子網內探查,以偵測容易受到 CVE-2021-44228 攻擊和遠端公開的裝置。
若要啟用 Log4 偵測:
移至 [設定裝置>探索探索>設定]。
選 取 [啟用 Log4j2 偵測 (CVE-2021-44228) 。
選取 [儲存]。
執行這些探查會觸發標準 Log4j 流程,而不會對所探查的裝置或探查裝置造成任何有害的影響。 探查本身的完成方式是將多個 HTTP 要求傳送至探索到的裝置,以常見的 Web 應用程式埠為目標 (例如 - 80,8000,8080,443,8443) 和 URL。 要求包含具有 JNDI 承載的 HTTP 標頭,可觸發來自探查計算機的 DNS 要求。
例如,User-Agent:${jndi:dns://192.168.1.3:5353/MDEDiscoveryUser-Agent},其中 192.168.1.3 是探查計算機的 IP。
注意事項
啟用 Log4j2 偵測也表示已上線的裝置將使用自我探查來偵測本機弱點。
易受攻擊的軟體和檔案偵測
Defender 弱點管理提供一層偵測,可協助您探索:
易受攻擊的軟體:探索是以已安裝的應用程式 Common Platform 列舉 (CPE) 為基礎,已知容易受到 Log4j 遠端程式代碼執行的影響。
易受攻擊的檔案: 系統會評估記憶體中的檔案和檔案系統中的檔案。 這些檔案可以是具有已知易受攻擊版本的 Log4j 核心 jar 檔案,或包含易受攻擊 jndi 查閱類別或易受攻擊 log4j 核心檔案的 Uber-JAR。 具體而言,它會:
- 藉由檢查 JAR 檔案並搜尋下列檔案來判斷 JAR 檔案是否包含易受攻擊的 Log4j 檔案:\META-INF\maven\org.apache.logging.log4j\log4j-core\pom.properties - 如果此檔案存在,則會讀取和擷取 Log4j 版本。
- 搜尋 JAR 檔案內的 JndiLookup.class 檔案,方法是尋找包含字串 “/log4j/core/lookup/JndiLookup.class” 的路徑 - 如果 JndiLookup.class 檔案存在,Defender 弱點管理會判斷此 JAR 是否包含具有 pom.properties 中定義之版本的 Log4j 檔案。
- 搜尋包含下列任何字串的路徑,以搜尋內嵌在巢狀 JAR 中的任何易受攻擊 Log4j 核心 JAR 檔案:
- lib/log4j-core-
- WEB-INF/lib/log4j-core-
- App-INF/lib/log4j-core-
下表描述支援的平臺和版本的搜尋功能:
功能 | 檔案類型 | Windows 10+、 server2019+ |
Server 2012R2、 server2016 |
Server 2008R2 | Linux + macOS |
---|---|---|---|---|---|
在記憶體中搜尋 | Log4j-core | 是 | 是[1] | - | 是 |
Uber-JARs | 是 | 是[1] | - | 是 | |
搜尋磁碟上的所有檔案 | Log4j-core | 是 | 是[1] | 是 | - |
Uber-JARs | 是 | 是[1] | - | - |
在 Windows Server 2012 R2 和 2016 上安裝 KB5005292 時, (1) 功能可供使用。
瞭解您的 Log4Shell 曝光和風險降低選項
在 Microsoft Defender 入口網站中,移至 [弱點管理>弱點]。
選取 CVE-2021-44228。
選 取 [開啟弱點頁面]。
Log4Shell 弱點防護功能
使用預設組態防止 Log4j 2.10 - 2.14.1 版上的 JNDI 查閱,即可減輕 log4Shell 弱點。 若要從 威脅感知儀錶板建立此風險降低動作:
選 取 [檢視弱點詳細數據]。
選 取 [風險降低選項]。
您可以選擇將風險降低套用至所有公開的裝置,或選取特定的上線裝置。 若要完成程式並在裝置上套用風險降低功能,請選取 [建立風險降低動作]。
風險降低狀態
風險降低狀態指出是否已將停用 JDNI 查閱的因應措施防護功能套用至裝置。 您可以在 [公開的裝置] 索引標籤中檢視每個受影響裝置的風險降低狀態。 這有助於根據裝置的風險降低狀態來排定安全防護和/或修補的優先順序。
下表列出可能的風險降低狀態:
風險降低狀態 | 描述 |
---|---|
套用的因應措施 |
Windows:在最新的裝置重新啟動之前觀察到LOG4J_FORMAT_MSG_NO_LOOKUPS環境變數。 Linux + macOS:所有執行中的進程在其環境變數中都有 LOG4J_FORMAT_MSG_NO_LOOKUPS=true。 |
待重新啟動的因應措施 | 已設定LOG4J_FORMAT_MSG_NO_LOOKUPS環境變數,但未偵測到下列重新啟動。 |
未套用 |
Windows:未觀察到LOG4J_FORMAT_MSG_NO_LOOKUPS環境變數。 Linux + macOS:並非所有執行中的進程在其環境變數中都有 LOG4J_FORMAT_MSG_NO_LOOKUPS=true,且未在裝置上套用風險降低動作。 |
已部分緩解 | Linux + macOS:雖然已在裝置上套用風險降低動作,但並非所有執行中的進程在其環境變數中都有 LOG4J_FORMAT_MSG_NO_LOOKUPS=true。 |
不適用 | 具有不在風險降低版本範圍內易受攻擊檔案的裝置。 |
Unknown | 目前無法判斷風險降低狀態。 |
注意事項
可能需要數小時的時間,裝置的更新防護狀態才會反映出來。
還原針對 Log4Shell 弱點套用的防護功能
在需要還原風險降低的情況下,請遵循下列步驟:
針對 Windows:
開啟提升權限的命令提示字元視窗。
執行下列命令:
[Environment]::SetEnvironmentVariable("LOG4J\_FORMAT\_MSG\_NO\_LOOKUPS", $null,[EnvironmentVariableTarget]::Machine)
變更會在裝置重新啟動之後生效。
針對 Linux:
開啟 /etc/environment 檔案,並刪除行 LOG4J_FORMAT_MSG_NO_LOOKUPS=true
刪除 /etc/systemd/system.conf.d/log4j_disable_jndi_lookups.conf 檔案
刪除 /etc/systemd/user.conf.d/log4j_disable_jndi_lookups.conf 檔案
變更會在裝置重新啟動之後生效。
針對macOS:
拿掉 setenv 檔案。從下列資料夾LOG4J_FORMAT_MSG_NO_LOOKUPS.plist:
- /Library/LaunchDaemons/
- /Library/LaunchAgents/
- /Users/[username]/Library/LaunchAgents/ - 適用於所有使用者
變更會在裝置重新啟動之後生效。
Apache Log4j 安全性建議
若要查看與 Apache log4j 相關的作用中安全性建議,請從弱點詳細數據頁面選取 [安全性建議 ] 索引標籤。 在此範例中,如果您選取 [更新 Apache Log4j] ,您會看到另一個具有詳細資訊的飛出視窗:
選 取 [要求補救 ] 以建立補救要求。
在 Microsoft Defender 入口網站中探索弱點
一旦找到公開的裝置、檔案和軟體,Microsoft Defender 入口網站中會透過下列體驗傳達相關信息:
軟體清查
在軟體清查頁面上,搜尋 CVE-2021-44228 以查看 Log4j 軟體安裝和曝光的詳細數據:
弱點
在弱點頁面上,搜尋 CVE-2021-44228 以查看 Log4Shell 弱點的相關信息:
使用進階搜捕
您可以使用下列進階搜捕查詢來識別裝置上已安裝軟體的弱點:
DeviceTvmSoftwareVulnerabilities
| where CveId in ("CVE-2021-44228", "CVE-2021-45046")
您可以使用下列進階搜捕查詢來識別裝置上已安裝軟體的弱點,以顯示磁碟的檔案層級結果:
DeviceTvmSoftwareEvidenceBeta
| mv-expand DiskPaths
| where DiskPaths contains "log4j"
| project DeviceId, SoftwareName, SoftwareVendor, SoftwareVersion, DiskPaths