次の方法で共有


Linux 用 Windows サブシステム用のMicrosoft Defender for Endpoint プラグイン (WSL)

適用対象:

概要

Linux 用 Windows サブシステム (WSL) 2 は、以前のバージョンの WSL (プラグインなしでMicrosoft Defender for Endpointでサポート) に置き換えられ、Windows とシームレスに統合された Linux 環境を提供しますが、仮想化テクノロジを使用して分離されています。 Defender for Endpoint for WSL プラグインを使用すると、Defender for Endpoint は、分離されたサブシステムに接続することで、実行中のすべての WSL コンテナーをより詳細に表示できます。

既知の問題と制限事項

開始する前に、次の考慮事項に注意してください。

  1. プラグインでは、 より前 1.24.522.2のバージョンの自動更新はサポートされていません。 バージョン1.24.522.2以降では、更新はすべてのリングにわたってWindows Updateを通じてサポートされます。 Windows Server Update サービス (WSUS)、System Center Configuration Manager (SCCM) および Microsoft Update カタログを介したUpdatesは、パッケージの安定性を確保するために、運用リングでのみサポートされます。

  2. プラグインが完全にインスタンス化されるまで数分、WSL2 インスタンスがオンボードされるまでに最大 30 分かかります。 有効期間の短い WSL コンテナー インスタンスでは、WSL2 インスタンスがMicrosoft Defender ポータル (https://security.microsoft.com) に表示されない可能性があります。 ディストリビューションが十分に長く実行されると (少なくとも 30 分)、表示されます。

  3. カスタム カーネルとカスタム カーネル コマンド ラインの実行はサポートされていません。 プラグインは、その構成での実行をブロックしませんが、カスタム カーネルとカスタム カーネル コマンド ラインを実行している場合、WSL 内での可視性を保証するものではありません。 wsl 設定の助けを借りて、このような構成Microsoft Intuneブロックすることをお勧めします。

  4. OS ディストリビューションは、Microsoft Defender ポータルの WSL デバイスの [デバイスの概要] ページに [なし] と表示されます。

  5. このプラグインは、ARM64 プロセッサを搭載したマシンではサポートされていません。

  6. このプラグインは WSL からのイベントを可視化しますが、マルウェア対策、脅威と脆弱性の管理、応答コマンドなどの他の機能は WSL 論理デバイスでは使用できません。

ソフトウェアの前提条件

  • WSL バージョン 2.0.7.0 以降は、少なくとも 1 つのアクティブなディストリビューションで実行されている必要があります。

    を実行 wsl --update して、最新バージョンであることを確認します。 より2.0.7.0古いバージョンが表示されている場合wsl -–versionは、 を実行wsl -–update –pre-releaseして最新の更新プログラムを取得します。

  • Windows クライアント デバイスを Defender for Endpoint にオンボードする必要があります。

  • Windows クライアント デバイスは、Windows 10バージョン 2004 以降 (ビルド 19044 以降)、またはプラグインで動作する WSL バージョンをサポートするためにWindows 11する必要があります。

ソフトウェア コンポーネントとインストーラー ファイル名

インストーラー: DefenderPlugin-x64-0.24.426.1.msiMicrosoft Defender ポータルのオンボード ページからダウンロードできます。 ([設定]> に移動しますエンドポイント>オンボーディング)。)

インストール ディレクトリ:

  • %ProgramFiles%

  • %ProgramData%

インストールされているコンポーネント:

  • DefenderforEndpointPlug-in.dll. この DLL は、WSL 内で動作するように Defender for Endpoint を読み込むライブラリです。 それは で %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見つけることができます。

インストールの手順

Linux 用 Windows サブシステムがまだインストールされていない場合は、次の手順に従います。

  1. ターミナルまたはコマンド プロンプトを開きます。 (Windows では、[スタート] に移動します>。コマンド プロンプト。または、スタート ボタンを右クリックし、[ターミナル] を選択します)。

  2. コマンドwsl -–installを実行します。

  3. WSL がインストールされ、実行されていることを確認します。

    1. ターミナルまたはコマンド プロンプトを使用して、 を実行 wsl –-update して、最新バージョンがインストールされていることを確認します。

    2. コマンドを wsl 実行して、テストの前に WSL が実行されていることを確認します。

  4. 次の手順に従って、プラグインをインストールします。

    1. Microsoft Defender ポータルのオンボード セクションからダウンロードした MSI ファイルをインストールします (設定>エンドポイント>オンボード>Linux 用 Windows サブシステム 2 (プラグイン))。

    2. コマンド プロンプト/ターミナルを開き、 を実行 wslします。

    Microsoft Intuneを使用してパッケージをデプロイできます。

注:

