LinuxでMicrosoft Defender for Endpointのオフライン セキュリティ インテリジェンス更新プログラムを構成する

この記事では、Microsoft Defender for Endpoint on Linux のオフライン セキュリティ インテリジェンス更新プログラムを設定する手順について説明します。 このアプローチを使用すると、ローカル ミラー サーバーに更新プログラムをダウンロードしてフリート全体に配布することで、インターネット接続が制限されているか、またはまったく接続されていない Linux デバイスでウイルス対策定義を最新の状態に保ちます。 開始する前に、前提条件を確認して 環境が要件を満たしていることを確認します。

オフライン セキュリティ インテリジェンス更新プログラムのしくみ

この記事では、Linuxで Defender for Endpoint でオフライン セキュリティ インテリジェンス更新プログラムを構成する方法について説明します。 この機能を使用すると、インターネットへのアクセスが制限されているか、まったく公開されていないLinuxデバイスのセキュリティ インテリジェンス (定義または署名とも呼ばれます) を更新できます。 この構成では、セキュリティ インテリジェンス更新プログラムをダウンロードするために Microsoft クラウドに接続する、ミラー サーバーと呼ばれるローカル ホスティング サーバーを使用します。 他のLinux デバイスは、定義済みの間隔でミラー サーバーからこれらの更新プログラムをプルします。

オフライン セキュリティ インテリジェンス更新プログラムを使用する利点

主な利点を以下に示します。

  • セキュリティ チームは、ローカル サーバーでの署名ダウンロードの頻度と、エンドポイントがローカル サーバーから署名をプルする頻度を制御および管理できます。
  • ダウンロードした署名は、デバイス群全体に展開する前にテストデバイスで検証できるため、保護と制御がさらに強化されます。
  • ネットワーク帯域幅が少なくて済みます。これは、1 つのローカル サーバーのみが、フリート全体に代わって Microsoft クラウドから最新の更新プログラムを取得するためです。
  • ミラー サーバーは Windows、Mac、またはLinuxを実行でき、そのサーバーに Defender for Endpoint をインストールする必要はありません。
  • 署名は常に最新の互換性のあるウイルス対策エンジンと共にダウンロードされるため、最新のウイルス対策保護が得られます。
  • 以前のバージョンの署名 (n-1) は、イテレーションごとにミラー サーバー上のバックアップ フォルダーに移動されます。 最新の更新プログラムに問題がある場合は、バックアップ フォルダーからデバイスに n-1 署名バージョンをプルできます。
  • まれにオフライン更新が失敗した場合は、フォールバック オプションを構成して、Microsoft クラウドからオンライン更新プログラムを取得できます。

プロセスの概要

大まかに言えば、オフライン更新プロセスは次のように機能します。

  • ミラー サーバーを設定します。これは、Microsoft クラウドから到達可能なローカル Web サーバーまたは NFS サーバーです。
  • 署名は、ローカル サーバーで cron ジョブまたはタスク スケジューラを使用してスクリプトを実行することで、このミラー サーバー上の Microsoft クラウドからダウンロードされます。
  • Defender for Endpoint を実行しているエンドポイントLinux、定義済みの時間間隔でミラー サーバーからダウンロードした署名をプルします。
  • ローカル サーバーからLinuxデバイスにプルされた署名は、ウイルス対策エンジンに読み込まれる前に最初に検証されます。
  • 更新プロセスを開始して構成するには、Linux デバイス上のマネージド構成 json ファイルを更新します。
  • 更新の状態は、mdatp CLI で確認できます。

セキュリティ インテリジェンス更新プログラムをダウンロードするためのミラー サーバー上のプロセス フロー図

図 1: セキュリティ インテリジェンス更新プログラムをダウンロードするためのミラー サーバー上のプロセス フロー図

セキュリティ インテリジェンス更新プログラムのLinux エンドポイントのプロセス フロー図

図 2: セキュリティ インテリジェンス更新プログラムのLinux エンドポイントのプロセス フロー図

ミラー サーバーは、次のいずれかのオペレーティング システムを実行できます。

  • Linux (任意のフレーバー)
  • Windows (任意のバージョン)
  • Mac (任意のバージョン)

前提条件

  • Defender for Endpoint バージョン 101.24022.0001 以降は、Linux エンドポイントにインストールする必要があります。

  • Linux エンドポイントには、ミラー サーバーへの接続が必要です。

  • Linux エンドポイントは、Defender for Endpoint でサポートされているディストリビューションのいずれかを実行している必要があります。 (「サポートされているLinuxディストリビューション」を参照してください)。

  • ミラー サーバーには、HTTP/HTTPS サーバーまたは NFS サーバーなどのネットワーク共有サーバーを使用できます。

  • ミラー サーバーは、次の URL にアクセスできる必要があります。

    • https://github.com/microsoft/mdatp-xplat.git
    • https://go.microsoft.com/fwlink/?linkid=2144709
  • ミラー サーバーは bash または PowerShell をサポートする必要があります。

  • ミラー サーバーには、次の最小システム仕様が必要です。

    CPU コア RAM 空きディスク スワップ
    2 コア (優先 4 コア) 1 GB 最小 (推奨 4 GB) 2 GB システム依存

    注:

    この構成は、提供される要求の数と、各サーバーが処理する必要がある負荷によって異なる場合があります。

ミラー サーバーの構成

注:

  • ミラー サーバーの管理と所有権は、お客様のプライベート環境に存在する場合にのみお客様にあります。
  • ミラー サーバーには Defender for Endpoint がインストールされている必要はありません。

オフライン セキュリティ インテリジェンス ダウンローダー スクリプトを取得する

Microsoftは、microsoft/mdatp-xplat GitHub リポジトリでオフライン セキュリティ インテリジェンス ダウンローダー スクリプトをホストします。

ダウンローダー スクリプトを取得するには、次の手順を実行します。

オプション 1: リポジトリを複製する (推奨)

リポジトリを複製するには、次の手順を実行します。

  1. ミラー サーバーに git をインストールします。

  2. リポジトリを複製するディレクトリに移動します。

  3. 次のコマンドを実行します。git clone https://github.com/microsoft/mdatp-xplat.git

オプション 2: zip 形式のファイルをダウンロードする

リポジトリを複製する代わりに zip パッケージを使用するには、次の手順に従います。

  1. zip 形式のファイルをダウンロードします

  2. ダウンロードしたファイルを、スクリプトを保持するフォルダーにコピーします。

  3. zip 形式のフォルダーを抽出します。

  4. リポジトリ/ダウンロードした zip ファイルを定期的に最新バージョンに更新するようにタスクまたは cron ジョブ をスケジュールします。

リポジトリを複製した後、または zip ファイルをダウンロードした後のローカル ディレクトリ構造

次のディレクトリ 一覧の例を使用して、ローカル コピーに想定される linux/definition_downloader 構造とスクリプトが含まれていることを確認します。

user@vm:~/mdatp-xplat$ tree linux/definition_downloader/
linux/definition_downloader/
├── README.md
├── settings.json
├── settings.ps1
├── xplat_offline_updates_download.ps1
└── xplat_offline_updates_download.sh

0 directories, 5 files

注:

オフライン更新ダウンローダー スクリプトの使用方法の詳細については、 README.md ファイルを参照してください。

settings.json ファイルは、スクリプト実行の出力を決定するためにユーザーが構成できるいくつかの変数で構成されます。

フィールド名 説明
downloadFolder 文字列 スクリプトがファイルをダウンロードする場所にマップします。
downloadLinuxUpdates bool trueに設定すると、スクリプトはdownloadFolderにLinux固有の更新プログラムをダウンロードします。
logFilePath 文字列 特定のフォルダーに診断ログを設定します。 問題が発生した場合は、診断ログ ファイルをMicrosoftと共有してデバッグできます。
downloadMacUpdates bool このスクリプトは、Mac 固有の更新プログラムを downloadFolderにダウンロードします。
downloadPreviewUpdates bool 特定の OS で使用できる更新プログラムのプレビュー バージョンをダウンロードします。
backupPreviousUpdates bool スクリプトで以前の更新プログラムを _back フォルダーにコピーすることができ、新しい更新プログラムが downloadFolderにダウンロードされます。

オフライン セキュリティ インテリジェンス ダウンローダー スクリプトを実行する

ダウンローダー スクリプトを手動で実行するには、前のセクションの説明に従ってsettings.json ファイル内のパラメーターを構成し、ミラー サーバーの OS に基づいて次のいずれかのコマンドを使用します。

  • Bash: 構成済みのダウンロード フォルダーに最新のオフライン定義更新プログラムを取得するには、次のコマンドを実行します。

    ./xplat_offline_updates_download.sh
    
  • PowerShell: ミラー サーバーがWindows実行されている場合は、PowerShell ダウンローダー スクリプトを使用してオフライン定義パッケージを取得します。

    ./xplat_offline_updates_download.ps1
    

注:

cron ジョブをスケジュールして、このスクリプトを実行して、ミラー サーバーの最新のセキュリティ インテリジェンス更新プログラムを定期的にダウンロードします。

ミラー サーバーでオフライン セキュリティ インテリジェンス更新プログラムをホストする

スクリプトが実行されると、 settings.json ファイル (updates.zip) で構成されたフォルダーに最新の署名がダウンロードされます。

署名 zip がダウンロードされると、ミラー サーバーを使用してホストできます。 ミラー サーバーは、HTTP/HTTPS/ネットワーク共有サーバー、またはローカル/リモート マウント ポイントのいずれかを使用してホストできます。

更新プログラムがミラー サーバーでホストされたら、ホストされているサーバーの絶対パスをコピーします ( arch_* ディレクトリを含まない)。

注:

たとえば、ダウンローダー スクリプトが downloadFolder=/tmp/wdav-update で実行され、HTTP サーバー (www.example.server.com:8000) が /tmp/wdav-update パスをホストしている場合、対応する URI は www.example.server.com:8000/linux/production/ です (ディレクトリ内に arch_* ディレクトリがあることを確認してください)。

ディレクトリの絶対パス (ローカル/リモート マウント ポイント) を使用することもできます。 たとえば、スクリプトによってファイルがディレクトリ /tmp/wdav-updateにダウンロードされた場合、対応する URI は:/tmp/wdav-update/linux/productionです。

ミラー サーバーを設定したら、「エンドポイントの構成」の説明に従って、マネージド構成の offlineDefinitionUpdateUrl として、この URI を Linux エンドポイントに伝達する必要があります

エンドポイントを構成する

オフライン セキュリティ インテリジェンス更新プログラム機能は、次の 2 つの方法で構成できます。

  • Defender/Intune ポータルのセキュリティ設定管理を使用する: デバイスのグループの設定を一元的に管理および構成できます。
  • マネージド JSON ファイルを使用する: 手動で、または Chef、Ansible などのサードパーティの管理ツールを使用して設定を構成できます。

Defender ポータルでオフライン セキュリティ インテリジェンス更新プログラムを構成するには、次の手順に従います。

  1. Defender ポータルで、 Endpoints>Configuration management>Endpoint セキュリティ ポリシーに移動し、[ 新しいポリシーの作成] を選択します。
  2. ポリシー作成ウィザードで、プラットフォームとして [Linux] を選択し、テンプレートとして [ウイルス対策] をMicrosoft Defenderします。 次に、ポリシーの作成 を選択します。
  3. ポリシーの名前と説明を入力し、[ 次へ] を選択します。

[構成設定] 手順では、オフライン セキュリティ インテリジェンス更新プログラム機能の構成設定を[ウイルス対策エンジン] セクションと [クラウド提供の保護設定] セクションで確認できます。

