ExtraHop DNS ログを収集する

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

このドキュメントでは、Bindplane を使用して ExtraHop DNS ログを Google Security Operations に取り込む方法について説明します。パーサーは、未加工のメッセージ文字列から JSON 形式のログを抽出し、JSON 以外のデータをイベントをドロップして処理します。次に、抽出された JSON の特定のフィールドを統合データモデル(UDM)スキーマの対応するフィールドにマッピングし、データ型を変換してさまざまな DNS レスポンス構造を処理し、一貫した表現を確保します。

始める前に

次の前提条件を満たしていることを確認してください。

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

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

  1. Google SecOps コンソールにログインします。
  2. [SIEM 設定] > [コレクション エージェント] に移動します。
  3. Ingestion Authentication File をダウンロードします。Bindplane をインストールするシステムにファイルを安全に保存します。

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

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

Bindplane エージェントをインストールする

次の手順に沿って、Windows または Linux オペレーティング システムに Bindplane エージェントをインストールします。

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 エージェントを構成する

  1. 構成ファイルにアクセスします。
    • config.yaml ファイルを見つけます。通常、Linux では /etc/bindplane-agent/ ディレクトリに、Windows ではインストール ディレクトリにあります。
    • テキスト エディタ(nanovi、メモ帳など)を使用してファイルを開きます。
  2. config.yaml ファイルを次のように編集します。 yaml receivers: udplog: # Replace the port and IP address as required listen_address: "0.0.0.0:514" exporters: chronicle/chronicle_w_labels: compression: gzip # Adjust the path to the credentials file you downloaded in Step 1 creds_file_path: '/path/to/ingestion-authentication-file.json' # Replace with your actual customer ID from Step 2 customer_id: <customer_id> endpoint: malachiteingestion-pa.googleapis.com # Add optional ingestion labels for better organization log_type: 'EXTRAHOP_DNS' raw_log_field: body ingestion_labels: service: pipelines: logs/source0__chronicle_w_labels-0: receivers: - udplog exporters: - chronicle/chronicle_w_labels
  • 自社のインフラストラクチャでの必要性に応じて、ポートと IP アドレスを置き換えます。

Bindplane エージェントを再起動して変更を適用する

  • Linux で Bindplane エージェントを再起動するには、次のコマンドを実行します。

    sudo systemctl restart bindplane-agent
    
  • Windows で Bindplane エージェントを再起動するには、Services コンソールを使用するか、次のコマンドを入力します。

    net stop BindPlaneAgent && net start BindPlaneAgent
    

ExtraHop Open Data Stream(DNS)の Syslog を構成する

  1. https://<extrahop-hostname-or-IP-address>/admin を使用して ExtraHop Administration にログインします。
  1. [System Configuration] > [Open Data Streams] に移動します。
  2. [ターゲットを追加] をクリックします。
  3. [ターゲット タイプ] プルダウンから、[Syslog] を選択します。
  4. 次の構成の詳細を入力します。
    • 名前: ターゲットを識別するための一意の名前を入力します。
    • ホスト: Bindplane エージェントの IP アドレスを入力します。
    • ポート: Bindplane エージェントのポート番号を入力します。
    • プロトコル: Bindplane の構成に応じて、[UDP] または [TCP] を選択します。
    • (省略可)ローカル タイムゾーンのタイムスタンプを含む syslog 情報を送信するには、[ローカル時間] を選択します。
    • [テスト] をクリックします。
  5. [保存] をクリックします。

UDM マッピング テーブル

ログフィールド UDM マッピング ロジック
ans.data network.dns.answers.data 未加工ログの answers 配列内の data フィールドから抽出されます。
ans.name network.dns.answers.name 未加工ログの answers 配列内の name フィールドから抽出されます。
ans.ttl network.dns.answers.ttl 未加工ログの answers 配列内の ttl フィールドから抽出されます。uinteger に変換されます。
ans.typeNum network.dns.answers.type 未加工ログの answers 配列内の typeNum フィールドから抽出されます。uinteger に変換されます。
ans_data network.dns.answers.data answers 配列が存在しない場合、未加工ログの ans_data フィールドから抽出されます。
ans_name network.dns.answers.name answers 配列が存在しない場合、未加工ログの ans_name フィールドから抽出されます。
ans_ttl network.dns.answers.ttl answers 配列が存在しない場合、未加工ログの ans_ttl フィールドから抽出されます。uinteger に変換されます。
client_ip principal.ip 未加工ログの client_ip フィールドから抽出されます。
dns_type network.dns.response 値が「response」の場合は「true」にマッピングされます。それ以外の場合はマッピングされません。boolean に変換されます。
dst_ip target.ip 未加工ログの dst_ip フィールドから抽出されます。
ip_or_host intermediary.hostname ip_or_host が有効な IP アドレスでない場合は、intermediary.hostname にマッピングされます。
ip_or_host intermediary.ip ip_or_host が有効な IP アドレスの場合、intermediary.ip にマッピングされます。
opcode network.dns.opcode 未加工ログの opcode フィールドから抽出されます。オペコード文字列に基づいて数値にマッピングされます(例: "QUERY" -> 0)。uinteger に変換されます。
qname network.dns.questions.name 未加工ログの qname フィールドから抽出されます。
qtype network.dns.questions.type 未加工ログの qtype フィールドから抽出されます。レコードタイプ文字列("A" -> 1)。uinteger に変換されます。
metadata.event_type NETWORK_DNS に設定します。
metadata.log_type EXTRAHOP_DNS に設定します。
network.application_protocol DNS に設定します。

さらにサポートが必要な場合 コミュニティ メンバーや Google SecOps のプロフェッショナルから回答を得ることができます。