Windows 子系統 Linux 版 (WSL) 的 適用於端點的 Microsoft Defender 外掛程式
適用於:
- 適用於端點的 Microsoft Defender 方案 2
- Windows 11
- Windows 10 版本 2004 和更新版本 (組建 19044 和更新版本)
概觀
Windows 子系統 Linux 版 (WSL) 2 取代 適用於端點的 Microsoft Defender 不含外掛程式) 所支援的舊版 WSL (,提供與 Windows 緊密整合,但使用虛擬化技術隔離的 Linux 環境。 適用於 WSL 的適用於端點的 Defender 外掛程式可讓適用於端點的 Defender 插入隔離的子系統,以提供所有執行中 WSL 容器的更可見度。
已知問題和限制
開始之前,請注意下列考慮:
外掛程式不支援在 之前的版本
1.24.522.2
上自動更新。 版本和更新版本1.24.522.2
。 匯報 透過所有通道的 Windows Update 支援。 匯報 透過 Windows Server Update Services (WSUS) 、System Center Configuration Manager (SCCM) ,以及 Microsoft 更新目錄僅在生產週期中支援,以確保套件穩定性。外掛程式需要幾分鐘的時間才能完全具現化,WSL2 實例最多需要 30 分鐘的時間才能自行上線。 短期 WSL 容器實例可能會導致 WSL2 實例未顯示在 Microsoft Defender 入口網站中, (https://security.microsoft.com) 。 當任何散發已執行的時間夠長 (至少 30 分鐘) 時,它就會顯示出來。
不支援執行自定義核心和自定義核心命令行。 雖然外掛程式不會封鎖在該組態中執行,但是當您執行自定義核心和自定義核心命令行時,它並不保證 WSL 內的可見性。 建議您使用 Microsoft Intune wsl 設定來封鎖這類組態。
使用ARM64處理器的電腦不支援外掛程式。
此外掛程式可讓您查看來自 WSL 的事件,但 WSL 邏輯裝置無法使用其他功能,例如反惡意程式碼軟體、威脅與弱點管理 和回應命令。
軟體必要條件
WSL 版本或更新版本
2.0.7.0
必須使用至少一個作用中的散發版本來執行。 執行wsl --update
以確定您使用最新版本。 如果wsl -–version
顯示早於2.0.7.0
的版本,請執行wsl -–update –pre-release
以取得最新的更新。Windows 用戶端裝置必須上線至適用於端點的 Defender。
Windows 用戶端裝置必須執行 Windows 10 2004 版和更新版本, (組建 19044 和更新版本) ,或 Windows 11 以支援可與外掛程式搭配運作的 WSL 版本。
軟體元件和安裝程式檔名
安裝程式: DefenderPlugin-x64-0.24.426.1.msi
。 您可以從 Microsoft Defender 入口網站的上線頁面下載。 (移至 [設定>端點>上線]。)
安裝目錄:
%ProgramFiles%
%ProgramData%
已安裝的元件:
DefenderforEndpointPlug-in.dll
. 此 DLL 是用來載入適用於端點的 Defender 以在 WSL 內運作的連結庫。 您可以在%ProgramFiles%\Microsoft Defender for Endpoint plug-in for WSL\plug-in
找到它。healthcheck.exe
. 此程式會檢查適用於端點的Defender的健康情況狀態,並可讓您查看已安裝的 WSL、外掛程式和適用於端點的Defender版本。 您可以在%ProgramFiles%\Microsoft Defender for Endpoint plug-in for WSL\tools
找到它。
安裝步驟
如果您的 Windows 子系統 Linux 版 尚未安裝,請遵循下列步驟:
開啟終端機或命令提示字元。 (在 Windows 中,移至 [啟動>命令提示字元]。或者,以滑鼠右鍵按兩下 [開始] 按鈕,然後選取 [Terminal.)
執行
wsl -–install
命令。確認已安裝並執行 WSL。
使用終端機或命令提示字元,
wsl –-update
執行 以確定您有最新版本。wsl
執行 命令以確保 WSL 在測試之前正在執行。
依照下列步驟安裝外掛程式:
安裝從 Microsoft Defender 入口網站的上線區段下載的 MSI 檔案 (設定>端點>上>線 Windows 子系統 Linux 版 2 (外掛程式) ) 。
開啟命令提示字元/終端機,然後執行
wsl
。
注意事項
如果 WslService
正在執行,它會在安裝程序期間停止。 您不需要個別將子系統上線。 相反地,外掛程式會自動上線到 Windows 主機上線的租使用者。
適用於端點的 Microsoft Defender WSL KB 更新外掛程式的更新。
安裝驗證檢查清單
更新或安裝之後,請等候至少五分鐘讓外掛程式完全初始化和寫入記錄輸出。
開啟終端機或命令提示字元。 (在 Windows 中,移至 [啟動>命令提示字元]。或者,以滑鼠右鍵按兩下 [開始] 按鈕,然後選取 [Terminal.)
執行命令:
cd "%ProgramFiles%\Microsoft Defender for Endpoint plug-in for WSL\tools"
.執行
.\healthcheck.exe
命令。檢閱Defender和 WSL 的詳細數據,並確定它們符合或超過下列需求:
-
外掛程式版本:
1.24.522.2
-
WSL 版本:
2.0.7.0
或更新版本 -
Defender 應用程式版本:
101.24032.0007
-
Defender 健全狀況狀態:
Healthy
-
外掛程式版本:
為在 WSL 中執行的 Defender 設定 Proxy
本節說明如何設定適用於端點的 Defender 外掛程式的 Proxy 連線。 如果您的企業使用 Proxy 來連線到在 Windows 主機上執行的適用於端點的 Defender,請繼續閱讀以判斷是否需要為外掛程式設定它。
如果您想要針對 WSL 外掛程式的 MDE 使用主機 Windows EDR 遙測 Proxy 設定,則不需要再執行任何動作。 外掛程式會自動採用此設定。
如果您想要將主機 winHTTP Proxy 設定用於 WSL 外掛程式的 MDE,則不需要再執行任何動作。 外掛程式會自動採用此設定。
如果您想要將主機網路和網路 Proxy 設定用於 WSL 外掛程式的 MDE,則不需要再執行任何動作。 外掛程式會自動採用此設定。
注意事項
WSL Defender 僅 http
支援 Proxy。
外掛程式 Proxy 選取專案
如果您的主電腦包含多個 Proxy 設定,外掛程式會選取具有下列階層的 Proxy 元件:
適用於端點的Defender靜態 Proxy 設定 (
TelemetryProxyServer
) 。Winhttp
proxy (透過netsh
命令) 設定。網路 & 因特網 Proxy 設定。
例如,如果您的主計算機同時 Winhttp proxy
具有 和 Network & Internet proxy
,外掛程式會選取 Winhttp proxy
作為 Proxy 組態。
注意事項
DefenderProxyServer
不再支援登錄機碼。 請遵循本文稍早所述的步驟,在外掛程式中設定 Proxy。
適用於在 WSL 中執行之適用於端點的 Defender 連線能力測試
每當裝置上有 Proxy 修改,且排定每小時執行一次時,就會觸發適用於端點的 Defender 連線測試。
啟動 wsl 機器時,請等候 5 分鐘,然後執行 healthcheck.exe
位於 %ProgramFiles%\Microsoft Defender for Endpoint plug-in for WSL\tools
的 (,以取得連線測試) 的結果。 如果成功,您可以看到連線測試成功。 如果失敗,您可以看到連線測試invalid
指出從 WSL 的 MDE 外掛程式到適用於端點的 Defender 服務 URL 的用戶端連線失敗。
注意事項
ConnectivityTest
不再支援登錄機碼。
若要設定要在 WSL 容器中使用的 Proxy (子系統) 上執行的散發套件,請參閱 WSL 中的進階設定組態。
驗證功能和 SOC 分析師體驗
安裝外掛程式之後,子系統及其所有執行中的容器都會上線至 Microsoft Defender 入口網站。
登入 Microsoft Defender 入口網站,然後開啟 [裝置] 檢視。
使用 標籤 WSL2 進行篩選。
您可以使用適用於 WSL 的適用於端點的 Active Defender 外掛程式來查看環境中的所有 WSL 實例。 這些實例代表在指定主機上 WSL 內執行的所有散發套件。 裝置的主機名符合 Windows 主機的主機名。 不過,它會以Linux裝置表示。
開啟裝置頁面。 在 [ 概觀] 窗格中,有一個裝置裝載位置的連結。 連結可讓您了解裝置正在 Windows 主機上執行。 然後,您可以樞紐至主機,以進行進一步的調查和/或回應。
時間軸會填入,類似於 Linux 上適用於端點的 Defender,其中包含來自子系統內的事件 (檔案、進程、網路) 。 您可以在時程表檢視中觀察活動和偵測。 警示和事件也會適當地產生。
設定 WSL 機器的自訂標籤
外掛程式會使用標籤 將 WSL 機器上線 WSL2
。 如果您或您的組織需要自訂標籤,請遵循下列步驟:
以系統管理員身分開啟登錄 編輯器。
使用下列詳細資料建立登入機碼:
- 名稱:
GROUP
- 類型:
REG_SZ
或登錄字串 - 值:
Custom tag
- 路徑:
HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows Advanced Threat Protection\DeviceTagging
- 名稱:
設定登錄之後,請使用下列步驟重新啟動 wsl:
開啟命令提示字元,然後執行命令 。
wsl --shutdown
執行
wsl
命令。
等候 5-10 分鐘,讓入口網站反映變更。
注意事項
登入中設定的自訂標籤後面會接著 _WSL2
。
例如,如果登入值集是 Microsoft
,則自訂標籤將會是 Microsoft_WSL2
,而且入口網站中會顯示相同的 。
測試外掛程式
若要在安裝后測試外掛程式,請遵循下列步驟:
開啟終端機或命令提示字元。 (在 Windows 中,移至 [啟動>命令提示字元]。或者,以滑鼠右鍵按兩下 [開始] 按鈕,然後選取 [Terminal.)
執行
wsl
命令。從 下載並擷 https://aka.ms/MDE-Linux-EDR-DIY取腳本檔案。
在 Linux 提示字元中,執行 命令
./mde_linux_edr_diy.sh
。在 WSL2 實例上偵測到幾分鐘后,入口網站中應該會出現警示。
注意事項
事件大約需要五分鐘才會出現在 Microsoft Defender 入口網站上。
將機器視為環境中要對其執行測試的一般Linux主機。 特別是,我們想要取得您對於使用新外掛程式呈現潛在惡意行為的能力的意見反應。
進階搜捕
在 [進階搜捕] 架構的數據表底下 DeviceInfo
,有一個稱為 HostDeviceId
的新屬性,可用來將 WSL 實例對應至其 Windows 主機裝置。 以下是一些搜捕查詢範例:
取得目前組織/租使用者的所有 WSL 裝置標識碼
//Get all WSL device ids for the current organization/tenant
let wsl_endpoints = DeviceInfo
| where OSPlatform == "Linux" and isempty(HostDeviceId) != true
| distinct DeviceId;
wsl_endpoints
取得 WSL 裝置識別碼及其對應的主機裝置識別碼
//Get WSL device ids and their corresponding host device ids
DeviceInfo
| where OSPlatform == "Linux" and isempty(HostDeviceId) != true
| distinct WSLDeviceId=DeviceId, HostDeviceId
取得執行 curl 或 wget 的 WSL 裝置識別符清單
//Get a list of WSL device ids where curl or wget was run
let wsl_endpoints = DeviceInfo
| where OSPlatform == "Linux" and isempty(HostDeviceId) != true
| distinct DeviceId;
DeviceProcessEvents
| where FileName == "curl" or FileName == "wget"
| where DeviceId in (wsl_endpoints)
| sort by Timestamp desc
疑難排解
安裝失敗
如果您在啟動 WSL 時看到錯誤,例如 A fatal error was returned by plugin 'DefenderforEndpointPlug-in' Error code: Wsl/Service/CreateInstance/CreateVm/Plugin/ERROR_FILE_NOT_FOUND
,這表示適用於 WSL 的 Defender 外掛程式安裝有錯誤。 若要修復它,請遵循下列步驟:
在 控制台 中,移至 [程序程式>和功能]。
搜尋並選取 WSL 的 適用於端點的 Microsoft Defender 外掛程式。 然後選取 [修復]。 此動作應該藉由將正確的檔案放在預期的目錄中來修正問題。
命令 healthcheck.exe
會顯示輸出:「使用 『bash』 命令啟動 WSL 散發版本,並在五分鐘內重試」。
開啟終端機實例,然後執行 命令
wsl
。請等候至少五分鐘,再重新執行健康情況檢查。
命令 healthcheck.exe
可能會顯示輸出「正在等候遙測。」 請在五分鐘內重試。」
如果發生此錯誤,請等候五分鐘並重新執行 healthcheck.exe
。
您在 Microsoft Defender 入口網站中看不到任何裝置,或在時程表中看不到任何事件
請檢查下列事項:
如果您沒有看到機器物件,請確定已有足夠的時間讓上線完成 (通常最多 10 分鐘) 。
請務必使用正確的篩選條件,而且您已獲指派適當的許可權來檢視所有裝置物件。 (例如,您的帳戶/群組是否限制為特定群組?)
使用健康情況檢查工具來提供整體外掛程式健康情況的概觀。 開啟終端機,然後從
%ProgramFiles%\Microsoft Defender for Endpoint plug-in for WSL\tools
執行healthcheck.exe
工具。啟用連線能力測試,並在 WSL 中檢查適用於端點的 Defender 連線能力。 如果連線測試失敗,請將健康情況檢查工具的輸出提供給我們的支援小組。
線上能力測試報告健康情況檢查「無效」
如果您的電腦有 Proxy 設定,請執行 命令
healthCheck --extendedProxy
。 這會提供在您的電腦上設定哪些 Proxy () ,以及這些設定是否對 WSL Defender 無效的資訊。如果上述步驟無法修正此問題,請在
.wslconfig
位於 的%UserProfile%
中包含下列組態設定,然後重新啟動 WSL。 如需設定的詳細數據,請參閱 WSL 設定。在 Windows 11
# Settings apply across all Linux distros running on WSL 2 [wsl2] dnsTunneling=true networkingMode=mirrored
在 Windows 10
# Settings apply across all Linux distros running on WSL 2 [wsl2] dnsProxy=false
線上問題持續發生
依照下列步驟收集網路記錄:
) PowerShell 提示字元開啟提升許可權的 (系統管理員。
下載並執行:
.\collect-networking-logs.ps1
Invoke-WebRequest -UseBasicParsing "https://raw.githubusercontent.com/microsoft/WSL/master/diagnostics/collect-networking-logs.ps1" -OutFile collect-networking-logs.ps1 Set-ExecutionPolicy Bypass -Scope Process -Force .\collect-networking-logs.ps1
開啟新的命令提示字元,然後執行下列命令:
wsl
。開啟提升許可權的 (系統管理員) 命令提示字元,然後執行下列命令:
wsl --debug-shell
。在偵錯殼層中,執行:
mdatp connectivity test
。允許完成連線測試。
停止步驟 2 中執行的 .ps1。
共用產生的 .zip 檔案以及可如步驟中所述收集的支援套 件組合。
收集支援配套
如果您遇到任何其他挑戰或問題,請開啟終端機,然後執行下列命令來產生支援配套:
cd "%ProgramFiles%\Microsoft Defender for Endpoint plug-in for WSL\tools"
.\healthcheck.exe --supportBundle
您可以在上一個命令所提供的路徑中找到支援配套。
WSL1 與 WSL2
Microsoft Defender WSL 的端點外掛程式支援在 WSL 2 上執行的 Linux 發行版。 如果它們與 WSL 1 相關聯,您可能會遇到問題。 因此,建議您停用 WSL 1。 若要使用 Intune 原則來執行此動作,請執行下列步驟:
移至您的 Microsoft Intune 系統管理中心。
移至 [裝置>組態配置檔]>[建立>新原則]。
選取 [Windows 10] 和更新版本>的 [設定] 目錄。
建立新配置檔的名稱,並搜尋 Windows 子系統 Linux 版 以查看並新增可用設定的完整清單。
將 [ 允許 WSL1] 設定 設為 [停用],以確保只能使用 WSL 2 散發套件。
或者,如果您想要繼續使用 WSL 1,或不使用 Intune 原則,您可以選擇性地在 PowerShell 中執行 命令,將已安裝的散發套件關聯至 WSL 2 上執行:
wsl --set-version <YourDistroName> 2
若要讓 WSL 2 作為系統中要安裝新發行版的預設 WSL 版本,請在 PowerShell 中執行下列命令:
wsl --set-default-version 2
覆寫發行通道
此外掛程式預設會使用 Windows EDR 通道。 如果您想要切換至先前的環形,請將 設定為
OverrideReleaseRing
登錄下的下列其中一項,然後重新啟動 WSL:-
名稱:
OverrideReleaseRing
-
類型:
REG_SZ
-
值:
Dogfood or External or InsiderFast or Production
-
路徑:
Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft Defender for Endpoint plug-in for WSL
-
名稱: