ExtraHop Reveal(x) DNS ログを収集する

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

このドキュメントでは、Bindplane を使用して ExtraHop Reveal(x) DNS ログを Google Security Operations に取り込む方法について説明します。ExtraHop Reveal(x) は、ネットワーク上のすべての DNS トランザクションをキャプチャして分析するパッシブ DNS モニタリング機能を提供します。組織は Reveal(x) を使用して、DNS トラフィックのディープ パケット インスペクションを通じて、トンネリング、ドメイン生成アルゴリズム(DGA)、データの引き出しなどの DNS ベースの脅威を検出します。

始める前に

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

  • Google SecOps インスタンス。
  • Windows Server 2016 以降、または systemd を使用する Linux ホスト。
  • プロキシの背後で実行している場合は、Bindplane エージェントの要件に従ってファイアウォール ポートが開いていることを確認してください。
  • ExtraHop Reveal(x) 管理ページへの特権アクセス。
  • 構成された syslog ポート上の ExtraHop センサーと Bindplane エージェント ホスト間のネットワーク接続。

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

  1. Google SecOps コンソール にログインします。
  2. [SIEM 設定] [>] [Collection Agents] に移動します。
  3. Ingestion Authentication File をダウンロードします。
  4. 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](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](https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh))" install_unix.sh
    

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

その他のインストール オプションについては、Bindplane エージェントのインストール ガイドをご覧ください。

syslog を取り込んで Google SecOps に送信するように Bindplane エージェントを構成する

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

    • Linux: sudo systemctl status observiq-otel-collector
    • Windows: C:\Program Files\observIQ OpenTelemetry Collector\config.yaml
  2. config.yaml ファイルを次のように編集します。

    receivers:
      udplog:
        listen_address: "0.0.0.0:514"
    
    exporters:
      chronicle/extrahop_dns:
        compression: gzip
        creds_file_path: '/path/to/ingestion-authentication-file.json'
        customer_id: '<CUSTOMER_ID>'
        endpoint: '<ENDPOINT>'
        log_type: 'EXTRAHOP_DNS'
        raw_log_field: body
        ingestion_labels:
    
    service:
      pipelines:
        logs/extrahop_dns_to_chronicle:
          receivers:
            - udplog
          exporters:
            - chronicle/extrahop_dns
    
  • <CUSTOMER_ID> は、実際のお客様 ID に置き換えます。
  • /path/to/ingestion-authentication-file.json は、認証ファイルを保存したパスに更新します。
  • <ENDPOINT> は、リージョン エンドポイントに置き換えます:
    • 米国: malachiteingestion-pa.googleapis.com
    • ヨーロッパ: europe-malachiteingestion-pa.googleapis.com
    • アジア: asia-southeast1-malachiteingestion-pa.googleapis.com

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

  • Linux で Bindplane エージェントを再起動するには、sudo systemctl restart observiq-otel-collector を実行します。
  • Windows で Bindplane エージェントを再起動するには、Services コンソールを使用するか、 cmd net stop observiq-otel-collector && net start observiq-otel-collector を実行します。

DNS syslog 転送用に ExtraHop Reveal(x) Open Data Stream を構成する

syslog Open Data Stream ターゲットを追加する

  1. ExtraHop 管理 ページにログインします。
  2. [システム構成] セクションで、[Open Data Streams] をクリックします。
  3. [ターゲットを追加] をクリックし、[Syslog] を選択します。
  4. 次の構成情報を提供してください。
    • 名前: わかりやすい名前を入力します(例: Google SecOps-DNS)。
    • ホスト: Bindplane エージェント ホストの IP アドレスを入力します。
    • ポート: 514
    • プロトコル: UDP
  5. [テスト] をクリックして接続を確認し、[保存] をクリックします。

DNS トランザクションをエクスポートするトリガーを作成する

  1. システム設定 アイコンをクリックして、[トリガー] を選択します。
  2. [作成] をクリックします。
  3. 次の構成情報を提供してください。
    • 名前: DNS Syslog Export
    • [イベント] : [DNS_REQUEST] と [DNS_RESPONSE] を選択します。
  4. [エディタ] ペインで、次のトリガー スクリプトを入力します。

    var obj = {
        eh_event: "dns",
        client_ip: Flow.client.ipaddr.toString(),
        server_ip: Flow.server.ipaddr.toString(),
        client_port: Flow.client.port,
        server_port: Flow.server.port,
        qname: DNS.qname,
        qtype: DNS.qtype
    };
    
    if (event === "DNS_RESPONSE") {
        obj.dns_type = "response";
        obj.rcode = DNS.errorNum;
        obj.answers = JSON.stringify(DNS.answers);
    } else {
        obj.dns_type = "request";
        obj.opcode = DNS.opcode;
    }
    
    Remote.Syslog("Chronicle-DNS").info(JSON.stringify(obj));
    
  5. [保存] をクリックします。

デバイスにトリガーを割り当てる

  1. 作成したトリガーを開きます。
  2. [割り当て] セクションで、[割り当て] をクリックします。
  3. 関連するデバイスまたはデバイス グループを選択し、[割り当て] をクリックします。

UDM マッピング テーブル

ログフィールド UDM マッピング ロジック
answers network.dns.answers 未加工フィールドから解析されます。
dst target.ip 未加工マッピング。
dpt target.port 未加工マッピング。
host principal.hostname 未加工マッピング。
proto network.ip_protocol 未加工マッピング。
qname network.dns.questions.name 未加工マッピング。
qtype network.dns.questions.type 未加工マッピング。
rcode network.dns.response_code 未加工マッピング。
src principal.ip 未加工マッピング。
spt principal.port 未加工マッピング。
ttl network.dns.answers.ttl 未加工マッピング。
なし metadata.log_type EXTRAHOP_DNS に設定します。
なし metadata.product_name Reveal(x) DNS に設定します。
なし metadata.vendor_name ExtraHop に設定します。

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