Azure Monitor エージェントを使用して syslog と CEF のメッセージを Microsoft Sentinel に取り込む

この記事では、AMA 経由の Syslog コネクタと AMA 経由の Common Event Format (CEF) コネクタを使って、Linux マシンから、またネットワークとセキュリティ デバイスおよびアプライアンスから、Common Event Format (CEF) のものを含む syslog メッセージをすばやくフィルター処理して取り込む方法について説明します。 これらのデータ コネクタの詳細については、「Microsoft Sentinel 用の AMA を介した Syslog と AMA を介した Common Event Format (CEF)」を参照してください。

Note

Container Insights では、AKS クラスター内の Linux ノードからの Syslog イベントの自動収集をサポートするようになりました。 詳細については、「Container Insights を使用した Syslog 収集」を参照してください。

前提条件

開始する前に、このセクションで説明するようにリソースを構成し、適切なアクセス許可を割り当てる必要があります。

Microsoft Sentinel の前提条件

適切な Microsoft Sentinel ソリューションをインストールし、この記事の手順を完了するためのアクセス許可があることを確認します。

ログ フォワーダーの前提条件

ログ フォワーダーからメッセージを収集する場合は、次の前提条件が適用されます。

  • ログを収集するには、指定された Linux VM (ログ フォワーダー) が必要です。

  • ログ フォワーダーが Azure 仮想マシン "でない" 場合、Azure Arc Connected Machine エージェントがインストールされている必要があります。

  • Linux ログ フォワーダー VM に Python 2.7 または 3 がインストールされている必要があります。 python --version または python3 --version コマンドを使用して確認してください。 Python 3 を使用している場合は、マシンで既定のコマンドとして設定されていることを確認するか、'python' ではなく 'python3' コマンドを使用してスクリプトを実行します。

  • ログ フォワーダーでは、syslog-ng または rsyslog デーモンのいずれかが有効になっている必要があります。

  • ログ フォワーダーの領域要件については、「Azure Monitor エージェントのパフォーマンス ベンチマーク」を参照してください。 また、スケーラブルなインジェストの設計に関する記載を含むこのブログ投稿も確認することをお勧めします。

  • ログ ソース、セキュリティ デバイス、アプライアンスは、ローカルの syslog デーモンではなく、ログ フォワーダーの syslog デーモンにログ メッセージを送信するように構成する必要があります。

マシンのセキュリティの前提条件

組織のセキュリティ ポリシーに従って、マシンのセキュリティを構成してください。 たとえば、企業のネットワーク セキュリティ ポリシーに合わせてネットワークを構成し、デーモンのポートとプロトコルを要件に合わせて変更することができます。 マシンのセキュリティ構成を向上させるには、Azure で VM をセキュリティで保護するか、ネットワーク セキュリティに関するこれらのベスト プラクティスを確認してください。

ログ フォワーダーがクラウドにあるなどの理由で、デバイスが TLS 経由で syslog および CEF ログを送信する場合は、TLS で通信するように syslog デーモン (rsyslog または syslog-ng) を構成する必要があります。 詳細については、以下を参照してください:

データコネクターを構成する

AMA 経由の Syslog データ コネクタまたは AMA 経由の Common Event Format (CEF) データ コネクタの設定プロセスには、次の 2 つの手順が含まれます。

  1. 次のいずれかの方法で、Azure Monitor エージェントをインストールし、データ収集ルール (DCR) を作成します。
  2. ログ フォワーダーを使って他のマシンからログを収集する場合は、ログ フォワーダーで "インストール" スクリプトを実行して、他のマシンからのメッセージをリッスンするように syslog デーモンを構成し、必要なローカル ポートを開きます。

手順に適したタブを選択します。

データ収集ルール (DCR) を作成する

