Darktrace のログを収集する

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

このドキュメントでは、Bindplane エージェントを使用して Darktrace ログを Google Security Operations に取り込む方法について説明します。このパーサーは、まず syslog メッセージから共通フィールドを抽出し、次に条件付きロジックを使用して CEF 形式と JSON 形式の両方の Darktrace ログを処理します。抽出されたフィールドを統合データモデル(UDM)スキーマにマッピングし、セキュリティ コンテキストでデータを拡充して、ダウンストリーム分析用のイベント分類を標準化します。

始める前に

次の前提条件を満たしていることを確認します。

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

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

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

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

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

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 ファイルを次のように編集します。

    receivers:
        tcplog:
            # Replace the port and IP address as required
            listen_address: `0.0.0.0:10282`
    
    exporters:
        chronicle/chronicle_w_labels:
            compression: gzip
            # Adjust the path to the credentials file you downloaded in Step 1
            creds: '/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
            ingestion_labels:
                log_type: DARKTRACE
                raw_log_field: body
    
    service:
        pipelines:
            logs/source0__chronicle_w_labels-0:
                receivers:
                    - tcplog
                exporters:
                    - chronicle/chronicle_w_labels
    
  3. 自社のインフラストラクチャでの必要性に応じて、ポートと IP アドレスを置き換えます。

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

  5. /path/to/ingestion-authentication-file.json の値を、Google SecOps の取り込み認証ファイルを取得するで認証ファイルを保存したパスに更新します。

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

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

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

    net stop BindPlaneAgent && net start BindPlaneAgent
    

Darktrace で Syslog を構成する

  1. Darktrace ウェブ UI にログインします。
  2. [管理者] > [システム構成] に移動します。
  3. [アラート設定を確認] をクリックします。
  4. 次の構成の詳細を指定します。
    • CEF Syslog アラート: [True] を選択します。
    • CEF Syslog サーバー: Bindplane の IP アドレスを入力します。
    • CEF Syslog サーバー ポート: Bindplane ポート番号(例: 10282)を入力します。
    • CEF Syslog TCP アラート: [True] を選択します。
  5. [保存] をクリックします。

UDM マッピング テーブル

ログフィールド UDM マッピング ロジック
darktraceUrl security_result.url_back_to_product 値は darktraceUrl フィールドから取得されます。
darktrace_host observer.hostname 値が IP アドレスでない場合、値は darktrace_host フィールドから取得されます。
darktrace_ip observer.ip 値は darktrace_ip フィールドから取得されます。
darktrace_user observer.user.userid 値は darktrace_user フィールドから取得されます。
説明 security_result.summary、metadata.description 値は description フィールドから取得されます。
device.customFields.DT-AUTO.macaddress principal.mac 値は device.customFields.DT-AUTO.macaddress フィールドから取得されます。
device.did principal.asset.asset_id 値は device.did フィールドから取得され、文字列に変換されて Device ID: が接頭辞として付加されます。
device.firstSeen principal.asset.first_seen_time 値は device.firstSeen フィールドから取得され、文字列に変換されて、ミリ秒単位の UNIX タイムスタンプとして解析されます。
device.hostname principal.hostname、principal.asset.hostname 値は device.hostname フィールドから取得されます。
device.ip principal.ip、principal.asset.ip 値が IP アドレス形式と一致する場合、値は device.ip フィールドから取得されます。
device.ips.0.subnet additional.fields.subnet 値は device.ips.0.subnet フィールドから取得され、subnet という接頭辞が付加されます。
device.ips.ip principal.ip、principal.asset.ip この値は、リスト内の各 IP アドレスの device.ips.ip フィールドから取得されます。
device.lastSeen principal.asset.last_discover_time 値は device.lastSeen フィールドから取得され、文字列に変換されて、ミリ秒単位の UNIX タイムスタンプとして解析されます。
device.macaddress principal.mac 値は device.macaddress フィールドから取得されます。
device.objecttype principal.asset.type 値が device の場合、UDM フィールドは WORKSTATION に設定されます。
device.sid principal.resource.attribute.labels.sid 値は device.sid フィールドから取得され、文字列に変換されます。
device.typelabel principal.resource.attribute.labels.typelabel 値は device.typelabel フィールドから取得されます。
device.typename principal.resource.attribute.labels.typename 値は device.typename フィールドから取得されます。
dst target.ip、target.asset.ip 値は dst フィールドから取得されます。
dpt target.port 値は dpt フィールドから取得され、整数に変換されます。
dvc principal.ip、principal.asset.ip dvc の値が IP アドレスの場合、UDM フィールドに追加されます。
dvchost principal.hostname、principal.asset.hostname 値は dvchost フィールドから取得されます。
endpoint target.url 値は endpoint フィールドから取得されます。
event_time metadata.event_timestamp 値は event_time フィールドから取得され、ISO8601 タイムスタンプとして解析されます。
externalId metadata.product_log_id 値は externalId フィールドから取得されます。
incidentEventUrl principal.url 値は incidentEventUrl フィールドから取得されます。
ip principal.ip、principal.asset.ip 値が IP アドレス形式と一致する場合、値は ip フィールドから取得されます。
issue_msg security_result.summary 値は issue_msg フィールドから取得されます。
メッセージ security_result.description 値は message フィールドから取得されます。
method network.http.method 値は method フィールドから取得されます。
model.description metadata.description 値は model.description フィールドから取得されます。
model.name metadata.product_event_type 値は model.name フィールドから取得されます。
model.now.category security_result.severity 値が critical の場合、UDM フィールドは CRITICAL に設定されます。値が Informational の場合、UDM フィールドは INFORMATIONAL に設定されます。値が Suspicious の場合、UDM フィールドは HIGH に設定され、カテゴリは NETWORK_SUSPICIOUS に設定されます。
model.now.description metadata.description 値は model.now.description フィールドから取得されます。
model.now.message security_result.description 値は model.now.message フィールドから取得されます。
model.now.name metadata.product_event_type 値は model.now.name フィールドから取得されます。
model.now.pid principal.process.pid 値は model.now.pid フィールドから取得され、文字列に変換されます。
model.now.uuid principal.user.userid 値は model.now.uuid フィールドから取得され、イベントタイプは USER_UNCATEGORIZED に設定されます。
model.pid principal.process.pid 値は model.pid フィールドから取得され、文字列に変換されます。
model.then.description principal.resource.attribute.labels.Model の説明 値は model.then.description フィールドから取得されます。
model.then.name principal.resource.attribute.labels.Model Then Name 値は model.then.name フィールドから取得されます。
model.then.pid principal.resource.attributes.labels.Model Then Pid 値は model.then.pid フィールドから取得され、文字列に変換されます。
model.then.uuid principal.resource.attribute.labels.Model Then UUID 値は model.then.uuid フィールドから取得されます。
model.uuid principal.user.userid 値は model.uuid フィールドから取得され、イベントタイプは USER_UNCATEGORIZED に設定されます。
relatedBreaches.0.modelName security_result.description 値は relatedBreaches.0.modelName フィールドから取得されます。
スコア security_result.priority、security_result.priority_details 値が 0.8 ~ 1 の場合、優先度は HIGH_PRIORITY に設定されます。値が 0.5 ~ 0.79 の場合、優先度は MEDIUM_PRIORITY に設定されます。値が 0 ~ 0.49 の場合、優先度は LOW_PRIORITY に設定されます。優先度の詳細は、Score : の後に score の値を文字列に変換したものが設定されます。
重要度 security_result.severity 値が 2 の場合、UDM フィールドは MEDIUM に設定されます。値が 2 より大きい場合、UDM フィールドは HIGH に設定されます。
shost principal.hostname、principal.asset.hostname 値は shost フィールドから取得されます。
smac principal.mac 値は smac フィールドから取得されます。
src principal.ip、principal.asset.ip 値は src フィールドから取得されます。
ステータス network.http.response_code 値は status フィールドから取得され、文字列に変換されます。
概要 metadata.description 値は summary フィールドから取得されます。
時間 値は time フィールドから取得され、文字列に変換されて、ミリ秒単位の UNIX タイムスタンプとして解析されます。
timestamp 値は timestamp フィールドから取得され、ISO8601 タイムスタンプまたはミリ秒単位の UNIX タイムスタンプとして解析されます。
title security_result.summary 値は title フィールドから取得されます。
triggeredComponents.ip intermediary.ip 値が IP アドレス形式と一致する場合、値は triggeredComponents.ip フィールドから取得されます。
triggeredComponents.port intermediary.port 値は triggeredComponents.port フィールドから取得され、整数に変換されます。
ユーザー名 principal.user.userid 値は username フィールドから取得されます。
metadata.vendor_name DARKTRACE に設定します。
metadata.product_name DCIP に設定します。
metadata.log_type DARKTRACE に設定します。
network.ip_protocol issue_msgUDP が含まれていない場合、TCP に設定します。それ以外の場合は UDP に設定します。
security_result.action status401 の場合は BLOCK に設定し、それ以外の場合は ALLOW に設定します。
security_result.severity INFORMATIONAL に設定します。
network.application_protocol method が空でない場合は、HTTP に設定します。
metadata.event_type method が空でない場合は、NETWORK_HTTP に設定します。descriptionlogged into \\\\S+ over ssh が含まれている場合、USER_LOGIN に設定します。target_ip が空でない場合は、NETWORK_CONNECTION に設定します。それ以外の場合は STATUS_UPDATE に設定します。
extensions.auth.type descriptionlogged into \\\\S+ over ssh が含まれている場合、MACHINE に設定します。
security_result.category issue_msgExfiltration が含まれている場合、DATA_EXFILTRATION に設定します。issue_msgCompromise が含まれている場合、NETWORK_MALICIOUS に設定します。それ以外の場合は NETWORK_SUSPICIOUS に設定します。

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