分享方式:


Microsoft適用於適用於 Linux 的 Windows 子系統適用於端點的 Defender 外掛程式 (WSL)

適用於:

概觀

適用於Linux的 Windows 子系統 (WSL) 2,可取代適用於端點的 Microsoft Defender 所支援的舊版 WSL (,而不需要外掛程式) ,提供與 Windows 緊密整合,但使用虛擬化技術隔離的 Linux 環境。 適用於 WSL 的適用於端點的 Defender 外掛程式可讓適用於端點的 Defender 插入隔離的子系統,以提供所有執行中 WSL 容器的更可見度。

已知問題和限制

開始之前,請注意下列考慮:

  1. 外掛程式不支援在 之前的版本 1.24.522.2上自動更新。 在版本和更新版本 1.24.522.2 上,所有更新步調都支援透過 Windows Update 進行更新。 只有生產環境通道才支援透過 Windows Server Update 服務 (WSUS) 、System Center Configuration Manager (SCCM) 和 Microsoft Update 目錄進行更新,以確保套件穩定性。

  2. 外掛程式需要幾分鐘的時間才能完全具現化,WSL2 實例最多需要 30 分鐘的時間才能自行上線。 短期 WSL 容器實例可能會導致 WSL2 實例未顯示在 Microsoft Defender 入口網站中, (https://security.microsoft.com) 。 一旦任何散發已執行的時間夠長, (至少 30 分鐘) ,它就會顯示出來。

  3. 不支援執行自定義核心和自定義核心命令行。 雖然外掛程式不會封鎖在該組態中執行,但是當您執行自定義核心和自定義核心命令行時,它並不保證 WSL 內的可見性。 建議您在 Microsoft Intune wsl 設定的協助下封鎖這類組態。

  4. 操作系統散發會在 Microsoft Defender 入口網站中 WSL 裝置的 [裝置概觀] 頁面中顯示 []。

  5. 使用ARM64處理器的電腦不支援外掛程式。

  6. 此外掛程式可讓您查看 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 版尚未安裝,請遵循下列步驟:

  1. 開啟終端機或命令提示字元。 (在 Windows 中,移至 [啟動>命令提示字元]。或者,以滑鼠右鍵按兩下 [開始] 按鈕,然後選取 [Terminal.)

  2. 執行 wsl -–install 命令。

  3. 確認已安裝並執行 WSL。

    1. 使用終端機或命令提示字元, wsl –-update 執行 以確定您有最新版本。

    2. wsl執行 命令以確保 WSL 在測試之前正在執行。

  4. 依照下列步驟安裝外掛程式:

    1. 安裝從 Microsoft Defender 入口網站的上線區段下載的 MSI 檔案 (> 設定端點>>適用於 Linux 2 的 Windows 子系統上線 (外掛程式) )

    2. 開啟命令提示字元/終端機,然後執行 wsl

    您可以 使用 Microsoft Intune 來部署套件

注意事項

如果 WslService 正在執行,它會在安裝程序期間停止。 您不需要個別將子系統上線;相反地,外掛程式會自動上線到 Windows 主機上線的租使用者。

安裝驗證檢查清單

  1. 更新或安裝之後,請等候至少五分鐘讓外掛程式完全初始化和寫入記錄輸出。

  2. 開啟終端機或命令提示字元。 (在 Windows 中,移至 [啟動>命令提示字元]。或者,以滑鼠右鍵按兩下 [開始] 按鈕,然後選取 [Terminal.)

  3. 執行命令: cd "%ProgramFiles%\Microsoft Defender for Endpoint plug-in for WSL\tools".

  4. 執行 .\healthcheck.exe 命令。

  5. 檢閱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 設定,則不需要再執行任何動作。 外掛程式會自動採用此設定。

如果您想要針對 WSL 外掛程式使用 MDE 的主機 winHTTP Proxy 組態,則不需要再執行任何動作。 外掛程式會自動採用此設定。

如果您想要針對 WSL 外掛程式使用 MDE 的主機 網路和網路 Proxy 設定 ,則不需要再執行任何動作。 外掛程式會自動採用此設定。

注意事項

WSL Defender 僅 http 支援 Proxy。

外掛程式 Proxy 選取專案

如果您的主電腦包含多個 Proxy 設定,外掛程式會選取具有下列階層的 Proxy 元件:

  1. 適用於端點的Defender靜態 Proxy 設定 (TelemetryProxyServer) 。

  2. Winhttp proxy (透過 netsh 命令) 設定。

  3. 網路 & 因特網 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 入口網站

  1. 登入 Microsoft Defender 入口網站,然後開啟 [ 裝置] 檢視

  2. 使用 標籤 WSL2 進行篩選。

顯示裝置清查篩選器的螢幕快照

您可以使用適用於 WSL 的適用於端點的 Active Defender 外掛程式來查看環境中的所有 WSL 實例。 這些實例代表在指定主機上 WSL 內執行的所有散發套件。 裝置的主機名符合 Windows 主機的主機名。 不過,它會以Linux裝置表示。

  1. 開啟裝置頁面。 在 [ 概觀] 窗格中,有一個裝置裝載位置的連結。 連結可讓您了解裝置正在 Windows 主機上執行。 然後,您可以樞紐至主機,以進行進一步的調查和/或回應。

    顯示裝置概觀的螢幕快照。

時間軸會填入,類似於 Linux 上適用於端點的 Defender,其中包含來自子系統內的事件 (檔案、進程、網路) 。 您可以在時程表檢視中觀察活動和偵測。 警示和事件也會適當地產生。

設定 WSL 機器的自訂標籤

外掛程式會使用標籤 將 WSL 機器上線 WSL2。 如果您或您的組織需要自訂標籤,請遵循下列步驟:

  1. 以系統管理員身分開啟註冊表編輯器

  2. 使用下列詳細資料建立登入機碼:

    • 名稱:GROUP
    • 類型: REG_SZ 或登錄字串
    • 值:Custom tag
    • 路徑:HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows Advanced Threat Protection\DeviceTagging
  3. 設定登錄之後,請使用下列步驟重新啟動 wsl:

    1. 開啟命令提示字元,然後執行命令 。 wsl --shutdown

    2. 執行 wsl 命令。

  4. 等候 5-10 分鐘,讓入口網站反映變更。

注意事項

登入中設定的自訂標籤後面會接著 _WSL2。 例如,如果登入值集是 Microsoft,則自訂標籤將會是 Microsoft_WSL2 ,而且入口網站中會顯示相同的 。

測試外掛程式

若要在安裝后測試外掛程式,請遵循下列步驟:

  1. 開啟終端機或命令提示字元。 (在 Windows 中,移至 [啟動>命令提示字元]。或者,以滑鼠右鍵按兩下 [開始] 按鈕,然後選取 [Terminal.)

  2. 執行 wsl 命令。

  3. 從 下載並擷 https://aka.ms/MDE-Linux-EDR-DIY取腳本檔案。

  4. 在 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

疑難排解

  1. 命令 healthcheck.exe 會顯示輸出:「使用 『bash』 命令啟動 WSL 散發版本,並在五分鐘內重試」。

    顯示 PowerShell 輸出的螢幕快照。

  2. 如果發生先前提到的錯誤,請採取下列步驟:

    1. 開啟終端機實例,然後執行 命令 wsl

    2. 請等候至少五分鐘,再重新執行健康情況檢查。

  3. 命令 healthcheck.exe 可能會顯示輸出「正在等候遙測。」 請在五分鐘內重試。」

    顯示健康情況遙測狀態的螢幕快照。

    如果發生此錯誤,請等候五分鐘並重新執行 healthcheck.exe

  4. 如果您在 Microsoft Defender 入口網站中看不到任何裝置,或在時程表中看不到任何事件,請檢查下列事項:

    • 如果您沒有看到機器物件,請確定已有足夠的時間讓上線完成 (通常最多 10 分鐘) 。

    • 請務必使用正確的篩選條件,而且您已獲指派適當的許可權來檢視所有裝置物件。 (例如,您的帳戶/群組是否限制為特定群組?)

    • 使用健康情況檢查工具來提供整體外掛程式健康情況的概觀。 開啟終端機,然後從 %ProgramFiles%\Microsoft Defender for Endpoint plug-in for WSL\tools執行healthcheck.exe工具。

      顯示 PowerShell 中狀態的螢幕快照。

    • 啟用連線能力測試,並在 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
        
    • 如果連線問題持續發生,請執行下列步驟來收集網路記錄

      1. 在 PowerShell 提示字元) 開啟提升許可權的 (系統管理員

      2. 下載並執行: .\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
        
      3. 開啟新的指令提示字元並執行: wsl

      4. 開啟提升權限的 (系統管理員) 命令提示字元並執行: wsl --debug-shell

      5. 在偵錯殼層中,執行: mdatp connectivity test

      6. 允許完成連線測試

      7. 停止步驟 #2 中執行的 .ps1

      8. 共用產生的 .zip 檔案以及可如步驟中所述收集的支援套 件組合

支援套件組合集合

  1. 如果您遇到任何其他挑戰或問題,請開啟終端機,然後執行下列命令來產生支援配套:

    cd "%ProgramFiles%\Microsoft Defender for Endpoint plug-in for WSL\tools"
    
    .\healthcheck.exe --supportBundle 
    

    您可以在上一個命令所提供的路徑中找到支援配套。

    顯示 PowerShell 輸出中狀態的螢幕快照。

  2. Microsoft適用於 WSL 的 Defender 端點支援在 WSL 2 上執行的 Linux 發行版。 如果它們與 WSL 1 相關聯,您可能會遇到問題。 因此,建議您停用 WSL 1。 若要使用 Intune 原則執行此動作,請執行下列步驟:

    1. 移至您的 Microsoft Intune 系統管理中心

    2. 移至 [裝置>組態配置檔]>[建立>新原則]

    3. 取 [Windows 10 及更新版本>的設定目錄]

    4. 建立新配置檔的名稱,並搜尋 適用於Linux的 Windows 子系統 ,以查看並新增可用設定的完整清單。

    5. 將 [ 允許 WSL1] 設定 設為 [停用],以確保只能使用 WSL 2 散發套件。

      或者,如果您想要繼續使用 WSL 1,或不使用 Intune 原則,您可以在 PowerShell 中執行 命令,選擇性地將已安裝的散發套件關聯至 WSL 2 上執行:

      wsl --set-version <YourDistroName> 2
      

      若要讓 WSL 2 作為系統中要安裝新發行版的預設 WSL 版本,請在 PowerShell 中執行下列命令:

      wsl --set-default-version 2
      
  3. 此外掛程式預設會使用 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
  4. 如果您在啟動 WSL 時看到錯誤,例如「外掛程式 』DefenderforEndpointPlug-in' 傳回嚴重錯誤」錯誤碼:Wsl/Service/CreateInstance/CreateVm/Plugin/ERROR_FILE_NOT_FOUND」,表示適用於 WSL 安裝的適用於端點的 Defender 外掛程式發生錯誤。 若要修復它,請遵循下列步驟:

    1. 在 [控制面板] 中,移至 [程式>和功能]

    2. 搜尋並選 取 Microsoft適用於端點的 Defender 外掛程式] 作為 WSL。 然後選取 [修復]。 此動作應該藉由將正確的檔案放在預期的目錄中來修正問題。

    顯示控制面板中 WSL 修復選項 MDE 外掛程式的螢幕快照。