Darktrace のログを収集する

パーサーのバージョン: 19.0

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

このドキュメントでは、Bindplane エージェントを使用して Darktrace ログを Google Security Operations に取り込む方法について説明します。

Darktrace は、脅威と異常をリアルタイムで検出する AI を活用したサイバーセキュリティ プラットフォームです。パーサーは、CEF 形式と JSON 形式の両方の Darktrace ログを処理し、フィールドを抽出して Unified Data Model(UDM)にマッピングします。

始める前に

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

  • Google SecOps インスタンス
  • Windows Server 2016 以降、または systemd を使用する Linux ホスト
  • Bindplane エージェントと Darktrace アプライアンス間のネットワーク接続
  • プロキシの背後で実行している場合は、Bindplane エージェントの要件に従ってファイアウォール ポートが開いていることを確認します
  • Darktrace ウェブ UI への特権アクセス

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

  1. Google SecOps コンソールにログインします。
  2. [SIEM 設定] > [収集エージェント] に移動します。
  3. 取り込み認証ファイルをダウンロードします。
  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" /quiet
    
  3. インストールが完了するまで待ちます。

  4. 次のコマンドを実行して、インストールの内容を確認します。

    sc query observiq-otel-collector
    

    サービスは RUNNING と表示されます。

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
    
  3. インストールが完了するまで待ちます。

  4. 次のコマンドを実行して、インストールの内容を確認します。

    sudo systemctl status observiq-otel-collector
    

    サービスが [アクティブ(実行中)] と表示されます。

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

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

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

構成ファイルを探す

  • Linux:

    sudo nano /etc/bindplane-agent/config.yaml
    
  • Windows:

    notepad "C:\Program Files\observIQ OpenTelemetry Collector\config.yaml"
    

構成ファイルを編集します。

  • config.yaml の内容全体を次の構成に置き換えます。

    receivers:
        tcplog:
            listen_address: "0.0.0.0:10282"
    
    exporters:
        chronicle/darktrace:
            compression: gzip
            creds_file_path: '/etc/bindplane-agent/ingestion-auth.json'
            customer_id: '<customer_id>'
            endpoint: malachiteingestion-pa.googleapis.com
            log_type: DARKTRACE
            raw_log_field: body
    
    service:
        pipelines:
            logs/darktrace_to_chronicle:
                receivers:
                    - tcplog
                exporters:
                    - chronicle/darktrace
    

構成パラメータ

各プレースホルダを次のように置き換えます。

  • レシーバーの構成:

    • listen_address: リッスンする IP アドレスとポート:
      • すべてのインターフェースでリッスンする 0.0.0.0(推奨)
      • ポート 10282 はデフォルトの Darktrace CEF syslog ポートです(必要に応じて調整してください)。
  • エクスポータの構成:

    • creds_file_path: 取り込み認証ファイルのフルパス:
      • Linux: /etc/bindplane-agent/ingestion-auth.json
      • Windows: C:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json
    • customer_id: Google SecOps コンソールからコピーしたお客様 ID
    • endpoint: リージョナル エンドポイント URL:
      • 米国: malachiteingestion-pa.googleapis.com
      • ヨーロッパ: europe-malachiteingestion-pa.googleapis.com
      • アジア: asia-southeast1-malachiteingestion-pa.googleapis.com
      • 完全なリストについては、リージョン エンドポイントをご覧ください。

構成ファイルを保存する

  • 編集後、ファイルを保存します。
    • Linux: Ctrl+OEnterCtrl+X の順に押します。
    • Windows: [ファイル> 保存] をクリックします。

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

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

    sudo systemctl restart observiq-otel-collector
    
    1. サービスが実行されていることを確認します。

      sudo systemctl status observiq-otel-collector
      
    2. ログでエラーを確認します。

      sudo journalctl -u observiq-otel-collector -f
      
  • Windows で Bindplane エージェントを再起動するには、次のいずれかのオプションを選択します。

    • 管理者としてコマンド プロンプトまたは PowerShell を開きます。

      net stop observiq-otel-collector && net start observiq-otel-collector
      
    • サービス コンソール:

      1. Win+R キーを押して「services.msc」と入力し、Enter キーを押します。
      2. observIQ OpenTelemetry Collector を見つけます。
      3. 右クリックして [再起動] を選択します。
      4. サービスが実行されていることを確認します。

        sc query observiq-otel-collector
        
      5. ログでエラーを確認します。

        type "C:\Program Files\observIQ OpenTelemetry Collector\log\collector.log"
        

Darktrace で syslog を構成する

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

サポートされている Darktrace のサンプルログ

  • SYSLOG + KV(CEF)

    {
    "acknowledged": false,
    "commentCount": 0,
    "pbid": 900000001,
    "time": 1604055367000,
    "creationTime": 1604055367000,
    "model": {
        "name": "Compromise::Agent Beacon to New Endpoint",
        "uuid": "dfd6f10b-b91c-4244-9fd5-7c35caf21b33",
        "description": "A device is initiating multiple connections to a new external endpoint...",
        "priority": 2,
        "category": "Informational",
        "mitre": {
        "tactics": [
            "command-and-control"
        ],
        "techniques": [
            "T1071.001"
        ]
        }
    },
    "triggeredComponents": [
        {
        "time": 1677679818000,
        "ip": " ",
        "port": 443,
        "metric": {
            "name": "externalconnections"
        },
        "triggeredFilters": [
            {
            "filterType": "Connection hostname",
            "trigger": {
                "value": "beacon.external.io"
            }
            }
        ]
        }
    ],
    "score": 0.85,
    "device": {
        "did": 90001,
        "macaddress": " ",
        "ip": " ",
        "hostname": "user-laptop-1"
    }
    }
    
  • SYSLOG + JSON

    {
    "dpi_engine": "dt-sensor-101",
    "proto": "tcp",
    "source_ip": " ",
    "source_port": 51000,
    "dest_ip": " ",
    "dest_port": 389,
    "src": " ",
    "dst": " ",
    "details": "AP request: srealm is [TESTDOMAIN.LOCAL], service is [LDAP/DC99.testdomain.local/testdomain.local], ST cipher is [aes256-cts-hmac-sha1-96]",
    "epochdate": 1690471502.2252,
    "@host": "log-collector-host",
    "uid": "ABCDEFGHIJ1234567890",
    "note": "KERBEROS::App",
    "@type": "notice"
    }
    

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 その後 Description 値は 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 に設定します。
percentScore event.idm.read_only_udm.additional.fields 変更履歴からマッピング
device.credentials event.idm.read_only_udm.target.user.userid 変更履歴からマッピング
url event.idm.read_only_udm.principal.url 変更履歴からマッピング
username event.idm.read_only_udm.principal.user.userid 変更履歴からマッピング
iris-event-type event.idm.read_only_udm.metadata.product_event_type 変更履歴からマッピング
inhibitor event.idm.read_only_udm.target.ip 変更履歴からマッピング
inhibitor event.idm.read_only_udm.target.asset.ip 変更履歴からマッピング
inhibitor event.idm.read_only_udm.target.port 変更履歴からマッピング
device.os event.idm.read_only_udm.principal.platform 変更履歴からマッピング
device.typename event.idm.read_only_udm.principal.asset.type 変更履歴からマッピング
device.ossource event.idm.read_only_udm.additional.fields 変更履歴からマッピング
model.tags event.idm.read_only_udm.additional.fields 変更履歴からマッピング
codeid event.idm.read_only_udm.security_result.rule_id 変更履歴からマッピング
inhibitor event.idm.read_only_udm.security_result.description 変更履歴からマッピング
host_ip event.idm.read_only_udm.intermediary.ip 変更履歴からマッピング
technique_data event.idm.read_only_udm.security_result.attack_details.techniques 変更履歴からマッピング
tactics_data event.idm.read_only_udm.security_result.attack_details.tactics 変更履歴からマッピング
model.created.userid principal.user.userid 変更履歴からマッピング
model.edited.userid additional.fields 変更履歴からマッピング
direction network.direction 変更履歴からマッピング
filterType" under "triggeredFilters additional.fields 変更履歴からマッピング
trigger.value" under "triggeredFilters additional.fields 変更履歴からマッピング
from principal.user.email_addresses 変更履歴からマッピング
subject metadata.description 変更履歴からマッピング
anomaly_score", "tags", "link_hosts", and "message_id additional.fields 変更履歴からマッピング
recipients observer.user.email_addresses 変更履歴からマッピング
attachment_sha1s" and "attachment_sha256s security_result.detection_fields 変更履歴からマッピング
triggeredFilter.trigger.value target.ip 変更履歴からマッピング
from network.email.from 変更履歴からマッピング
subject network.email.subject 変更履歴からマッピング
attachment_sha1s", "attachment_sha256s", "recipients", "link_hosts", "tags", "actions", "anomaly_score", "message_id security_result.detection_fields 変更履歴からマッピング
model.name principal.user.user_display_name 変更履歴からマッピング
breachUrl security_result.url_back_to_product 変更履歴からマッピング
device.typelabel", "device.sid", "device.typename principal.resource.attribute.labels 変更履歴からマッピング
device.ips.0.subnet additional_fields 変更履歴からマッピング
device.device.lastSeen principal.asset.last_seen_time 変更履歴からマッピング
mitreTechniques security_result.attack_details.techniques 変更履歴からマッピング
details sec_result.about.resource.attribute.labels 変更履歴からマッピング
principal_port_no principal.port 変更履歴からマッピング
location principal.location.country_or_region 変更履歴からマッピング
target_host target.hostname 変更履歴からマッピング
source_ip principal.ip 変更履歴からマッピング
source_port principal.port 変更履歴からマッピング
dest_ip target.ip 変更履歴からマッピング
dest_port target.port 変更履歴からマッピング
@host principal.hostname 変更履歴からマッピング
note principal.application 変更履歴からマッピング
@type sec_result.about.resource.attribute.labels 変更履歴からマッピング
opcode sec_result.about.resource.attribute.labels 変更履歴からマッピング
trans_id sec_result.about.resource.attribute.labels 変更履歴からマッピング
query_class sec_result.about.resource.attribute.labels 変更履歴からマッピング
deviceMacAddress principal.mac 変更履歴からマッピング

変更履歴

このパーサーの変更ログを表示する

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