はじめに、Microsoft Sentinel で [AMA 経由の Syslog] または [AMA による Common Event Format (CEF)] データ コネクタを開いて、データ収集ルール (DCR) を作成します。

  1. Azure portal の Microsoft Sentinel の場合、[構成] の下にある [データ コネクタ] を選びます。
    Defender ポータルの Microsoft Sentinel の場合は、[Microsoft Sentinel]>[構成]>[データ コネクタ] を選びます。

  2. Syslog の場合、[検索] ボックスに「Syslog」と入力します。 結果から AMA 経由の Syslog コネクタを選びます。
    CEF の場合、[検索] ボックスに「CEF」と入力します。 結果から、AMA 経由の Common Event Format (CEF) コネクタを選びます。

  3. 詳細ウィンドウで [コネクタ ページを開く] を選択します。

  4. [構成] 領域で、[+データ収集ルールの作成] を選びます。

    AMA 経由の Syslog コネクタのページを示すスクリーンショット。

    AMA コネクタを介した CEF のページを示すスクリーンショット。

  5. [基本] タブで次の操作を行います。

    • DCR 名を入力します。
    • サブスクリプションを選択します。
    • DCR を置くリソース グループを選びます。

    [基本情報] タブの DCR の詳細を示すスクリーンショット。

  6. [次へ: リソース]> を選択します。

VM のリソースの定義

