Tanium Threat Response のログを収集する

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

このドキュメントでは、Tanium Connect のネイティブ AWS S3 エクスポート機能を使用して、Tanium Threat Response ログを Google Security Operations に取り込む方法について説明します。Tanium Threat Response は、脅威検出アラート、調査結果、インシデント対応データを JSON 形式で生成します。これらのデータは、カスタム Lambda 関数を必要とせずに、Tanium Connect を使用して S3 に直接エクスポートできます。パーサーは、Tanium Threat Response からの未加工の JSON データを統合データモデル(UDM)に変換します。まず、受信メッセージを JSON として解析し、潜在的なエラーを処理します。次に、影響を受けたホスト、ユーザー、プロセス、ネットワーク アクティビティ、セキュリティ検出結果の詳細など、関連するフィールドを抽出して UDM 構造にマッピングします。

始める前に

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

  • Google SecOps インスタンス
  • Tanium Core Platform 7.0 以降
  • Tanium Threat Response モジュールがインストールされ、構成されている
  • 有効なライセンスでインストールされた Tanium Connect モジュール
  • 調査機能用の Tanium Direct Connect 1.9.30 以降
  • 管理者権限を持つ Tanium Console への特権アクセス
  • AWS(S3、IAM)への特権アクセス

Tanium Threat Response サービス アカウントを構成する

  1. Tanium Console にログインします。
  2. [Modules] > [Threat Response] に移動します。
  3. 右上の [設定] をクリックします。
  4. [サービス アカウント] セクションで、次の構成を行います。
    • サービス アカウント ユーザー: 適切な Threat Response 権限を持つユーザーを選択します。
    • アカウントに Connect User ロールの権限があることを確認します。
    • Threat Response のアラートと調査データへのアクセスを確認します。
  5. [保存] をクリックして、サービス アカウントの構成を適用します。

Tanium Threat Response の前提条件を収集する

  1. 管理者として Tanium Console にログインします。
  2. [管理> 権限 > ユーザー] に移動します。
  3. 次のロールを持つサービス アカウント ユーザーを作成または特定します。
    • 脅威対応管理者または脅威対応読み取り専用ユーザーのロール。
    • Connect User ロールの権限。
    • 監視対象のパソコン グループへのアクセス(推奨: [すべてのパソコン] グループ)。
    • Threat Response コンテンツ セットの Read Saved Question 権限。

Google SecOps 用に AWS S3 バケットと IAM を構成する

  1. バケットの作成のユーザーガイドに沿って、Amazon S3 バケットを作成します。
  2. 後で参照できるように、バケットの名前リージョンを保存します(例: tanium-threat-response-logs)。
  3. IAM ユーザーの作成のユーザーガイドに沿って、ユーザーを作成します。
  4. 作成したユーザーを選択します。
  5. [セキュリティ認証情報] タブを選択します。
  6. [アクセスキー] セクションで [アクセスキーを作成] をクリックします。
  7. [ユースケース] で [サードパーティ サービス] を選択します。
  8. [次へ] をクリックします。
  9. 省略可: 説明タグを追加します。
  10. [アクセスキーを作成] をクリックします。
  11. [CSV ファイルをダウンロード] をクリックして、[アクセスキー] と [シークレット アクセスキー] を保存し、後で使用できるようにします。
  12. [完了] をクリックします。
  13. [権限] タブを選択します。
  14. [権限ポリシー] セクションで、[権限を追加] をクリックします。
  15. [権限を追加] を選択します。
  16. [ポリシーを直接アタッチする] を選択します。
  17. AmazonS3FullAccess ポリシーを検索して選択します。
  18. [次へ] をクリックします。
  19. [権限を追加] をクリックします。

Tanium Connect の AWS S3 の宛先を構成する

  1. Tanium Console にログインします。
  2. [モジュール] > [接続] に移動します。
  3. [接続を作成] をクリックします。
  4. 次の構成の詳細を入力します。
    • 名前: わかりやすい名前を入力します(例: Threat Response Alerts to S3 for SecOps)。
    • 説明: 省略可能な説明(例: Export threat detection alerts and investigation findings to AWS S3 for Google SecOps ingestion)。
    • 有効: スケジュールどおりに接続を実行するには、このオプションを選択します。
  5. [次へ] をクリックします。

接続元を構成する

  1. [ソース] セクションで、次の構成の詳細を指定します。
    • Source Type: [Saved Question] を選択します。
    • 保存された質問: 次の Threat Response 関連の保存された質問のいずれかを選択します。
      • 脅威検出アラートの脅威対応 - アラート
      • 調査結果の [Threat Response - Investigation Results]。
      • 脅威インテリジェンスの一致については、[Threat Response - Intel Matches] をご覧ください。
      • エンドポイントにおける疑わしい活動の Threat Response - Endpoint Activity
      • ネットワーク ベースの脅威に対する Threat Response - Network Connections
    • コンピュータ グループ: 監視する [すべてのコンピュータ] または特定のコンピュータ グループを選択します。
    • 更新間隔: データ収集に適した間隔を設定します(たとえば、脅威アラートの場合は 10 分)。
  2. [次へ] をクリックします。

AWS S3 の宛先を構成する

  1. [送信先] セクションで、次の構成の詳細を指定します。
    • 宛先の種類: [AWS S3] を選択します。
    • 宛先名: 一意の名前(Google SecOps ThreatResponse S3 Destination など)を入力します。
    • AWS アクセスキー: AWS S3 の構成手順でダウンロードした CSV ファイルから AWS アクセスキーを入力します。
    • AWS Secret Access Key: AWS S3 の構成手順でダウンロードした CSV ファイルから AWS シークレット アクセスキーを入力します。
    • バケット名: S3 バケット名(tanium-threat-response-logs など)を入力します。
    • リージョン: S3 バケットが配置されている AWS リージョンを選択します。
    • キー接頭辞: S3 オブジェクトの接頭辞(tanium/threat-response/ など)を入力します。
  2. [次へ] をクリックします。

フィルタを構成する

  1. [フィルタ] セクションで、データ フィルタリング オプションを構成します。
    • 新しいアイテムのみを送信する: 前回のエクスポート以降の新しい脅威アラートのみを送信する場合は、このオプションを選択します。
    • 列フィルタ: 必要に応じて、特定のアラート属性に基づいてフィルタを追加します(アラートの重大度、脅威の種類、調査ステータスでフィルタするなど)。
  2. [次へ] をクリックします。

AWS S3 用にデータをフォーマットする

  1. [形式] セクションで、データ形式を構成します。
    • 形式: [JSON] を選択します。
    • オプション:
      • ヘッダーを含める: JSON 出力にヘッダーを含めない場合は、選択を解除します。
      • 空白のセルを含める: 必要に応じて選択します。
    • 詳細オプション:
      • ファイル命名: デフォルトのタイムスタンプ ベースの命名を使用します。
      • 圧縮: ストレージ コストと転送時間を削減するには、[Gzip] を選択します。
  2. [次へ] をクリックします。

接続をスケジュールする

  1. [スケジュール] セクションで、エクスポート スケジュールを構成します。
    • スケジュールを有効にする: 自動スケジュール設定エクスポートを有効にする場合に選択します。
    • スケジュール タイプ: [繰り返し] を選択します。
    • 頻度: 脅威への対応アラートをタイムリーに受け取るには、[10 分ごと] を選択します。
    • 開始時間: 最初のエクスポートの適切な開始時間を設定します。
  2. [次へ] をクリックします。

接続を保存して検証する

  1. 概要画面で接続構成を確認します。
  2. [Save] をクリックして接続を作成します。
  3. [接続をテスト] をクリックして、構成を確認します。
  4. テストが成功したら、[今すぐ実行] をクリックして初回のエクスポートを実行します。
  5. [Connect の概要] ページで接続ステータスをモニタリングします。

Tanium Threat Response のログを取り込むように Google SecOps でフィードを構成する

  1. [SIEM 設定] > [フィード] に移動します。
  2. [+ 新しいフィードを追加] をクリックします。
  3. [フィード名] フィールドに、フィードの名前を入力します(例: Tanium Threat Response logs)。
  4. [ソースタイプ] として [Amazon S3 V2] を選択します。
  5. [ログタイプ] として [Tanium Threat Response] を選択します。
  6. [次へ] をクリックします。
  7. 次の入力パラメータの値を指定します。
    • S3 URI: s3://tanium-threat-response-logs/tanium/threat-response/
    • Source deletion options: 必要に応じて削除オプションを選択します。
    • ファイルの最大経過日数: 指定した日数以内に変更されたファイルを含めます。デフォルトは 180 日です。
    • アクセスキー ID: S3 バケットにアクセスできるユーザー アクセスキー。
    • シークレット アクセスキー: S3 バケットにアクセスできるユーザーのシークレット キー。
    • アセットの名前空間: アセットの名前空間
    • Ingestion labels: このフィードのイベントに適用されるラベル。
  8. [次へ] をクリックします。
  9. [Finalize] 画面で新しいフィードの設定を確認し、[送信] をクリックします。

UDM マッピング テーブル