設定 説明
オフライン セキュリティ インテリジェンス更新プログラムを有効にする この設定により、Linux エンドポイントでオフライン セキュリティ インテリジェンス更新機能が有効になります。 この設定を有効にすると、次の 2 つの設定が使用可能になります。 自動セキュリティ インテリジェンス更新プログラムも有効になっていることを確認します。
クラウドへのオフライン セキュリティ インテリジェンス更新プログラムのフォールバック Trueに設定されている場合、エンドポイントは、ミラー サーバーからの署名の取得に失敗した場合、Microsoft クラウドから署名の更新を取得しようとします。
オフライン セキュリティ インテリジェンスの更新 URL またはディレクトリ この設定では、セキュリティ インテリジェンス更新プログラムをホストするミラー サーバーの URL またはディレクトリ パスを指定します。 URL は、 http://<mirror_server_address>/linux/production/ 形式 (HTTP/HTTPS サーバーを使用している場合) またはディレクトリ パス (ネットワーク共有またはローカル/リモート マウント ポイントを使用している場合) である必要があります。 詳細については、「ミラー サーバーでオフライン セキュリティ インテリジェンス更新プログラムをホストする」を参照してください。
セキュリティ インテリジェンス更新の時間間隔 既定では、Linux エンドポイントは、8 時間 (28800 秒) ごとにミラー サーバーから署名の更新をプルします。 別の間隔を指定する場合は、この設定を使用します。 間隔を秒単位で指定します。

構成を確認する

Linux エンドポイントで設定が正しく適用されているかどうかをテストするには、次のコマンドを実行します。

mdatp health --details definitions

次の出力例は、定義が正常に更新され、オフライン更新構成が適用されたことを確認するフィールドを示しています。

user@vm:~$ mdatp health --details definitions
automatic_definition_update_enabled         : true [managed]
definitions_updated                         : Mar 14, 2024 at 12:13:17 PM
definitions_updated_minutes_ago             : 2
definitions_version                         : "1.407.417.0"
definitions_status                          : "up_to_date"
definitions_update_source_uri               : "https://go.microsoft.com/fwlink/?linkid=2144709"
definitions_update_fail_reason              : ""
offline_definition_url_configured           : "http://172.XX.XXX.XX:8000/linux/production/" [managed]
offline_definition_update                   : "enabled" [managed]
offline_definition_update_verify_sig        : "enabled"
offline_definition_update_fallback_to_cloud : false[managed]

オフライン セキュリティ インテリジェンス更新の開始

オフライン セキュリティ インテリジェンスの更新は、自動的または手動でトリガーできます。

自動更新

自動更新は、次の条件下で発生します。

  • ウイルス対策エンジンの適用レベルreal_timeに設定され、automaticDefinitionUpdateEnabledマネージド構成ファイルのフィールドoffline_definition_updatemdatp_managed.jsontrueに設定されている場合、オフライン セキュリティ インテリジェンスの更新は定期的に自動的にトリガーされます。
  • 既定では、この定期的な間隔は 8 時間です。 ただし、definitionUpdatesInterval ファイルで mdatp_managed.json パラメーターを設定することで構成できます。

手動更新

オフライン セキュリティ インテリジェンス更新を手動でトリガーして Linux エンドポイント上のミラー サーバーから署名をダウンロードするには、次のコマンドを実行して、構成されたソースから即時の定義更新を強制します。

mdatp definitions update

更新の状態を確認する

更新をトリガーした後、次のチェックを使用して成功を確認します。

  1. mdatp health --details --definitions コマンドを実行して、更新が成功したことを確認します。

  2. 次のフィールドを確認します。 次の出力例は、正常な更新を示す定義の正常性フィールドを示しています。

user@vm:~$ mdatp health --details definitions
...
definitions_status                          : "up_to_date"
...
definitions_update_fail_reason              : ""
...

トラブルシューティングと診断

更新が失敗した場合、スタックしている場合、または開始しない場合は、次の手順に従ってトラブルシューティングを行います。

  1. オフライン セキュリティ インテリジェンス更新プログラムの状態を確認します。 次のコマンドを使用して、現在の定義の状態と更新元を確認します。

    mdatp health --details definitions
    

    [ definitions_update_fail_reason ] セクションで情報を探します。

  2. offline_definition_updateoffline_definition_update_verify_sigが有効になっていることを確認します。

  3. definitions_update_source_urioffline_definition_url_configuredと等しいことを確認します。

    • definitions_update_source_uri は、署名がダウンロードされたソースです。
    • offline_definition_url_configured は、署名をダウンロードするソースであり、マネージド構成ファイルに記載されているソースです。
  4. 接続テストを実行して、エンドポイントがミラー サーバーと必要なDefender サービスに到達できることを確認します。

    mdatp connectivity test
    
  5. 接続が成功した場合は、次のコマンドを使用して定義の更新を手動で再試行します。

    mdatp definitions update