この記事では、Linux 用 Windows サブシステム (WSL) 2 のMicrosoft Defender for Endpoint プラグインをインストール、構成、およびトラブルシューティングする方法について説明します。 このプラグインは、Microsoft Defender for Endpoint Plan 2 にオンボードされている Windows 10 および Windows 11 デバイス上で実行される WSL コンテナーに対する Defender for Endpoint の可視性を拡張します。
概要
Linux 用 Windows サブシステム (WSL) 2 は、以前のバージョンの WSL (プラグインなしでMicrosoft Defender for Endpointでサポート) を置き換え、Windows とシームレスに統合されたLinux環境を提供しますが、仮想化テクノロジを使用して分離されています。 Defender for Endpoint for WSL プラグインを使用すると、Defender for Endpoint は、分離されたサブシステムに接続することで、実行中のすべての WSL コンテナーをより詳細に表示できます。
前提条件
エンドポイント WSL プラグインのDefenderをインストールする前に、次の前提条件が満たされていることを確認してください。
WSL バージョン
2.0.7.0以降は、少なくとも 1 つのアクティブディストリビューションで実行されている必要があります。wsl --updateを実行して、最新バージョンであることを確認します。wsl -–versionより古いバージョン2.0.7.0表示される場合は、wsl --update --pre-releaseを実行して最新の更新プログラムを取得します。Windows クライアント デバイスを Defender for Endpoint にオンボードする必要があります。
サポートされるオペレーティング システム
次のオペレーティング システムは、エンドポイント WSL プラグインのDefenderをサポートしています。
- 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 カタログを使用したUpdatesは、パッケージの安定性を確保するために、運用リングでのみサポートされます。プラグインが完全にインスタンス化されるまで数分、WSL2 インスタンスがオンボードされるまでに最大 30 分かかります。 有効期間が短い WSL コンテナー インスタンスの場合、WSL2 インスタンスが Microsoft Defender ポータルに表示されない可能性があります。 ディストリビューションが十分に長く (少なくとも 30 分) 実行されている場合、WSL2 インスタンスはMicrosoft Defender ポータルに表示されます。
カスタム カーネルとカスタム カーネル コマンド ラインの実行はサポートされていません。 プラグインは、その構成での実行をブロックしませんが、カスタム カーネルとカスタム カーネル コマンド ラインを実行している場合、WSL 内での可視性を保証するものではありません。 このような構成は、Microsoft Intune wsl 設定でブロックすることをお勧めします。
このプラグインは、ARM64 プロセッサを搭載したマシンではサポートされていません。
プラグインは、Windows 10 と 11 のマルチセッションバリアントではサポートされていません。
このプラグインは WSL からのイベントを可視化しますが、マルウェア対策、脅威と脆弱性の管理、応答コマンドなどの他の機能は WSL 論理デバイスでは使用できません。
ソフトウェア コンポーネントとインストーラー ファイル名
インストーラー: DefenderPlugin-x64-0.24.426.1.msi。 インストーラーは、Microsoft 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で見つけることができます。
エンドポイント WSL プラグインのDefenderをインストールする
Linux 用 Windows サブシステムがまだインストールされていない場合は、次の手順に従います。
ターミナルまたはコマンド プロンプトを開きます。 (Windows では、[スタート] に移動します>コマンド プロンプト。または、スタート ボタンを右クリックし、[ターミナル] を選択します)。
コマンド
wsl -–installを実行します。WSL がインストールされ、実行されていることを確認します。
ターミナルまたはコマンド プロンプトを使用して、
wsl –-updateを実行して、最新バージョンがあることを確認します。wslコマンドを実行して、テストの前に WSL が実行されていることを確認します。
次の手順に従って、プラグインをインストールします。
Microsoft Defender ポータルのオンボード セクションからダウンロードした MSI ファイルをインストールします (設定>Endpoints>Onboarding>Linux 用 Windows サブシステム 2 (プラグイン))。
コマンド プロンプト/ターミナルを開き、
wslを実行します。
注:
WslServiceが実行されている場合、インストール プロセス中に停止します。 サブシステムを個別にオンボードする必要はありません。 代わりに、プラグインは、Windows ホストがオンボードされているテナントに自動的にオンボードされます。
Microsoft Defender for Endpoint の WSL 用プラグイン向け KB Update の更新プログラム。
インストール検証チェックリスト
次のチェックリストを使用して、プラグインが正しくインストールされ、想定どおりに実行されていることを確認します。
更新またはインストール後、プラグインが完全に初期化され、ログ出力が書き込まれるまで少なくとも 5 分間待ちます。
ターミナルまたはコマンド プロンプトを開きます。 (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 -
Defender の正常性状態:
Healthy
-
プラグインのバージョン:
WSL で実行されている Defender のプロキシの設定
Defender for Endpoint の WSL 用プラグインのプロキシ接続を構成できます。 企業がプロキシを使用して Windows ホストで実行されている Defender for Endpoint への接続を提供する場合は、引き続き読み取りを行い、プラグイン用に構成する必要があるかどうかを判断します。
WSL プラグインのMDEにホスト ウィンドウ EDR テレメトリ プロキシ構成を使用する場合は、それ以上必要ありません。 Windows EDR テレメトリ プロキシ構成は、プラグインによって自動的に採用されます。
WSL プラグインのMDEにホスト winhttp プロキシ構成を使用する場合は、それ以上何も必要ありません。 ホスト WinHTTP プロキシ構成は、プラグインによって自動的に採用されます。
WSL プラグインのMDEにホスト ネットワークとネットワーク プロキシ設定を使用する場合は、それ以上何も必要ありません。 ホスト ネットワーク プロキシの構成は、プラグインによって自動的に採用されます。
注:
WSL Defender では、 http プロキシのみがサポートされます。
WSL プラグインがプロキシを選択する方法
ホスト コンピューターに複数のプロキシ設定が含まれている場合、プラグインは次の階層を持つプロキシ構成を選択します。
Defender for Endpoint 静的プロキシ設定 (
TelemetryProxyServer)。Winhttpプロキシ (netshコマンドを使用して構成)。ネットワーク & インターネット プロキシ設定。
たとえば、ホスト コンピューターに
Winhttp proxyとNetwork & Internet proxyの両方がある場合、プラグインはプロキシ構成としてWinhttp proxyを選択します。
注:
DefenderProxyServer レジストリ キーはサポートされなくなりました。
WSL で実行されているDefenderのプロキシの設定に関する記事の手順に従って、プラグインでプロキシを構成します。
WSL で実行されている Defender for Endpoint の接続テスト
Defender for Endpoint 接続テストは、デバイスにプロキシの変更があり、1 時間ごとに実行されるようにスケジュールされるたびにトリガーされます。
wsl マシンを起動したら、5 分間待ってから healthcheck.exe を実行します (接続テストの結果は %ProgramFiles%\Microsoft Defender for Endpoint plug-in for WSL\tools にあります)。 接続テストが成功すると、正常性チェックによって成功した結果が報告されます。 接続テストが失敗した場合、正常性チェックは状態を invalid として報告し、WSL の MDE プラグインからエンドポイント サービス URL のDefenderへのクライアント接続が失敗していることを示します。
注:
ConnectivityTest レジストリ キーはサポートされなくなりました。
WSL コンテナー (サブシステムで実行されているディストリビューション) で使用するプロキシを設定するには、「 WSL の詳細設定の構成」を参照してください。
機能と SOC アナリスト エクスペリエンスの検証
プラグインをインストールすると、サブシステムとその実行中のすべてのコンテナーがMicrosoft Defender ポータルにオンボードされます。
Microsoft Defender ポータルにサインインし、[デバイス] ビューを開きます。
タグ WSL2 を使用してフィルター処理します。
WSL 用のアクティブな Defender for Endpoint プラグインを使用すると、環境内のすべての WSL インスタンスを確認できます。 これらのインスタンスは、特定のホスト上の WSL 内で実行されているすべてのディストリビューションを表します。 デバイスのホスト名は、Windows ホストのホスト名と一致します。 ただし、Linux デバイスとして表されます。
デバイス ページを開きます。 [概要] ウィンドウのホスティング リンクには、デバイスが Windows ホストで実行されていることが示されます。 このリンクを選択すると、Windows ホストにピボットして、さらに調査や応答を行うことができます。
タイムラインは、Linux上の Defender for Endpoint と同様に設定され、サブシステム内からのイベント (ファイル、プロセス、ネットワーク) が設定されます。 アクティビティと検出は、タイムライン ビューで確認できます。 アラートとインシデントは、必要に応じて生成されます。
WSL マシンのカスタム タグの設定
このプラグインは、タグ WSL2を使用して WSL マシンをオンボードします。 カスタム タグが必要な場合は、次の手順に従って構成します。
レジストリ エディターを管理者として開きます。
次の詳細を含むレジストリ キーを作成します。
- 名前:
GROUP - 型:
REG_SZまたはレジストリ文字列 - 値:
Custom tag - パス:
HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows 高度な脅威保護\DeviceTagging
- 名前:
レジストリが設定されたら、次の手順に従って wsl を再起動します。
コマンド プロンプトを開き、
wsl --shutdownコマンドを実行します。wslコマンドを実行します。
ポータルが変更を反映するまで 5 ~ 10 分待ちます。
注:
GROUP レジストリ エントリで構成されたカスタム タグの値には、_WSL2が付いています。
たとえば、 GROUP レジストリ値が Microsoftされている場合、カスタム タグはポータルに Microsoft_WSL2 として表示されます。
プラグインをテストする
インストール後にプラグインをテストするには、次の手順に従います。
ターミナルまたはコマンド プロンプトを開きます。 (Windows では、[スタート] に移動します>コマンド プロンプト。または、スタート ボタンを右クリックし、[ターミナル] を選択します)。
コマンド
wslを実行します。MDE Linux EDR DIY テスト パッケージからスクリプト ファイルをダウンロードして抽出します。
Linux プロンプトで、コマンド
./mde_linux_edr_diy.shを実行します。 WSL2 インスタンスで検出された場合、数分後にアラートがポータルに表示されます。注:
Microsoft Defender ポータルにイベントが表示されるまでに約 5 分かかります。
マシンは、テストを実行する環境内の通常のLinux ホストであるかのように扱います。 特に、新しいプラグインを使用して悪意のある可能性のある動作を表示する機能に関するフィードバックをお寄せください。
高度なハンティングを使用して WSL デバイスを調査する
Advanced Hunting スキーマの DeviceInfo テーブルの下に、WSL インスタンスを Windows ホスト デバイスにマップするために使用できる HostDeviceId という新しい属性があります。 いくつかのサンプル ハンティング クエリを次に示します。
現在の組織/テナントのすべての WSL デバイス ID を取得する
テナント内のすべての WSL デバイス ID を一覧表示するには、次のクエリを使用します。
//Get all WSL device ids for the current organization/tenant
let wsl_endpoints = DeviceInfo
| where OSPlatform == "Linux" and isnotempty(HostDeviceId)
| distinct DeviceId;
wsl_endpoints
WSL デバイス ID とそれに対応するホスト デバイス ID を取得する
次のクエリを使用して、各 WSL デバイス ID を対応する Windows ホスト デバイス ID にマップします。
//Get WSL device ids and their corresponding host device ids
DeviceInfo
| where OSPlatform == "Linux" and isnotempty(HostDeviceId)
| distinct WSLDeviceId=DeviceId, HostDeviceId
curl または wget が実行された WSL デバイス ID の一覧を取得する
次のクエリを使用して、 curl または wget が実行された WSL デバイスを検索します。
//Get a list of WSL device ids where curl or wget was run
let wsl_endpoints = DeviceInfo
| where OSPlatform == "Linux" and isnotempty(HostDeviceId)
| distinct DeviceId;
DeviceProcessEvents
| where FileName == "curl" or FileName == "wget"
| where DeviceId in (wsl_endpoints)
| sort by Timestamp desc
トラブルシューティング
エンドポイント WSL プラグインのDefenderに関する一般的な問題を診断して解決するには、次のトラブルシューティング手順を使用します。
インストールエラー
A fatal error was returned by plugin 'DefenderforEndpointPlug-in' Error code: Wsl/Service/CreateInstance/CreateVm/Plugin/ERROR_FILE_NOT_FOUNDなど、WSL の起動時にエラーが発生した場合は、WSL インストール用の Defender for Endpoint プラグインに問題があります。 修復するには、次の手順に従います。
コントロール パネルで、[プログラム>プログラムと機能] に移動します。
WSL 用 Microsoft Defender for Endpoint プラグインを検索して選択します。 次に、[修復] を選択 します。 このアクションでは、適切なファイルを予期されるディレクトリに配置することで、問題を解決する必要があります。
コマンド healthcheck.exe には、"'bash' コマンドを使用して WSL ディストリビューションを起動し、5 分で再試行する" という出力が表示されます。
このメッセージが表示された場合は、WSL ディストリビューションを開始し、正常性チェックを再実行する前に待機します。
ターミナル インスタンスを開き、コマンド
wslを実行します。正常性チェックを再実行する前に、少なくとも 5 分間待ちます。
healthcheck.exe コマンドには、"テレメトリの待機中" という出力が表示される場合があります。 5 分後に再試行してください。
テレメトリの初期化中に、次のメッセージが表示される場合があります。
"テレメトリの待機中" メッセージが表示された場合は、5 分間待ってから healthcheck.exe再実行します。
Microsoft Defender ポータルにデバイスが表示されないか、タイムラインにイベントが表示されない
次のことを確認します。
マシン オブジェクトが表示されない場合は、オンボードが完了するまでに十分な時間が経過していることを確認します (通常は最大 10 分)。
適切なフィルターを使用し、すべてのデバイス オブジェクトを表示するための適切なアクセス許可が割り当てられていることを確認します。 (たとえば、アカウント/グループは特定のグループに制限されていますか?
正常性チェックツールを使用して、プラグインの全体的な正常性の概要を提供します。 ターミナルを開き、
healthcheck.exeから%ProgramFiles%\Microsoft Defender for Endpoint plug-in for WSL\toolsツールを実行します。WSL で Defender for Endpoint 接続の接続テストとチェックを有効にします。 接続テストが失敗した場合は、正常性チェックツールの出力をサポート チームに提供します。
接続テストがヘルス チェックで「無効」と報告される
接続テストで invalid報告される場合は、次のチェックを使用して問題を診断します。
コンピューターにプロキシ セットアップがある場合は、コマンド
healthCheck --extendedProxyを実行します。 これにより、コンピューターに設定されているプロキシと、これらの構成が WSL Defender に対して無効であるかどうかに関する情報が提供されます。
healthCheck --extendedProxy実行しても接続テストの失敗が解決しない場合は、.wslconfigにある%UserProfile%ファイルに次の構成設定を含め、WSL を再起動します。 設定の詳細については、「 WSL 設定」を参照してください。Windows 11 で
ファイルに次の設定を追加して、DNS トンネリングとミラー化されたネットワークを有効にします。
# Settings apply across all Linux distros running on WSL 2 [wsl2] dnsTunneling=true networkingMode=mirroredWindows 10 で
DNS プロキシを無効にするには、
.wslconfigファイルに次の設定を追加します。# 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。管理者特権 (admin) コマンド プロンプトを開き、次のコマンドを実行します:
wsl --debug-shell。デバッグ シェルで、
mdatp connectivity testを実行します。接続テストの完了を許可します。
手順 2 で実行した .ps1 スクリプトを停止します。
生成された .zip ファイルを、
healthcheck.exe --supportBundleから%ProgramFiles%\Microsoft Defender for Endpoint plug-in for WSL\tools実行して収集されたサポート バンドルと共に共有します。
サポート バンドルを収集する
サポートの診断情報を収集するには、次の手順を使用してサポート バンドルを生成します。
他の課題や問題が発生した場合は、ターミナルを開きます。 まず、エンドポイント WSL プラグイン ツールのDefender ディレクトリに移動し、
healthcheck.exeツールを実行してサポート バンドルを生成します。cd "%ProgramFiles%\Microsoft Defender for Endpoint plug-in for WSL\tools"次に、次のコマンドを実行して、トラブルシューティング用の診断情報を収集するサポート バンドルを生成します。
.\healthcheck.exe --supportBundleサポート バンドルは、前のコマンドによって提供されたパスにあります。
WSL1 と WSL2
WSL Microsoft Defender エンドポイント プラグインは、WSL 2 で実行されているLinuxディストリビューションをサポートします。 これらの Linux ディストリビューションが WSL 1 に関連付けられている場合は、問題が発生する可能性があります。 そのため、WSL 1 を無効にすることをお勧めします。 Intune ポリシーでこれを行うには、次の手順を実行します。
Microsoft Intune管理センターに移動します。
[デバイス>構成プロファイル>作成>新しいポリシー] に移動します。
[Windows 10 以降>設定カタログ] を選択します。
新しいプロファイルの名前を作成し、Linux 用 Windows サブシステムを検索して、使用可能な設定の完全な一覧を表示して追加します。
WSL 2 ディストリビューションのみを使用できるようにするには、[ WSL1 を許可する ] 設定を [無効] に設定します。
または、WSL 1 を引き続き使用する場合、または Intune ポリシーを使用しない場合は、PowerShell で次のコマンドを実行して、インストールされている特定のディストリビューションを WSL 1 から WSL 2 に選択的にアップグレードできます。
wsl --set-version <YourDistroName> 2今後のすべてのディストリビューションが WSL 2 で既定で作成されるようにするには、PowerShell で次のコマンドを実行して、WSL 2 を既定のバージョンとして設定します。
wsl --set-default-version 2
WSL プラグインのリリース リングをオーバーライドする
レジストリ設定を構成することで、プラグインの既定のリリース リングをオーバーライドできます。
プラグインでは、既定で 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
-
名前: