McAfee Firewall Enterprise のログを収集する

以下でサポートされています。

このドキュメントでは、McAfee Firewall Enterprise のログを収集する方法について説明します。パーサー コードは、まず一連の Grok パターンを使用してフィールドを抽出し、SYSLOG 形式と JSON 形式の両方を処理します。次に、特定のログカテゴリに応じて、特定の Grok パターンとキーバリュー抽出を適用し、データを Google Security Operations UDM スキーマにマッピングします。

始める前に

  • Google Security Operations インスタンスがあることを確認します。
  • Windows 2016 以降、または systemd を使用する Linux ホストを使用していることを確認します。
  • プロキシの背後で実行している場合は、ファイアウォールのポートが開いていることを確認します。
  • McAfee ESM への特権アクセス権があることを確認します。

Google SecOps 取り込み認証ファイルを取得する

  1. Google SecOps コンソールにログインします。
  2. [SIEM 設定] > [収集エージェント] に移動します。
  3. 取り込み認証ファイルをダウンロードします。BindPlane をインストールするシステムにファイルを安全に保存します。

Google SecOps のお客様 ID を取得する

  1. Google SecOps コンソールにログインします。
  2. [SIEM 設定] > [プロファイル] に移動します。
  3. [組織の詳細] セクションから [お客様 ID] をコピーして保存します。

BindPlane Agent をインストールする

Windows のインストール

  1. 管理者として [コマンド プロンプト] または [PowerShell] を開きます。
  2. 次のコマンドを実行します。

    msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
    

Linux のインストール

  1. root 権限または sudo 権限でターミナルを開きます。
  2. 次のコマンドを実行します。

    sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh
    

その他のインストール リソース

Syslog を取り込んで Google SecOps に送信するように BindPlane Agent を構成する

  1. 構成ファイルにアクセスします。

    • config.yaml ファイルを見つけます。通常、Linux では /etc/bindplane-agent/ ディレクトリ、Windows ではインストール ディレクトリにあります。
    • テキスト エディタ(nanovi、メモ帳など)を使用してファイルを開きます。
  2. config.yaml ファイルを次のように編集します。

    receivers:
      udplog:
        # Replace with your specific IP and port
        listen_address: "0.0.0.0:514"
    
    exporters:
      chronicle/chronicle_w_labels:
        compression: gzip
        # Path to the ingestion authentication file
        creds: '/path/to/your/ingestion-auth.json'
        # Your Chronicle customer ID
        customer_id: 'your_customer_id'
        endpoint: malachiteingestion-pa.googleapis.com
        ingestion_labels:
          log_type: SYSLOG
          namespace: mcafee_esm
          raw_log_field: body
    
    service:
      pipelines:
        logs/source0__chronicle_w_labels-0:
          receivers:
            - udplog
          exporters:
            - chronicle/chronicle_w_labels
    
  3. インフラストラクチャの要件に応じてポートと IP アドレスを置き換えます。

  4. <customer_id> は、実際のお客様 ID に置き換えます。

  5. [Google SecOps 取り込み認証ファイルを取得する] セクションで、/path/to/ingestion-authentication-file.json を認証ファイルが保存されているパスに更新します。

BindPlane Agent を再起動して変更を適用する

  • Linux で BindPlane Agent を再起動するには、次のコマンドを実行します。

    sudo systemctl restart bindplane-agent
    
  • Windows で BindPlane Agent を再起動するには、[サービス] コンソールを使用するか、次のコマンドを入力します。

    net stop BindPlaneAgent && net start BindPlaneAgent
    

Syslog を転送するように McAfee ESM を構成する

  1. McAfee ESM コンソールにログインします。
  2. [システムのプロパティ] > [イベント転送] に移動します。
  3. [追加] をクリックして、新しい Syslog 転送ルールを作成します。
  4. 以下の設定を構成します。
    • [名前] にわかりやすい名前を入力します(例: Google SecOps Forwarding)。
    • 宛先 IP アドレス: Syslog サーバー(または BindPlane エージェント)の IP を入力します。
    • 宛先ポート: UDP の場合は 514 を使用します(Syslog サーバーまたは Bindplane の構成に応じて、別のポートを指定することもできます)。
    • プロトコル: [UDP] を選択します(Syslog サーバーまたは Bindplane の構成に応じて、TCP または TLS を選択することもできます)。
    • 形式: CEF(共通イベント形式)または ASCII(McAfee ログに推奨される形式)を選択します。
    • フィルタ: 転送するイベントタイプ(ファイアウォール ログ、認証イベント、脅威検出など)を定義します。
  5. [保存] をクリックします。
  6. 変更を有効にするには、McAfee ESM サービスを再起動します。

UDM マッピング テーブル

ログフィールド UDM マッピング 論理
act security_result.action_details 値は、解析された JSON ペイロードの「act」フィールドから取得されます。
cat security_result.category_details 値は、解析された JSON ペイロードの「cat」フィールドから取得されます。
data.AppID target.application 値は、解析された JSON ペイロードの「AppID」フィールドから取得されます。
data.Destination_Hostname target.hostname 値は、解析された JSON ペイロードの「Destination_Hostname」フィールドから取得されます。
data.Destination_UserID target.user.windows_sid 値は、解析された JSON ペイロードの「Destination_UserID」フィールドから取得されます。
data.DomainID target.administrative_domain 値は、解析された JSON ペイロードの「DomainID」フィールドから取得されます。
data.dst_ip target.ip 値は、解析された JSON ペイロードの「dst_ip」フィールドから取得されます。
data.dst_mac target.mac 値は、解析された JSON ペイロードの「dst_mac」フィールドから取得されます。
data.dst_port target.port 値は、解析された JSON ペイロードの「dst_port」フィールドから取得され、整数に変換されます。
data.HostID target.hostname 値は、解析された JSON ペイロードの「HostID」フィールドから取得されます。
data.norm_sig.name このフィールドの値に基づいてイベントタイプが決まります。
data.PID target.process.pid 値は、解析された JSON ペイロードの「PID」フィールドから取得されます。
data.Process_Name target.process.command_line 値は、解析された JSON ペイロードの「Process_Name」フィールドから取得されます。
data.severity security_result.severity 値は、解析された JSON ペイロードの「severity」フィールドから取得され、整数に変換されます。その値に基づいて、UDM の重大度レベル(LOW(1 ~ 32)、MEDIUM(33 ~ 65)、HIGH(66 ~ 100))にマッピングされます。
data.sig.name security_result.description 値は、解析された JSON ペイロードの「sig.name」フィールドから取得されます。
data.Source_Logon_ID about.labels.value 値は、解析された JSON ペイロードの「Source_Logon_ID」フィールドから取得されます。
data.Source_UserID principal.user.windows_sid 値は、解析された JSON ペイロードの「Source_UserID」フィールドから取得されます。
data.src_ip principal.ip 値は、解析された JSON ペイロードの「src_ip」フィールドから取得されます。
data.src_mac principal.mac 値は、解析された JSON ペイロードの「src_mac」フィールドから取得されます。
data.src_port principal.port 値は、解析された JSON ペイロードの「src_port」フィールドから取得され、整数に変換されます。
data.UserIDDst target.user.userid 値は、解析された JSON ペイロードの「UserIDDst」フィールドから取得されます。
data.UserIDSrc principal.user.userid 値は、解析された JSON ペイロードの「UserIDSrc」フィールドから取得されます。
deviceExternalId about.asset.asset_id 値は、解析された JSON ペイロードの「deviceExternalId」フィールドから取得され、プロダクト名と組み合わせて一意のアセット ID が作成されます。
deviceTranslatedAddress about.nat_ip 値は、解析された JSON ペイロードの「deviceTranslatedAddress」フィールドから取得されます。
dst target.ip 値は、解析された JSON ペイロードの「dst」フィールドから取得されます。
dpt target.port 値は、解析された JSON ペイロードの「dpt」フィールドから取得され、整数に変換されます。
eventId additional.fields.value.string_value 値は、解析された JSON ペイロードの「eventId」フィールドから取得されます。
externalId metadata.product_log_id 値は、解析された JSON ペイロードの「externalId」フィールドから取得されます。
ホスト名 principal.hostname 値は、Grok パターンによって抽出された「hostname」フィールドから取得されます。
log_category metadata.log_type 値は、Grok パターンによって抽出された「log_category」フィールドから取得されます。
log_type metadata.product_event_type 値は、Grok パターンによって抽出された「log_type」フィールドから取得されます。
メッセージ このフィールドは解析され、ログカテゴリに応じてさまざまなフィールドが抽出されます。
nitroURL このフィールドは、UDM の IDM オブジェクトにマッピングされていません。
pid principal.process.pid 値は、Grok パターンによって抽出された「pid」フィールドから取得されます。
process_id about.process.pid 値は、Grok パターンによって抽出された「process_id」フィールドから取得されます。
proto network.ip_protocol 値は、解析された JSON ペイロードの「proto」フィールドから取得され、対応する IP プロトコルにマッピングされます。
rhost principal.ip 値は、Grok パターンによって抽出された「rhost」フィールドから取得され、IP アドレスとして解析されます。
shost principal.hostname 値は、解析された JSON ペイロードの「shost」フィールドから取得されます。
sntdom principal.administrative_domain 値は、解析された JSON ペイロードの「sntdom」フィールドから取得されます。
spt principal.port 値は、解析された JSON ペイロードの「spt」フィールドから取得され、整数に変換されます。
src principal.ip 値は、解析された JSON ペイロードの「src」フィールドから取得されます。
時間 timestamp 値は、Grok パターンによって抽出された「time」フィールドから取得され、タイムスタンプとして解析されます。
type metadata.product_event_type 値は、kv フィルタによって抽出された「type」フィールドから取得されます。
uid principal.user.userid 値は、kv フィルタによって抽出された「uid」フィールドから取得されます。
metadata.event_type metadata.event_type 値は、イベント名とログ内の他のフィールドに基づいて設定されます。イベントタイプを決定するロジックは次のとおりです: - イベント名に「TCP」が含まれている場合、イベントタイプは「NETWORK_CONNECTION」に設定されます。- イベント名に「Mail」が含まれている場合、イベントタイプは「EMAIL_TRANSACTION」に設定されます。- イベント名に「HTTP」または「http」が含まれている場合、イベントタイプは「NETWORK_HTTP」に設定されます。- イベント名に「User Accessed」または「denied by access-list」が含まれている場合、イベントタイプは「USER_RESOURCE_ACCESS」に設定されます。- イベント名に「Data Source Idle」が含まれている場合、イベントタイプは「STATUS_UPDATE」に設定されます。- イベント名に「Comm with snowflex」が含まれている場合、イベントタイプは「SERVICE_UNSPECIFIED」に設定されます。- イベント名に「An account was successfully logged on」が含まれている場合、イベントタイプは「USER_LOGIN」に設定されます。- イベント名に「Initialization status for service objects」が含まれている場合、イベントタイプは「GENERIC_EVENT」に設定されます。- 上記の条件がいずれも満たされない場合、イベントタイプは「GENERIC_EVENT」に設定されます。
metadata.vendor_name metadata.vendor_name 値は「MCAFEE」に設定されます。
network.direction network.direction 解析された JSON ペイロードの「deviceDirection」フィールドが 0 の場合、この値は「INBOUND」に設定されます。それ以外の場合は「OUTBOUND」に設定されます。
security_result.severity security_result.severity 値は、解析された JSON ペイロードの「cef_event_severity」フィールドが 1 の場合は「LOW」、2 の場合は「MEDIUM」、3 の場合は「HIGH」、9 の場合は「CRITICAL」に設定されます。

変更

2024-03-21

  • 新しく作成されたパーサー。

さらにサポートが必要な場合 コミュニティ メンバーや Google SecOps の専門家から回答を得る。