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

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

この記事では、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 は、 この GitHub リポジトリでオフライン セキュリティ インテリジェンス ダウンローダー スクリプトをホストします。

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

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

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

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

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

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

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

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

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

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

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

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

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 string スクリプトがファイルをダウンロードする場所にマップします。
downloadLinuxUpdates bool trueに設定すると、スクリプトはdownloadFolderにLinux固有の更新プログラムをダウンロードします。
logFilePath string 特定のフォルダーに診断ログを設定します。 このファイルは、問題がある場合にスクリプトをデバッグするために Microsoft と共有できます。
downloadMacUpdates bool このスクリプトは、Mac 固有の更新プログラムを downloadFolderにダウンロードします。
downloadPreviewUpdates bool 特定の OS で使用できる更新プログラムのプレビュー バージョンをダウンロードします。
backupPreviousUpdates bool スクリプトで以前の更新プログラムを _back フォルダーにコピーすることができ、新しい更新プログラムが downloadFolderにダウンロードされます。

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

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

  • Bash:

    ./xplat_offline_updates_download.sh
    
  • 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です。

ミラー サーバーを設定したら、次のセクションで説明するように、この URI をマネージド構成のofflineDefinitionUpdateUrlとしてLinux エンドポイントに伝達する必要があります。

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

次のサンプル mdatp_managed.json を使用し、構成に従ってパラメーターを更新し、ファイルを場所 /etc/opt/microsoft/mdatp/managed/mdatp_managed.jsonにコピーします。

{
  "cloudService": {
    "automaticDefinitionUpdateEnabled": true,
    "definitionUpdatesInterval": 1202
  },
  "antivirusEngine": {
    "offlineDefinitionUpdateUrl": "http://172.22.199.67:8000/linux/production/",
    "offlineDefinitionUpdateFallbackToCloud":false,
    "offlineDefinitionUpdate": "enabled"
  },
  "features": {
    "offlineDefinitionUpdateVerifySig": "enabled"
  }
}
フィールドの名前 注釈
automaticDefinitionUpdateEnabled True/False 更新を自動的に実行しようとする Defender for Endpoint の動作を決定します。それぞれオンまたはオフになっています。
definitionUpdatesInterval 数値 署名の自動更新の間隔 (秒単位)。
offlineDefinitionUpdateUrl 文字列 ミラー サーバーセットアップの一部として生成される URL 値。 これは、リモート サーバー URL またはディレクトリ (ローカル/リモート マウント ポイント) の観点から指定できます。 このパスを指定する方法については、前のセクションを参照してください。
offlineDefinitionUpdate enabled/disabled enabledに設定すると、オフライン セキュリティ インテリジェンス更新機能が有効になり、その逆も有効になります。
offlineDefinitionUpdateFallbackToCloud True/False オフライン ミラー サーバーが更新要求の処理に失敗した場合に、Defender for Endpoint セキュリティ インテリジェンスの更新アプローチを決定します。 trueに設定した場合、オフライン セキュリティ インテリジェンス更新プログラムが失敗した場合は Microsoft クラウド経由で更新が再試行されます。それ以外の場合は、その逆です。
offlineDefinitionUpdateVerifySig enabled/disabled enabledに設定すると、ダウンロードした定義がエンドポイントで検証されます。それ以外の場合は検証されます。

注:

現時点では、オフライン セキュリティ インテリジェンスの更新プログラムは、マネージド json のみを使用してLinux エンドポイントで構成できます。 Microsoft Defender ポータルでの Defender for Endpoint セキュリティ設定管理との統合はロードマップ上にありますが、まだ利用できません。

構成を確認する

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 に設定され、マネージド json のフィールドautomaticDefinitionUpdateEnabledoffline_definition_updatetrueに設定されている場合、オフライン セキュリティ インテリジェンスの更新は定期的な間隔で自動的にトリガーされます。
  • 既定では、この定期的な間隔は 8 時間です。 ただし、マネージド json で definitionUpdatesInterval パラメーターを設定することで構成できます。

手動更新

  • オフライン セキュリティ インテリジェンス更新プログラムを手動でトリガーして、Linux エンドポイント上のミラー サーバーから署名をダウンロードするには、次のコマンドを実行します。

    mdatp definitions update
    

更新の状態を確認する

  • 自動または手動のいずれかの方法を使用してオフライン セキュリティ インテリジェンス更新プログラムをトリガーした後、 mdatp health --details --definitions コマンドを実行して更新が成功したことを確認します。

  • 次のフィールドを確認します。

    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. ミラーサーバーがホストから到達可能な場合は、接続テストを実行してチェックしてみてください。

    mdatp connectivity test
    
  5. 次のコマンドを使用して手動更新を開始してみてください。

    mdatp definitions update
    

関連項目