ログフィールド UDM マッピング ロジック
アラート ID security_result.rule_instance このフィールドの値は、未加工ログの「アラート ID」フィールドから取得されます。
コンピュータの IP principal.ip このフィールドの値は、未加工ログの「Computer IP」フィールドから取得されます。
コンピュータの IP target.ip このフィールドの値は、未加工ログの「Computer IP」フィールドから取得されます。
コンピュータ名 principal.hostname このフィールドの値は、未加工ログの「Computer Name」フィールドから取得されます。
コンピュータ名 target.hostname このフィールドの値は、未加工ログの「Computer Name」フィールドから取得されます。
id target.resource.attribute.labels このフィールドの値は、未加工ログの「id」フィールドから取得されます。キーは「id」にハードコードされています。
Intel Id security_result.rule_id このフィールドの値は、未加工ログの「Intel Id」フィールドから取得されます。
Intel ラベル security_result.description このフィールドの値は、未加工ログの「Intel Labels」フィールドから取得されます。
Intel Name security_result.summary このフィールドの値は、未加工ログの「Intel Name」フィールドから取得されます。
Intel 名 security_result.threat_name このフィールドの値は、未加工ログの「Intel Name」フィールドから取得されます。
インテリジェンス タイプ security_result.rule_type このフィールドの値は、未加工ログの「Intel Type」フィールドから取得されます。
MatchDetails.finding.system_info.bits principal.asset.platform_software.bits このフィールドの値は、未加工ログの「MatchDetails.finding.system_info.bits」フィールドから取得されます。
MatchDetails.finding.system_info.os principal.asset.platform_software.platform_version このフィールドの値は、未加工ログの「MatchDetails.finding.system_info.os」フィールドから取得されます。
MatchDetails.finding.system_info.patch_level principal.asset.platform_software.platform_patch_level このフィールドの値は、未加工ログの「MatchDetails.finding.system_info.patch_level」フィールドから取得されます。
MatchDetails.finding.system_info.platform principal.asset.platform_software.platform このフィールドの値は、未加工ログの「MatchDetails.finding.system_info.platform」フィールドから取得されます。
MatchDetails.match.contexts.0.event.registrySet.keyPath target.registry.registry_key このフィールドの値は、未加工ログの「MatchDetails.match.contexts.0.event.registrySet.keyPath」フィールドから取得されます。
MatchDetails.match.contexts.0.event.registrySet.valueName target.registry.registry_value_name このフィールドの値は、未加工ログの「MatchDetails.match.contexts.0.event.registrySet.valueName」フィールドから取得されます。
MatchDetails.match.properties.args security_result.about.process.command_line このフィールドの値は、未加工ログの「MatchDetails.match.properties.args」フィールドから取得されます。
MatchDetails.match.properties.file.fullpath target.process.file.full_path このフィールドの値は、未加工ログの「MatchDetails.match.properties.file.fullpath」フィールドから取得されます。
MatchDetails.match.properties.file.md5 target.process.file.md5 このフィールドの値は、未加工ログの「MatchDetails.match.properties.file.md5」フィールドから取得されます。
MatchDetails.match.properties.file.sha1 target.process.file.sha1 このフィールドの値は、未加工ログの「MatchDetails.match.properties.file.sha1」フィールドから取得されます。
MatchDetails.match.properties.file.sha256 target.process.file.sha256 このフィールドの値は、未加工ログの「MatchDetails.match.properties.file.sha256」フィールドから取得されます。
MatchDetails.match.properties.fullpath target.process.file.full_path このフィールドの値は、未加工ログの「MatchDetails.match.properties.fullpath」フィールドから取得されます。
MatchDetails.match.properties.local_port principal.port このフィールドの値は、未加工ログの「MatchDetails.match.properties.local_port」フィールドから取得されます。
MatchDetails.match.properties.md5 target.process.file.md5 このフィールドの値は、未加工ログの「MatchDetails.match.properties.md5」フィールドから取得されます。
MatchDetails.match.properties.parent.args security_result.about.process.command_line このフィールドの値は、未加工ログの「MatchDetails.match.properties.parent.args」フィールドから取得されます。
MatchDetails.match.properties.parent.file.fullpath target.process.parent_process.file.full_path このフィールドの値は、未加工ログの「MatchDetails.match.properties.parent.file.fullpath」フィールドから取得されます。
MatchDetails.match.properties.parent.file.md5 target.process.parent_process.file.md5 このフィールドの値は、未加工ログの「MatchDetails.match.properties.parent.file.md5」フィールドから取得されます。
MatchDetails.match.properties.parent.parent.file.fullpath target.process.parent_process.parent_process.file.full_path このフィールドの値は、未加工ログの「MatchDetails.match.properties.parent.parent.file.fullpath」フィールドから取得されます。
MatchDetails.match.properties.parent.parent.file.md5 target.process.parent_process.parent_process.file.md5 このフィールドの値は、未加工ログの「MatchDetails.match.properties.parent.parent.file.md5」フィールドから取得されます。
MatchDetails.match.properties.parent.parent.parent.file.fullpath target.process.parent_process.parent_process.parent_process.file.full_path このフィールドの値は、未加工ログの「MatchDetails.match.properties.parent.parent.parent.file.fullpath」フィールドから取得されます。
MatchDetails.match.properties.parent.parent.parent.file.md5 target.process.parent_process.parent_process.parent_process.file.md5 このフィールドの値は、未加工ログの「MatchDetails.match.properties.parent.parent.parent.file.md5」フィールドから取得されます。
MatchDetails.match.properties.parent.parent.parent.parent.file.fullpath target.process.parent_process.parent_process.parent_process.parent_process.file.full_path このフィールドの値は、未加工ログの「MatchDetails.match.properties.parent.parent.parent.parent.file.fullpath」フィールドから取得されます。
MatchDetails.match.properties.parent.parent.parent.parent.file.md5 target.process.parent_process.parent_process.parent_process.parent_process.file.md5 このフィールドの値は、未加工ログの「MatchDetails.match.properties.parent.parent.parent.parent.file.md5」フィールドから取得されます。
MatchDetails.match.properties.parent.parent.parent.parent.parent.file.fullpath target.process.parent_process.parent_process.parent_process.parent_process.parent_process.file.full_path このフィールドの値は、未加工ログの「MatchDetails.match.properties.parent.parent.parent.parent.parent.file.fullpath」フィールドから取得されます。
MatchDetails.match.properties.parent.parent.parent.parent.parent.file.md5 target.process.parent_process.parent_process.parent_process.parent_process.parent_process.file.md5 このフィールドの値は、未加工ログの「MatchDetails.match.properties.parent.parent.parent.parent.parent.file.md5」フィールドから取得されます。
MatchDetails.match.properties.parent.pid target.process.parent_process.pid このフィールドの値は、未加工ログの「MatchDetails.match.properties.parent.pid」フィールドから取得されます。
MatchDetails.match.properties.parent.parent.pid target.process.parent_process.parent_process.pid このフィールドの値は、未加工ログの「MatchDetails.match.properties.parent.parent.pid」フィールドから取得されます。
MatchDetails.match.properties.parent.parent.parent.pid target.process.parent_process.parent_process.parent_process.pid このフィールドの値は、未加工ログの「MatchDetails.match.properties.parent.parent.parent.pid」フィールドから取得されます。
MatchDetails.match.properties.parent.parent.parent.parent.pid target.process.parent_process.parent_process.parent_process.parent_process.pid このフィールドの値は、未加工ログの「MatchDetails.match.properties.parent.parent.parent.parent.pid」フィールドから取得されます。
MatchDetails.match.properties.parent.parent.parent.parent.parent.pid target.process.parent_process.parent_process.parent_process.parent_process.parent_process.pid このフィールドの値は、未加工ログの「MatchDetails.match.properties.parent.parent.parent.parent.parent.pid」フィールドから取得されます。
MatchDetails.match.properties.pid target.process.pid このフィールドの値は、未加工ログの「MatchDetails.match.properties.pid」フィールドから取得されます。
MatchDetails.match.properties.protocol network.ip_protocol このフィールドの値は、未加工ログの「MatchDetails.match.properties.protocol」フィールドから取得されます。
MatchDetails.match.properties.remote_ip target.ip このフィールドの値は、未加工ログの「MatchDetails.match.properties.remote_ip」フィールドから取得されます。
MatchDetails.match.properties.remote_port target.port このフィールドの値は、未加工ログの「MatchDetails.match.properties.remote_port」フィールドから取得されます。
MatchDetails.match.properties.sha1 target.process.file.sha1 このフィールドの値は、未加工ログの「MatchDetails.match.properties.sha1」フィールドから取得されます。
MatchDetails.match.properties.sha256 target.process.file.sha256 このフィールドの値は、未加工ログの「MatchDetails.match.properties.sha256」フィールドから取得されます。
MatchDetails.match.properties.user target.administrative_domain ドメイン名は、バックスラッシュ文字(「」)を探すことで、未加工ログの「MatchDetails.match.properties.user」フィールドから抽出されます。バックスラッシュの前の文字がドメイン名と見なされます。
MatchDetails.match.properties.user target.user.userid ユーザー名は、未加工ログの「MatchDetails.match.properties.user」フィールドからバックスラッシュ文字(「\」)を探して抽出されます。バックスラッシュの後の文字がユーザー名と見なされます。
MITRE 手法 security_result.threat_id このフィールドの値は、未加工ログの「MITRE Techniques」フィールドから取得されます。
params security_result.detection_fields このフィールドの値は、未加工ログの「params」フィールドから取得されます。キーは「params_」とパラメータのインデックスを連結した文字列にハードコードされています。
タイムスタンプ metadata.event_timestamp このフィールドの値は、未加工ログの「Timestamp」フィールドから取得されます。
なし is_alert 未加工ログの「Computer IP」フィールドが空でない場合、このフィールドは「true」にハードコードされます。
なし metadata.log_type このフィールドは「TANIUM_THREAT_RESPONSE」にハードコードされています。
なし metadata.product_event_type このフィールドは「Tanium Signal」にハードコードされています。
なし metadata.product_name このフィールドは「Threat Response」にハードコードされています。
なし metadata.vendor_name このフィールドは「Tanium」にハードコードされています。
なし network.http.method 未加工ログの「method」フィールドの値が「submit」の場合、このフィールドは「POST」にハードコードされます。

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