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 の取り込み認証ファイルを取得する
- Google SecOps コンソール にログインします。
- [SIEM 設定] [>] [Collection Agents] に移動します。
- Ingestion Authentication File をダウンロードします。
- Bindplane をインストールするシステムにファイルを安全に保存します。
Google SecOps のお客様 ID を取得する
- Google SecOps コンソール にログインします。
- [SIEM 設定] > [プロファイル] に移動します。
- [組織の詳細情報] セクションから [お客様 ID] をコピーして保存します。
Bindplane エージェントをインストールする
次の手順に沿って、Windows または Linux オペレーティング システムに Bindplane エージェントをインストールします。
Windows へのインストール
- 管理者としてコマンド プロンプト または PowerShell を開きます。
次のコマンドを実行します。
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 へのインストール
- root 権限または sudo 権限でターミナルを開きます。
次のコマンドを実行します。
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 エージェントを構成する
構成ファイルにアクセスします。
- Linux:
sudo systemctl status observiq-otel-collector - Windows:
C:\Program Files\observIQ OpenTelemetry Collector\config.yaml
- Linux:
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 ターゲットを追加する
- ExtraHop 管理 ページにログインします。
- [システム構成] セクションで、[Open Data Streams] をクリックします。
- [ターゲットを追加] をクリックし、[Syslog] を選択します。
- 次の構成情報を提供してください。
- 名前: わかりやすい名前を入力します(例:
Google SecOps-DNS)。 - ホスト: Bindplane エージェント ホストの IP アドレスを入力します。
- ポート:
514。 - プロトコル: UDP 。
- 名前: わかりやすい名前を入力します(例:
- [テスト] をクリックして接続を確認し、[保存] をクリックします。
DNS トランザクションをエクスポートするトリガーを作成する
- システム設定 アイコンをクリックして、[トリガー] を選択します。
- [作成] をクリックします。
- 次の構成情報を提供してください。
- 名前:
DNS Syslog Export。 - [イベント] : [DNS_REQUEST] と [DNS_RESPONSE] を選択します。
- 名前:
[エディタ] ペインで、次のトリガー スクリプトを入力します。
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));[保存] をクリックします。
デバイスにトリガーを割り当てる
- 作成したトリガーを開きます。
- [割り当て] セクションで、[割り当て] をクリックします。
- 関連するデバイスまたはデバイス グループを選択し、[割り当て] をクリックします。
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 のプロフェッショナルから回答を得ることができます。