が実行されている場合 WslService は、インストール プロセス中に停止します。 サブシステムを個別にオンボードする必要はありません。 代わりに、プラグインは、Windows ホストがオンボードされているテナントに自動的にオンボードされます。

インストール検証チェックリスト

  1. 更新またはインストール後、プラグインが完全に初期化され、ログ出力が書き込まれるまで少なくとも 5 分間待ちます。

  2. ターミナルまたはコマンド プロンプトを開きます。 (Windows では、[スタート] に移動します>。コマンド プロンプト。または、スタート ボタンを右クリックし、[ターミナル] を選択します)。

  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 のプロキシの設定

このセクションでは、Defender for Endpoint プラグインのプロキシ接続を構成する方法について説明します。 企業がプロキシを使用して Windows ホストで実行されている Defender for Endpoint への接続を提供する場合は、引き続き読み取りを行い、プラグイン用に構成する必要があるかどうかを判断します。

WSL プラグインのMDEにホスト ウィンドウ EDR テレメトリ プロキシ構成を使用する場合は、それ以上必要ありません。 この構成は、プラグインによって自動的に採用されます。

WSL プラグインのMDEにホスト winhttp プロキシ構成を使用する場合は、それ以上何も必要ありません。 この構成は、プラグインによって自動的に採用されます。

WSL プラグインのMDEにホスト ネットワークとネットワーク プロキシ設定を使用する場合は、それ以上何も必要ありません。 この構成は、プラグインによって自動的に採用されます。

注:

WSL Defender ではプロキシのみが http サポートされます。

プラグイン プロキシの選択

ホスト コンピューターに複数のプロキシ設定が含まれている場合、プラグインは次の階層を持つプロキシ構成を選択します。

  1. Defender for Endpoint 静的プロキシ設定 (TelemetryProxyServer)。

  2. Winhttp プロキシ (コマンドを使用して netsh 構成)。

  3. ネットワーク & インターネット プロキシ設定。

たとえば、ホスト マシンに と の両方Winhttp proxyがある場合、プラグインはプロキシ構成として選択しますWinhttp proxyNetwork & Internet proxy

注:

DefenderProxyServerレジストリ キーはサポートされなくなりました。 この記事で前述した手順に従って、プラグインでプロキシを構成します。

WSL で実行されている Defender の接続テスト

Defender 接続テストは、デバイスにプロキシの変更があり、1 時間ごとに実行されるようにスケジュールされるたびにトリガーされます。

wsl マシンを起動したら、5 分待ってから実行 healthcheck.exe します ( %ProgramFiles%\Microsoft Defender for Endpoint plug-in for WSL\tools 接続テストの結果は にあります)。 成功した場合は、接続テストが成功したことがわかります。 失敗した場合、接続テストでinvalid、WSL のプラグインから Defender for Endpoint サービス URL へのクライアント接続MDE失敗していることがわかります。

注:

ConnectivityTestレジストリ キーはサポートされなくなりました。 WSL コンテナー (サブシステムで実行されているディストリビューション) で使用するプロキシを設定するには、「 WSL の詳細設定の構成」を参照してください。

機能と SOC アナリスト エクスペリエンスの検証

プラグインをインストールすると、サブシステムとその実行中のすべてのコンテナーがMicrosoft Defender ポータルにオンボードされます。

  1. Microsoft Defender ポータルにサインインし、[デバイス] ビューを開きます。

  2. タグ WSL2 を使用してフィルター処理します。

    デバイス インベントリ フィルターを示すスクリーンショット

    WSL 用のアクティブな Defender for Endpoint プラグインを使用すると、環境内のすべての WSL インスタンスを確認できます。 これらのインスタンスは、特定のホスト上の WSL 内で実行されているすべてのディストリビューションを表します。 デバイスのホスト名は、Windows ホストのホスト名と一致します。 ただし、Linux デバイスとして表されます。

  3. デバイス ページを開きます。 [ 概要 ] ウィンドウには、デバイスがホストされている場所のリンクがあります。 リンクを使用すると、デバイスが Windows ホストで実行されていることを理解できます。 その後、ホストにピボットして、さらに調査や応答を行うことができます。

    デバイスの概要を示すスクリーンショット。

タイムラインは、Linux 上の Defender for Endpoint と同様に、サブシステム内からのイベント (ファイル、プロセス、ネットワーク) で設定されます。 アクティビティと検出は、タイムライン ビューで確認できます。 アラートとインシデントは、必要に応じて生成されます。

WSL マシンのカスタム タグの設定

