概觀
Windows 子系統 Linux 版 (WSL) 2 取代了先前由 適用於端點的 Microsoft Defender 支援且未) 外掛的 WS (L 版本,提供一個與 Windows 無縫整合的 Linux 環境,但透過虛擬化技術隔離。 Defender for Endpoint for WSL 外掛使 Defender for Endpoint 能透過插入隔離子系統,提供對所有運行中的 WSL 容器更清晰的可視化。
必要條件
WSL 版本
2.0.7.0或更新版本必須至少有一個活躍發行版同時運行。 跑一wsl --update趟,確保你用的是最新版本。 如果wsl -–version顯示的版本比2.0.7.0還舊,請執行wsl -–update –pre-release以取得最新更新。Windows 用戶端裝置必須已接入 Defender for Endpoint。
支援的作業系統
- Windows 10,2004 版及以後版本 (19044 版及以後版本)
- Windows 11 支援可與外掛相容的 WSL 版本。
已知問題與限制
在開始之前,請注意以下幾點:
該外掛不支援在 之前
1.24.522.2版本的自動更新。 版本1.24.522.2及之後版本。 匯報透過 Windows Update 支援所有環路。 Windows Server Update Services (匯報 透過 WSUS) 、System Center Configuration Manager (SCCM) 和 Microsoft Update 目錄僅在生產環中支援,以確保套件的穩定性。外掛程式完全實例化需要幾分鐘,而 WSL2 實例則需約 30 分鐘自行上線。 短命的 WSL 容器實例可能導致 WSL2 實例不會出現在Microsoft Defender入口 (https://security.microsoft.com) 。 當任何發行系統持續運行足夠長 (至少30分鐘) ,它就會顯示出來。
不支援執行自訂核心及自訂核心命令列。 雖然外掛不會阻止該設定下的執行,但當你執行自訂核心和自訂核心指令列時,並不能保證在 WSL 中能看到。 我們建議用 Microsoft Intune 的 WSL 設定來阻擋這類設定。
該外掛程式不支援搭載 ARM64 處理器的機器。
該外掛不支援多重工作階段版本的 Windows 10 和 11。
該外掛提供 WSL 事件的可視化,但其他功能如反惡意軟體、威脅與弱點管理,以及回應指令,則無法在 WSL 邏輯裝置上提供。
軟體元件與安裝程式檔名
安裝師: DefenderPlugin-x64-0.24.426.1.msi。 你可以從 Microsoft Defender 入口網站的入職頁面下載。 (到 設定>端點>Onboarding.)
安裝目錄:
%ProgramFiles%%ProgramData%
安裝的元件:
DefenderforEndpointPlug-in.dll. 這個 DLL 是用來載入 Defender for Endpoint 在 WSL 中運作的函式庫。 你可以在%ProgramFiles%\Microsoft Defender for Endpoint plug-in for WSL\plug-in.healthcheck.exe. 此程式會檢查 Defender for Endpoint 的健康狀態,並讓您查看已安裝的 WSL、外掛及 Defender for Endpoint 版本。 你可以在%ProgramFiles%\Microsoft Defender for Endpoint plug-in for WSL\tools.
安裝步驟
如果你的 Windows 子系統 Linux 版還沒安裝,請依照以下步驟操作:
開啟終端機或命令提示字元。 (在 Windows 裡,請點到 開始>命令提示字元。或者,右鍵點擊開始按鈕,然後選擇 終端機 )
執行
wsl -–install命令。確認 WSL 是否已安裝並運作。
使用終端機或命令提示字元執行
wsl –-update,確認你有最新版本。在測試前執行
wsl該指令確認 WSL 是否在執行。
請依照以下步驟安裝外掛:
安裝從 Microsoft Defender 入口網站 Onboarding 下載的 MSI 檔案 (設定>端點>入職>Windows 子系統 Linux 版兩個 (外掛) ) 。
打開命令提示字元或終端機並執行
wsl。
注意事項
如果 WslService 正在運行,安裝過程中就會停止。 你不需要另外啟動子系統。 相反地,外掛會自動接入 Windows 主機所加入的租戶。
適用於端點的 Microsoft Defender 更新,用於 WSL KB Update 的外掛。
安裝驗證檢查清單
更新或安裝後,至少等待五分鐘,讓外掛程式完全初始化並寫入日誌輸出。
開啟終端機或命令提示字元。 (在 Windows 裡,請點到 開始>命令提示字元。或者,右鍵點擊開始按鈕,然後選擇 終端機 )
執行命令:
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 -
防禦者健康狀況:
Healthy
-
外掛版本:
設定 Defender 在 WSL 中執行的代理伺服器
本節說明如何為 Defender for Endpoint 外掛設定代理連線。 如果您的企業使用代理來連接在 Windows 主機上運行的 Defender for Endpoint,請繼續閱讀以判斷是否需要為該外掛設定代理。
如果你想用 Windows 主機的 EDR 遙測代理設定來做 MDE 的 WSL 外掛,不需要更多設定。 此配置會被外掛程式自動採用。
如果你想使用 MDE 的 host winhttp proxy 設定來做 WSL 外掛,不需要更多操作。 此配置會被外掛程式自動採用。
如果你想用 MDE 的主機網路和網路代理設定來做 WSL 外掛,就不需要更多了。 此配置會被外掛程式自動採用。
注意事項
WSL Defender 僅 http 支援代理伺服器。
外掛代理選擇
如果您的主機包含多個代理設定,外掛會依以下階層選擇代理配置:
Defender for Endpoint 靜態代理設定 (
TelemetryProxyServer) 。Winhttp代理 (透過netsh指令) 設定。網路 & 網路代理設定。
例如,如果你的主機同時
Winhttp proxy擁有 和Network & Internet proxy,外掛程式會Winhttp proxy選擇作為代理設定。
注意事項
DefenderProxyServer登錄檔金鑰已不再支援。 請依照本文前述的步驟設定代理輸入外掛。
在 WSL 中執行的 Defender for Endpoint 連線測試
Defender for Endpoint 連線測試會在你的裝置有代理修改時觸發,並排程每小時執行一次。
啟動 WSL 機器後,等待 5 分鐘,然後執行 healthcheck.exe 位於 (%ProgramFiles%\Microsoft Defender for Endpoint plug-in for WSL\tools 的連線測試結果,) 。 如果成功,你可以看到連接測試是成功的。 如果失敗,你會看到連線測試invalid顯示 MDE 外掛(用於 WSL)到 Defender for Endpoint 服務網址的用戶端連線失敗。
注意事項
ConnectivityTest登錄檔金鑰已不再支援。
若要在 WSL 容器中設定代理, (子系統) 上運行的發行版,請參閱 WSL 中的進階設定設定。
驗證功能與 SOC 分析師經驗
安裝外掛後,子系統及其所有執行中的容器會被接入 Microsoft Defender 入口網站。
登入 Microsoft Defender 入口網站,並開啟裝置檢視。
使用 標籤 WSL2 來篩選。
你可以透過啟用 Defender for Endpoint 的 WSL 外掛,看到環境中所有 WSL 實例。 這些實例代表在特定主機上運行於 WSL 內的所有發行版。 裝置的主機名稱與 Windows 主機相符。 不過,它被呈現為 Linux 裝置。
打開裝置頁面。 在 概覽 窗格裡,有一個裝置所托管的連結。 這個連結讓你了解裝置是在 Windows 主機上運行。 接著你可以轉向主機進行進一步調查和/或回應。
時間軸會被填入,類似於 Linux 上的 Defender for Endpoint,包含子系統內部的事件, (檔案、程序、網路) 。 你可以在時間軸視圖中觀察活動和偵測。 警報與事件也會依情況自動產生。
為您的 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 裡,請點到 開始>命令提示字元。或者,右鍵點擊開始按鈕,然後選擇 終端機 )
執行
wsl命令。下載並解壓腳本檔案。https://aka.ms/MDE-Linux-EDR-DIY
在 Linux 提示字元時,執行指令
./mde_linux_edr_diy.sh. 幾分鐘後,當 WSL2 實例偵測到警報時,入口網站會顯示警示。注意事項
事件大約需要五分鐘才會出現在 Microsoft Defender 入口網站上。
把機器當作環境中的一般 Linux 主機來進行測試。 特別是,我們希望能聽聽您對利用新外掛揭露潛在惡意行為的能力的回饋。
進階搜捕
在進階狩獵結構(Advanced Hunting)架構中,表格下方 DeviceInfo 有一個新 HostDeviceId 屬性,可以用來將 WSL 實例映射到其 Windows 主機裝置。 以下是幾個狩獵範例問題:
取得目前組織/租戶的所有 WSL 裝置 ID
//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 裝置 ID 及其對應的主機裝置 ID
//Get WSL device ids and their corresponding host device ids
DeviceInfo
| where OSPlatform == "Linux" and isempty(HostDeviceId) != true
| distinct WSLDeviceId=DeviceId, HostDeviceId
取得 WSL 裝置 ID 清單,curl 或 wget 是在那裡執行的
//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例如,代表 Defender for Endpoint 安裝 WSL 的外掛有問題。 修復方法請依照以下步驟進行:
指令 healthcheck.exe 顯示輸出:「用 'bash' 指令啟動 WSL 發行版,五分鐘後重試。」
開啟終端機實例並執行指令
wsl。至少等五分鐘再重做健康檢查。
指令 healthcheck.exe 可能會顯示輸出:「等待遙測。 請五分鐘後重試。」
如果發生錯誤,請等待五分鐘再重新執行 healthcheck.exe。
你在 Microsoft Defender 入口網站中看不到任何裝置,時間軸中也看不到任何事件
請檢查以下事項:
如果你沒看到機器物件,請確保有足夠時間讓入門程序完成 (通常長達10分鐘) 。
務必使用正確的篩選條件,並且你有適當的權限來查看所有裝置物件。 (例如,你的帳號/群組是否限制在特定群組 )
使用健康檢查工具來提供整體外掛健康狀況的概覽。 打開終端機,然後從 執行
healthcheck.exe這個工具。%ProgramFiles%\Microsoft Defender for Endpoint plug-in for WSL\tools啟用連線測試,並在 WSL 中檢查 Defender for Endpoint 的連線性。 如果連線測試失敗,請將健康檢查工具的輸出提供給我們的支援團隊。
連線測試在健康檢查中回報「無效」
如果你的機器有代理設定,請執行指令
healthCheck --extendedProxy。 這會提供你機器上設定 (代理) 的資訊,以及這些設定是否對 WSL Defender 無效。
如果上述步驟無法解決問題,請在你的
%UserProfile%設定.wslconfig中加入以下設定,然後重新啟動 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.ps1Invoke-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。在除錯 shell 中執行:
mdatp connectivity test。讓連接測試完成。
停止 .ps1 在步驟#2中運行。
分享產生的 .zip 檔案及支援套件,依照 步驟收集。
收集支援包
如果你遇到其他挑戰或問題,請打開終端機,並執行以下指令來產生支援套件:
cd "%ProgramFiles%\Microsoft Defender for Endpoint plug-in for WSL\tools".\healthcheck.exe --supportBundle支援包可在前一個指令提供的路徑中找到。
WSL1 與 WSL2
Microsoft Defender Endpoint for WSL 外掛支援運行於 WSL 2 上的 Linux 發行版。 如果它們和 WSL 1 有關,可能會遇到問題。 因此,建議關閉 WSL 1。 要使用 Intune 政策,請執行以下步驟:
請前往您的 Microsoft Intune 管理中心。
到裝置>設定檔>>建立新政策。
選擇 Windows 10 及以後版本>的設定目錄。
為新設定檔建立名稱,並搜尋 Windows 子系統 Linux 版,即可查看並新增完整的可用設定清單。
將 允許 WSL1 設定設為 停用,以確保只能使用 WSL 2 發行版。
或者,如果你想繼續使用 WSL 1,或不使用 Intune 政策,你可以選擇性地將已安裝的發行版關聯到 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
-
姓名: