Delinea Secret Server のログを収集する

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

このドキュメントでは、Delinea(旧 Thycotic)Secret Server のログを収集する方法について説明します。パーサーは、未加工ログを Google Security Operations UDM に準拠した構造化形式に変換します。まず、タイムスタンプ、イベントタイプ、ユーザー情報などの主要なフィールドを抽出します。次に、特定のイベントタイプに基づく条件付きロジックを使用して、データを適切な UDM フィールドにマッピングします。最終的には、Google SecOps で分析できるようにデータを拡充します。

始める前に

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

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 Agent を構成する

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

    • config.yaml ファイルを見つけます。通常、Linux では /etc/bindplane-agent/ ディレクトリ、Windows ではインストール ディレクトリにあります。
    • テキスト エディタ(nanovi、メモ帳など)を使用してファイルを開きます。
  2. config.yaml ファイルを次のように編集します。

    receivers:
      udplog:
        # Replace with your specific IP and port
        listen_address: "0.0.0.0:514"
    
    exporters:
      chronicle/chronicle_w_labels:
        compression: gzip
        # Path to the ingestion authentication file
        creds: '/path/to/your/ingestion-auth.json'
        # Your Chronicle customer ID
        customer_id: 'your_customer_id'
        endpoint: malachiteingestion-pa.googleapis.com
        ingestion_labels:
          log_type: SYSLOG
          namespace: thycotic
          raw_log_field: body
    
    service:
      pipelines:
        logs/source0__chronicle_w_labels-0:
          receivers:
            - udplog
          exporters:
            - chronicle/chronicle_w_labels
    
  3. 自社のインフラストラクチャでの必要性に応じて、ポートと IP アドレスを置き換えます。

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

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

Bindplane Agent を再起動して変更を適用する

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

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

    net stop BindPlaneAgent && net start BindPlaneAgent
    

Syslog を使用してログを送信するように Delinea Secret Server を構成する

  1. 管理者認証情報を使用して Delinea Secret Server にログインします。
  2. [管理] > [構成] に移動します。
  3. [編集] をクリックします。
  4. [Syslog/CEF ロギングを有効にする] チェックボックスをオンにして、次の詳細を指定します。
    • Syslog/CEF サーバー: Bindplane の IP アドレスを入力します。
    • Syslog/CEF プロトコル: Bindplane の構成に応じて、[UDP] または [TCP] を選択します。
    • Syslog/CEF port: Bindplane がリッスンするように構成されているポート番号を入力します。
  5. [保存] をクリックします。

UDM マッピング

ログフィールド UDM マッピング ロジック
Account_Domain event1.idm.read_only_udm.principal.domain この値は、未加工ログの「msg」フィールドの「Account_Domain」フィールドから取得されます。
ユーザー別 event1.idm.read_only_udm.principal.user.userid この値は、未加工ログの「msg」フィールドの「By User」フィールドから取得されます。
コンテナ ID event1.idm.read_only_udm.principal.asset.asset_id この値は、未加工ログの「msg」フィールドの「Container Id」フィールドから取得され、「container_id:」という接頭辞が付いています。
コンテナ名 event1.idm.read_only_udm.principal.resource.name この値は、未加工ログの「msg」フィールドの「Container name」フィールドから取得されます。
cs2 event1.idm.read_only_udm.additional.fields[].value.string_value この値は、未加工ログの「msg」フィールドの「cs2」フィールドから取得されます。
cs3 event1.idm.read_only_udm.target.file.full_path この値は、未加工ログの「msg」フィールドの「cs3」フィールドから取得されます。
cs4 event1.idm.read_only_udm.principal.user.user_display_name この値は、未加工ログの「msg」フィールドの「cs4」フィールドから取得されます。
詳細 event1.idm.read_only_udm.additional.fields[].value.string_value この値は、未加工ログの「msg」フィールドの「Details」フィールドから取得されます。
fname event1.idm.read_only_udm.target.file.full_path この値は、未加工ログの「msg」フィールドの「fname」フィールドから取得されます。
ホスト event1.idm.read_only_udm.principal.hostname、event1.idm.read_only_udm.principal.asset.hostname この値は、未加工ログの「msg」フィールドの「Host」フィールドから取得されます。
項目名 event1.idm.read_only_udm.target.user.userid この値は、未加工ログの「msg」フィールドの「Item Name」フィールドから取得されます。
event1.idm.read_only_udm.additional.fields[].key 値は「fname」にハードコードされています。
event1.idm.read_only_udm.additional.fields[].key この値は「グループまたはユーザー」にハードコードされています。
event1.idm.read_only_udm.additional.fields[].key 値は「Details」にハードコードされています。
event1.idm.read_only_udm.additional.fields[].key 値は「type_id」にハードコードされています。
event1.idm.read_only_udm.extensions.auth.type 値は「MACHINE」にハードコードされています。
event1.idm.read_only_udm.metadata.description 値は「thycotic_event」フィールドから取得されます。このフィールドは、grok パターンを使用して未加工ログから抽出されます。
event1.idm.read_only_udm.metadata.event_timestamp.seconds この値は、存在する場合は「rt」フィールドから、存在しない場合は「ts」フィールドから取得されます。どちらのフィールドも、grok パターンを使用して未加工ログから抽出されます。
event1.idm.read_only_udm.metadata.event_type この値は、「thycotic_event」フィールドとその他の条件に基づいて決定されます。たとえば、「thycotic_event」が「USER - LOGIN」の場合、イベントタイプは「USER_LOGIN」に設定されます。
event1.idm.read_only_udm.metadata.log_type この値は「THYCOTIC」にハードコードされています。
event1.idm.read_only_udm.metadata.product_event_type 値は「thycotic_event」フィールドから取得されます。このフィールドは、grok パターンを使用して未加工ログから抽出されます。
event1.idm.read_only_udm.metadata.product_log_id 値は「action_id」フィールドから取得されます。このフィールドは、Grok パターンを使用して未加工ログから抽出されます。
event1.idm.read_only_udm.metadata.product_name 値は「device_product」フィールドから取得されます。このフィールドは、grok パターンを使用して未加工ログから抽出されます。このフィールドが空の場合、値は「Secret Server」にハードコードされます。
event1.idm.read_only_udm.metadata.product_version 値は「device_version」フィールドから取得されます。このフィールドは、grok パターンを使用して未加工ログから抽出されます。
event1.idm.read_only_udm.metadata.vendor_name この値は「Thycotic」にハードコードされています。
event1.idm.read_only_udm.network.ip_protocol 「input.type」フィールドが「tcp」の場合、値は「TCP」に設定されます。
event1.idm.read_only_udm.observer.application この値は、「agent.type」フィールドから取得されます(存在する場合)。存在しない場合は、「Secret Server」にハードコードされます。
event1.idm.read_only_udm.observer.asset_id 値は、「agent.id」フィールドと連結された「Agent ID:」に設定されます。
event1.idm.read_only_udm.observer.hostname この値は、「agent.hostname」フィールド(存在する場合)から取得されます。存在しない場合は、「server」フィールドから取得されます。
event1.idm.read_only_udm.observer.platform_version この値は「agent.version」フィールドから取得されます。
event1.idm.read_only_udm.observer.user.userid この値は「agent.name」フィールドから取得されます。
event1.idm.read_only_udm.principal.asset.asset_id 値は、「host.id」フィールドと連結された「ID:」に設定されます。
event1.idm.read_only_udm.principal.asset.hardware.cpu_platform この値は「host.architecture」フィールドから取得されます。
event1.idm.read_only_udm.principal.asset.hostname この値は、「server」フィールド(存在する場合)から取得されます。存在しない場合は、「host.hostname」フィールドから取得されます。
event1.idm.read_only_udm.principal.asset.ip 値は、「src」フィールド(存在する場合)から取得されます。存在しない場合は、「src_ip」フィールドから取得されます。
event1.idm.read_only_udm.principal.hostname この値は、「host.hostname」フィールド(存在する場合)から取得されます。存在しない場合は、「server」フィールドから取得されます。
event1.idm.read_only_udm.principal.ip 値は、「src」フィールド(存在する場合)から取得されます。存在しない場合は、「src_ip」フィールドまたは「host.ip」フィールドから取得されます。
event1.idm.read_only_udm.principal.mac この値は「host.mac」フィールドから取得されます。
event1.idm.read_only_udm.principal.platform 「host_os_platform」フィールドが「centos」の場合、値は「LINUX」に設定されます。それ以外の場合は、「host_os_platform」フィールドの大文字の値に設定されます。
event1.idm.read_only_udm.principal.platform_patch_level この値は「host.os.kernel」フィールドから取得されます。
event1.idm.read_only_udm.principal.platform_version この値は「host.os.version」フィールドから取得されます。
event1.idm.read_only_udm.principal.port 値は「src_port」フィールドから取得されます。このフィールドは、Grok パターンを使用して「log.source.address」フィールドから抽出されます。
event1.idm.read_only_udm.principal.user.user_display_name この値は、未加工ログの「msg」フィールドの「cs4」フィールドから取得されます。
event1.idm.read_only_udm.principal.user.userid この値は、未加工ログの「msg」フィールドの「suser」フィールドから取得されます。または、「thycotic_event」が「USER - LOGIN」、「USER - LOGOUT」、「USER - LOGINFAILURE」、「USER - EDIT」の場合、「By User」フィールドから取得されます。
event1.idm.read_only_udm.security_result.action この値は、未加工ログの「msg」フィールドの「Action」フィールドから取得されます。「thycotic_event」の値に基づいて「ALLOW」または「BLOCK」に設定することもできます。
event1.idm.read_only_udm.security_result.description この値は「temp_message」フィールドから取得されます。このフィールドには、他のフィールドを抽出した後の「msg」フィールドの残りの部分が含まれています。
event1.idm.read_only_udm.security_result.severity この値は「syslog_severity」フィールドに基づいて決定されます。たとえば、「syslog_severity」に「error」または「warning」が含まれている場合、重大度は「HIGH」に設定されます。「thycotic_event」が「System Log」の場合、重大度は「INFORMATIONAL」に設定されます。
event1.idm.read_only_udm.security_result.severity_details この値は「syslog_severity」フィールドから取得されます。
event1.idm.read_only_udm.target.file.full_path 値は、「cs3」フィールドと「fname」フィールドを「/」セパレータで連結して作成されます(両方のフィールドが存在する場合)。フィールドが 1 つしかない場合は、そのフィールドから値が取得されます。
event1.idm.read_only_udm.target.resource.product_object_id 値は「type_id」フィールドから取得されます。
event1.idm.read_only_udm.target.user.userid この値は、未加工ログの「msg」フィールドの「item_name」フィールドから取得されます。または、「thycotic_event」が「USER - LOGIN」、「USER - LOGOUT」、「USER - LOGINFAILURE」、「USER - EDIT」の場合、「Item Name」フィールドから取得されます。
events.timestamp.seconds この値は、存在する場合は「rt」フィールドから、存在しない場合は「ts」フィールドから取得されます。どちらのフィールドも、grok パターンを使用して未加工ログから抽出されます。
rt event1.idm.read_only_udm.metadata.event_timestamp.seconds この値は、未加工ログの「msg」フィールドの「rt」フィールドから取得され、イベント タイムスタンプの設定に使用されます。
src event1.idm.read_only_udm.principal.asset.ip、event1.idm.read_only_udm.principal.ip この値は、未加工ログの「msg」フィールドの「src」フィールドから取得されます。
src_ip event1.idm.read_only_udm.principal.asset.ip、event1.idm.read_only_udm.principal.ip 値は「src_ip」フィールドから取得されます。このフィールドは、Grok パターンを使用して「log.source.address」フィールドから抽出されます。

変更点

2024-06-04

  • 未解析ログの解析を改善しました。
  • 「Host」フィールドと「server」フィールドを、ホスト名に関連する UDM フィールドにマッピングしました。
  • 「Container_Id」と「Container_name」を、アセット名とリソース名に関連する UDM フィールドにマッピングしました。

2023-09-22

  • 未解析ログを適切に処理するように解析ロジックを調整しました。
  • 「rt」フィールドと「ts」フィールドのエラー処理を追加しました。

2023-06-12

  • 新しいログ形式をサポートするように解析ロジックを更新しました。
  • 追加情報とセキュリティ結果の概要を取得するための UDM フィールドに「fname」、「cs2」、「details」フィールドをマッピングしました。

2022-08-01

  • JSON 形式のログの解析のサポートを追加しました。
  • デバイスとエージェントの情報、IP アドレス、ホストの詳細、プラットフォーム情報、セキュリティの重大度に関連するフィールドなど、JSON ログの多くのフィールドを対応する UDM フィールドにマッピングしました。
  • タイプが「SECRET - SECRETPASSWORDCHANGEFAILURE」のログの解析を追加しました。

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