プラグインは、 タグ WSL2を使用して WSL マシンをオンボードします。 カスタム タグが必要な場合organizationは、次の手順に従ってください。

  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 では、[スタート] に移動します>。コマンド プロンプト。または、スタート ボタンを右クリックし、[ターミナル] を選択します)。

  2. コマンドwslを実行します。

  3. からスクリプト ファイル https://aka.ms/MDE-Linux-EDR-DIYをダウンロードして抽出します。

  4. Linux プロンプトで、 コマンドを実行します ./mde_linux_edr_diy.sh

    WSL2 インスタンスで検出された場合、数分後にアラートがポータルに表示されます。

    注:

    Microsoft Defender ポータルにイベントが表示されるまでに約 5 分かかります。

マシンは、テストを実行する環境内の通常の Linux ホストであるかのように扱います。 特に、新しいプラグインを使用して悪意のある可能性のある動作を表示する機能に関するフィードバックをお寄せください。

高度な追及

Advanced Hunting スキーマのテーブルの DeviceInfo 下に、WSL インスタンスを Windows ホスト デバイスにマップするために使用できるという新 HostDeviceId しい属性があります。 いくつかのサンプル ハンティング クエリを次に示します。

現在のorganization/テナントのすべての 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

curl または wget が実行された WSL デバイス ID の一覧を取得する

//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

トラブルシューティング

コマンドには、"'bash' コマンド healthcheck.exe を使用して WSL ディストリビューションを起動し、5 分で再試行する" という出力が表示されます。

PowerShell の出力を示すスクリーンショット。

  1. ターミナル インスタンスを開き、 コマンド を実行します wsl

  2. 正常性チェックを再実行する前に、少なくとも 5 分間待ちます。

コマンドには healthcheck.exe 、"テレメトリの待機中" という出力が表示される場合があります。 5 分後に再試行してください。

正常性テレメトリの状態を示すスクリーンショット。

そのエラーが発生した場合は、5 分間待ってから を再実行します healthcheck.exe

Microsoft Defender ポータルにデバイスが表示されないか、タイムラインにイベントが表示されない

次のことを確認します。

  • マシン オブジェクトが表示されない場合は、オンボードが完了するまでに十分な時間が経過していることを確認します (通常は最大 10 分)。

  • 適切なフィルターを使用し、すべてのデバイス オブジェクトを表示するための適切なアクセス許可が割り当てられていることを確認します。 (たとえば、アカウント/グループは特定のグループに制限されていますか?

  • 正常性チェックツールを使用して、プラグインの全体的な正常性の概要を提供します。 ターミナルを開き、 から%ProgramFiles%\Microsoft Defender for Endpoint plug-in for WSL\toolsツールを実行しますhealthcheck.exe

    PowerShell の状態を示すスクリーンショット。

  • WSL で Defender for Endpoint 接続の接続テストとチェックを有効にします。 接続テストが失敗した場合は、正常性チェックツールの出力をサポート チームに提供します。

接続テストでは、正常性チェックで "無効" と報告されます

  • コンピューターにプロキシセットアップがある場合は、 コマンドを実行します healthCheck --extendedProxy。 これにより、コンピューターに設定されているプロキシと、これらの構成が WSL Defender に対して無効であるかどうかに関する情報が提供されます。

    HealthCheck プロキシ ドキュメントを拡張する

  • 上記の手順で問題が解決しない場合は、WSL に次の構成設定を .wslconfig 含め、WSL を %UserProfile% 再起動します。 設定の詳細については、「 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. 管理者特権 (admin) コマンド プロンプトを開き、次のコマンドを実行します。 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. WSL 用Microsoft Defender エンドポイントでは、WSL 2 で実行されている Linux ディストリビューションがサポートされています。 WSL 1 に関連付けられている場合は、問題が発生する可能性があります。 そのため、WSL 1 を無効にすることをお勧めします。 Intune ポリシーでこれを行うには、次の手順を実行します。

    1. Microsoft Intune管理センターに移動します。

    2. [デバイス>構成プロファイル][新しいポリシー>作成>] の順に移動します。

    3. [Windows 10以降>の設定カタログ] を選択します

    4. 新しいプロファイルの名前を作成し、Linux 用 Windows サブシステムを検索して、使用可能な設定の完全な一覧を表示して追加します。

    5. WSL 2 ディストリビューションのみを使用できるようにするには、[ WSL1 を許可する ] 設定を [無効] に設定します。

      または、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 for Endpoint プラグインに問題が発生したことを意味します。 修復するには、次の手順に従います。

    1. コントロール パネルで、[プログラムプログラムと機能]> に移動します。

    2. WSL のプラグインMicrosoft Defender for Endpoint検索して選択します。 次に、[修復] を選択 します。 このアクションでは、適切なファイルを予期されるディレクトリに配置することで、問題を解決する必要があります。

      コントロール パネルMDE WSL 修復オプションのプラグインを示すスクリーンショット。