[リソース] タブで、AMA をインストールするマシン (この場合はログ フォワーダー マシン) を選択します。 ログ フォワーダーが一覧に表示されない場合は、Azure Connected Machine エージェントがインストールされていない可能性があります。

  1. 使用可能なフィルターまたは検索ボックスを使用して、ログ フォワーダー VM を見つけます。 一覧でサブスクリプションを展開するとそのリソース グループを表示でき、リソース グループを展開するとその VM を表示できます。

  2. AMA をインストールするログ フォワーダー VM を選択します。 VM 名にマウス ポインターを合わせると、その横にチェック ボックスが表示されます。

    DCR を設定するときにリソースを選択する方法を示すスクリーンショット。

  3. 変更内容を確認し、[Next: Collect > (次へ: 収集 >) を選択します。

機能と重大度の選択

syslog メッセージと CEF メッセージの両方に同じ機能を使用すると、データ インジェストで重複が発生する場合があります。 詳細については、「データ インジェストの重複を回避する」を参照してください。

  1. [収集] タブで、各機能の最小ログ レベルを選択します。 ログ レベルを選択すると、Microsoft Sentinel によって、選択したレベルと、重大度がより高いその他のレベルのログが収集されます。 たとえば、[LOG_ERR] を選択すると、Microsoft Sentinel によって、LOG_ERRLOG_CRITLOG_ALERTLOG_EMERG レベルのログが収集されます。

    DCR を設定するときにログ レベルを選択する方法を示すスクリーンショット。

  2. 選択内容を確認し、[次へ: 確認と作成] を選択します。

ルールを確認して作成する

すべてのタブを完了したら、入力した内容を確認し、データ収集ルールを作成します。

  1. [レビューと作成] タブで、 [作成] を選択します。

    DCR の構成をレビューして作成する方法を示すスクリーンショット。

    コネクタにより、DCR の作成時に選択したマシンに Azure Monitor エージェントがインストールされます。

  2. Azure portal または Microsoft Defender ポータルで通知を確認し、DCR が作成されてエージェントがインストールされるタイミングを確認します。

  3. コネクタ ページで [最新の情報に更新] を選択して、DCR が一覧に表示されていることを確認します。

"インストール" スクリプトを実行する

ログ フォワーダーを使用している場合、他のマシンからのメッセージをリッスンするように syslog デーモンを構成し、必要なローカル ポートを開きます。

  1. コネクタ ページで、[次のコマンドを実行して、CEF コレクターをインストールして適用します] の下に表示されるコマンド ラインをコピーします。

    コネクタ ページのコマンド ラインのスクリーンショット。

    ここからコピーすることもできます。

    sudo wget -O Forwarder_AMA_installer.py https://raw.githubusercontent.com/Azure/Azure-Sentinel/master/DataConnectors/Syslog/Forwarder_AMA_installer.py&&sudo python Forwarder_AMA_installer.py
    
  2. AMA をインストールしたばかりのログ フォワーダー マシンにサインインします。

  3. 最後の手順でコピーしたコマンドを貼り付けて、インストール スクリプトを起動します。
    スクリプトは、必要なプロトコルを使用するように rsyslog または syslog-ng デーモンを構成し、デーモンを再起動します。 このスクリプトは、UDP および TCP プロトコルの両方で受信メッセージをリッスンするために、ポート 514 を開きます。 この設定を変更するには、マシン上で実行されているデーモンの種類に応じて syslog デーモンの構成ファイルを参照してください。

    • Rsyslog: /etc/rsyslog.conf
    • Syslog-ng: /etc/syslog-ng/syslog-ng.conf

    Python 3 を使用していて、それがマシンで既定のコマンドとして設定されていない場合は、貼り付けたコマンドで pythonpython3 に置き換えてください。 「ログ フォワーダーの前提条件」を参照してください。

    Note

    エージェントが機能できないディスクがいっぱいになるシナリオを回避するため、不要なログを格納しないように syslog-ng または rsyslog の構成を設定することをお勧めします。 ディスクがいっぱいになるシナリオでは、インストールされている AMA の機能が中断されます。 詳細については、「RSyslog」または「Syslog-ng」を参照してください。

セキュリティ デバイスまたはアプライアンスを構成する

次のいずれかの記事に進み、セキュリティ デバイスまたはアプライアンスを構成するための具体的な手順を参照してください。

アプライアンスやデバイスに関する詳しい情報、または情報を入手できない場合については、ソリューション プロバイダーにお問い合わせください。

接続をテストする

Linux マシンまたはセキュリティ デバイスとアプライアンスからのログ メッセージが Microsoft Sentinel に取り込まれたことを確認します。

  1. syslog デーモンが UDP ポートで実行されていること、および AMA がリッスンしていることを検証するには、次のコマンドを実行します。

    netstat -lnptv
    

    rsyslog または syslog-ng デーモンがポート 514 でリッスンしていることが示されます。

  2. ロガーまたは接続されているデバイスから送信されたメッセージをキャプチャするには、バックグラウンドで次のコマンドを実行します。

    tcpdump -i any port 514 -A -vv &
    
  3. 検証が完了したら、fg を入力し、Ctrl+C を選択して tcpdump を停止することをお勧めします。

  4. デモ メッセージを送信するには、次の手順を実行します。

    • netcat ユーティリティを使用します。 この例では、ユーティリティは、改行スイッチをオフにして、echo コマンドで投稿されたデータを読み取ります。 次に、このユーティリティは、タイムアウトなしで localhost の UDP ポート 514 にデータを書き込みます。 netcat ユーティリティを実行するには、別のパッケージをインストールすることが必要な場合があります。

      echo -n "<164>CEF:0|Mock-test|MOCK|common=event-format-test|end|TRAFFIC|1|rt=$common=event-formatted-receive_time" | nc -u -w0 localhost 514
      
    • ロガーを使用します。 この例では、ローカル ホスト上のポート 514 に対して重大度レベル Warninglocal 4 機能に CEF RFC 形式でメッセージを書き込みます。 -t--rfc3164 フラグは、予期されている RFC 形式に準拠するために使用されます。

      logger -p local4.warn -P 514 -n 127.0.0.1 --rfc3164 -t CEF "0|Mock-test|MOCK|common=event-format-test|end|TRAFFIC|1|rt=$common=event-formatted-receive_time"
      
  5. コネクタが正しくインストールされていることを確認するには、次のコマンドのいずれかを使用してトラブルシューティング スクリプトを実行します。

    • CEF ログの場合は、次を実行します。

       sudo wget -O Sentinel_AMA_troubleshoot.py https://raw.githubusercontent.com/Azure/Azure-Sentinel/master/DataConnectors/Syslog/Sentinel_AMA_troubleshoot.py&&sudo python Sentinel_AMA_troubleshoot.py --cef
      
    • Cisco Adaptive Security Appliance (ASA) ログの場合は、次を実行します。

      sudo wget -O Sentinel_AMA_troubleshoot.py https://raw.githubusercontent.com/Azure/Azure-Sentinel/master/DataConnectors/Syslog/Sentinel_AMA_troubleshoot.py&&sudo python Sentinel_AMA_troubleshoot.py --asa
      
    • Cisco Firepower Threat Defense (FTD) ログの場合は、次を実行します。

      sudo wget -O Sentinel_AMA_troubleshoot.py https://raw.githubusercontent.com/Azure/Azure-Sentinel/master/DataConnectors/Syslog/Sentinel_AMA_troubleshoot.py&&sudo python Sentinel_AMA_troubleshoot.py --ftd