Tanium 監査ログを収集する

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

このドキュメントでは、Tanium Connect のネイティブ S3 エクスポート機能を使用して、Amazon S3 を介して Tanium 監査ログを Google Security Operations に取り込む方法について説明します。パーサーはログを抽出し、最初に多数のデフォルト フィールドをクリアします。次に、grok と json フィルタを使用してログメッセージを解析し、タイムスタンプ、デバイス IP、監査の詳細などのフィールドを抽出します。パーサーは、抽出されたこれらのフィールドを UDM にマッピングし、さまざまなデータ型と条件ロジックを処理して、特定の Tanium 監査ログ属性の有無と値に基づいて適切な UDM フィールドに入力します。

始める前に

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

  • Google SecOps インスタンス
  • Tanium ConnectTanium Console への特権アクセス
  • AWS(S3、IAM)への特権アクセス

Amazon S3 バケットを作成する

  1. Amazon S3 コンソールを開きます。
  2. 必要に応じて、[リージョン] を変更できます。
    • ナビゲーション バーから、Tanium 監査ログを配置するリージョンを選択します。
  3. [バケットを作成] をクリックします。
    • バケット名: バケットのわかりやすい名前を入力します(例: tanium-audit-logs)。
    • リージョン: 優先するリージョン(us-east-1 など)を選択します。
    • [作成] をクリックします。

Amazon S3 へのフルアクセス権限を持つ IAM ユーザーを作成する

  1. IAM コンソールを開きます
  2. [ユーザー] > [ユーザーを追加] をクリックします。
  3. ユーザー名を入力します(例: tanium-connect-s3-user)。
  4. 必要に応じて、[プログラムによるアクセス] と [AWS マネジメント コンソールへのアクセス] の両方またはどちらか一方を選択します。
  5. [自動生成されたパスワード] または [カスタム パスワード] を選択します。
  6. [Next: Permissions] をクリックします。
  7. [既存のポリシーを直接アタッチする] を選択します。
  8. ユーザーに AmazonS3FullAccess ポリシーを検索して選択します。
  9. [Next: Tags] をクリックします。
  10. [次へ: 確認] をクリックします。
  11. [ユーザーを作成] をクリックします。
  12. [アクセスキー ID] と [シークレット アクセスキー] をコピーして保存し、今後の参照に備えます。

Amazon S3 バケットの権限を構成する

  1. Amazon S3 コンソールで、以前に作成したバケットを選択します。
  2. [権限> バケット ポリシー] をクリックします。
  3. バケット ポリシー エディタで、次のポリシーを追加します。

    {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Effect": "Allow",
          "Principal": {
            "AWS": "arn:aws:iam::YOUR_ACCOUNT_ID:user/tanium-connect-s3-user"
          },
          "Action": [
            "s3:PutObject",
            "s3:PutObjectAcl",
            "s3:GetObject",
            "s3:ListBucket"
          ],
          "Resource": [
            "arn:aws:s3:::tanium-audit-logs",
            "arn:aws:s3:::tanium-audit-logs/*"
          ]
        }
      ]
    }
    
  4. 次の変数を置き換えます。

    • YOUR_ACCOUNT_ID を AWS アカウント ID に変更します。
    • 異なる場合は、tanium-audit-logs を実際のバケット名に変更します。
    • tanium-connect-s3-user は、実際の IAM ユーザー名が異なる場合は、そのユーザー名に変更します。
  5. [保存] をクリックします。

S3 エクスポート用に Tanium Connect を構成する

Tanium Connect で AWS S3 接続を作成する

  1. 管理者として Tanium Console にログインします。
  2. [Tanium Connect] > [Connections] に移動します。
  3. [接続を作成] をクリックします。
  4. [General Information] セクションで、次の構成の詳細を指定します。
    • 名前: わかりやすい名前を入力します(例: Tanium Audit to S3)。
    • 説明: わかりやすい説明を入力します(例: Export Tanium audit logs to S3 for Google SecOps ingestion)。
    • 有効: 接続を有効にする場合に選択します。
    • ログレベル: [情報](デフォルト)を選択するか、必要に応じて調整します。

接続元を構成する

  1. [構成] セクションの [ソース] で、[Tanium Audit] を選択します。
  2. 監査ソースの設定を構成します。
    • 取得する履歴の日数: 取得する過去の監査データの日数を入力します(1 週間を表す 7 など)。
    • 監査タイプ: エクスポートする監査タイプを選択します。次のいずれかを選択します。
      • Action History: コンソール オペレーターによって発行されたアクション。
      • 認証: ユーザー認証イベント。
      • コンテンツ: コンテンツの変更と修正。
      • グループ: パソコン グループの変更。
      • パッケージ: パッケージ関連のアクティビティ。
      • センサー: センサーの変更。
      • システム設定: システム構成の変更。
      • ユーザー: ユーザー管理アクティビティ。

AWS S3 の宛先を構成する

  1. [宛先] で、[AWS S3] を選択します。
  2. 次の構成の詳細を入力します。
    • 宛先名: 名前を入力します(例: Google SecOps S3 Bucket)。
    • AWS アクセスキー: 事前に作成した IAM ユーザーのアクセスキー ID を入力します。
    • AWS シークレット キー: 事前に作成した IAM ユーザーのシークレット アクセスキーを入力します。
    • バケット名: S3 バケット名(tanium-audit-logs など)を入力します。
    • バケットパス: 省略可。パスの接頭辞(tanium/audit/ など)を入力します。
    • リージョン: バケットが存在する AWS リージョン(us-east-1 など)を選択します。

形式とスケジュールを構成する

  1. [形式] セクションで、出力形式を構成します。
    • 形式タイプ: [JSON] を選択します。
    • 列ヘッダーを含める: 列ヘッダーを含めるかどうかを選択します。
    • ドキュメントを生成: このオプションの選択を解除すると、未加工の JSON データが送信されます。
  2. [スケジュール] セクションで、接続の実行タイミングを構成します。
    • スケジュール タイプ: [Cron] を選択します。
    • Cron 式: 定期的なエクスポートの cron 式を入力します(たとえば、1 時間ごとのエクスポートの場合は 0 */1 * * *)。
    • 開始日: スケジュールの開始日を設定します。
  3. [変更を保存] をクリックします。

接続をテストして実行する

  1. [Connect の概要] ページで、[接続] に移動します。
  2. 作成した接続(Tanium Audit to S3)をクリックします。
  3. [Run Now] をクリックして接続をテストします。
  4. 接続を実行することを確認します。
  5. 接続ステータスをモニタリングし、監査ログが S3 バケットにエクスポートされていることを確認します。

省略可: Google SecOps 用の読み取り専用の IAM ユーザーと鍵を作成する

  1. AWS コンソール > IAM > ユーザー > ユーザーを追加 に移動します。
  2. [ユーザーを追加] をクリックします。
  3. 次の構成の詳細を入力します。
    • ユーザー: 「secops-reader」と入力します。
    • アクセスの種類: [アクセスキー - プログラムによるアクセス] を選択します。
  4. [ユーザーを作成] をクリックします。
  5. 最小限の読み取りポリシー(カスタム)を関連付ける: [ユーザー] > [secops-reader] > [権限] > [権限を追加] > [ポリシーを直接関連付ける] > [ポリシーを作成]
  6. JSON エディタで、次のポリシーを入力します。

    {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Effect": "Allow",
          "Action": ["s3:GetObject"],
          "Resource": "arn:aws:s3:::tanium-audit-logs/*"
        },
        {
          "Effect": "Allow",
          "Action": ["s3:ListBucket"],
          "Resource": "arn:aws:s3:::tanium-audit-logs"
        }
      ]
    }
    
  7. 名前を secops-reader-policy に設定します。

  8. [ポリシーの作成> 検索/選択> 次へ> 権限を追加] に移動します。

  9. [セキュリティ認証情報] > [アクセスキー] > [アクセスキーを作成] に移動します。

  10. CSV をダウンロードします(これらの値はフィードに入力されます)。

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

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

UDM マッピング テーブル

ログフィールド UDM マッピング 論理
ActionId metadata.product_log_id ActionId フィールドから直接マッピングされます。
ActionName security_result.action_details ActionName フィールドから直接マッピングされます。
Approver additional.fields[Approver].value.string_value Approver フィールドから直接マッピングされます。
Approver principal.user.userid Issuer が存在しない場合、Approver フィールドからマッピングされます。
audit_name metadata.description audit_name フィールドから直接マッピングされます。
audit_row_id additional.fields[audit_row_id].value.string_value audit_row_id フィールドから直接マッピングされます。
audit_type additional.fields[audit_type].value.string_value audit_type フィールドから直接マッピングされます。
authentication_type principal.user.attribute.labels[authentication_type].value details フィールドから抽出された authentication_type フィールドから直接マッピングされます。
Command principal.process.command_line URL デコード後に Command フィールドから直接マッピングされます。
creation_time target.resource.attribute.creation_time creation_time フィールドから直接マッピングされます。
details network.session_id Key-Value 解析を使用して details フィールドから抽出されます。
details principal.user.attribute.labels[authentication_type].value Key-Value 解析を使用して details フィールドから抽出されます。
details principal.asset.ipprincipal.ip IP アドレスは、Key-Value 解析を使用して details フィールドから抽出され、principal.asset.ipprincipal.ip の両方にマッピングされます。
DistributeOver additional.fields[DistributeOver].value.string_value DistributeOver フィールドから直接マッピングされます。
dvc_ip intermediary.hostname syslog メッセージから抽出された dvc_ip フィールドから直接マッピングされます。
dvc_ip observer.ip logstash.collect.host が存在しない場合、dvc_ip フィールドから直接マッピングされます。
Expiration additional.fields[Expiration].value.string_value Expiration フィールドから直接マッピングされます。
host.architecture target.asset.hardware.cpu_platform host.architecture フィールドから直接マッピングされます。
host.id target.asset.asset_id host.id フィールドから直接マッピングされ、「Host ID:」という接頭辞が付いています。
host.ip target.ip host.ip フィールドから直接マッピングされます。
host.mac target.mac host.mac フィールドから直接マッピングされます。
host.name target.hostname host.hostname が存在しない場合、host.name フィールドから直接マッピングされます。
host.os.kernel target.platform_patch_level host.os.kernel フィールドから直接マッピングされます。
host.os.name additional.fields[os_name].value.string_value host.os.name フィールドから直接マッピングされます。
host.os.version target.platform_version host.os.version フィールドから直接マッピングされます。
InsertTime additional.fields[InsertTime].value.string_value InsertTime フィールドから直接マッピングされます。
Issuer additional.fields[Issuer].value.string_value Issuer フィールドから直接マッピングされます。
Issuer principal.user.userid 存在する場合に Issuer フィールドから直接マッピングされます。
last_modified_by principal.resource.attribute.labels[last_modified_by].value last_modified_by フィールドから直接マッピングされます。
log.source.address principal.ip IP アドレスは log.source.address フィールドから抽出され、principal.ip にマッピングされます。
log.source.address principal.port ポートは log.source.address フィールドから抽出されます。
logstash.collect.host observer.ip 存在する場合に logstash.collect.host フィールドから直接マッピングされます。
logstash.collect.timestamp metadata.collected_timestamp logstash.collect.timestamp フィールドから直接マッピングされます。
logstash.ingest.timestamp metadata.ingested_timestamp logstash.ingest.timestamp フィールドから直接マッピングされます。
logstash.irm_environment additional.fields[irm_environment].value.string_value logstash.irm_environment フィールドから直接マッピングされます。
logstash.irm_region additional.fields[irm_region].value.string_value logstash.irm_region フィールドから直接マッピングされます。
logstash.irm_site additional.fields[irm_site].value.string_value logstash.irm_site フィールドから直接マッピングされます。
logstash.process.host intermediary.hostname logstash.process.host フィールドから直接マッピングされます。
message dvc_ipjson_datatimestamp grok を使用してパースし、dvc_ipjson_datatimestamp を抽出します。
modification_time target.resource.attribute.last_update_time modification_time フィールドから直接マッピングされます。
modifier_user_id principal.resource.attribute.labels[modifier_user_id].value modifier_user_id フィールドから直接マッピングされます。
object_id target.resource.product_object_id object_id フィールドから直接マッピングされます。
object_name target.resource.name object_name フィールドから直接マッピングされます。
object_type_name target.resource.attribute.labels[object_type_name].value object_type_name フィールドから直接マッピングされます。
PackageName additional.fields[PackageName].value.string_value PackageName フィールドから直接マッピングされます。
SourceId additional.fields[SourceId].value.string_value SourceId フィールドから直接マッピングされます。
StartTime additional.fields[StartTime].value.string_value StartTime フィールドから直接マッピングされます。
Status security_result.action Status が「Closed」の場合は「BLOCK」に、Status が「Open」の場合は「ALLOW」にマッピングしました。
Status security_result.summary Status フィールドから直接マッピングされます。
tanium_audit_type metadata.product_event_type tanium_audit_type フィールドから直接マッピングされます。
timestamp metadata.event_timestamp syslog メッセージまたは message フィールドから抽出された timestamp フィールドから直接マッピングされます。
type additional.fields[type].value.string_value type フィールドから直接マッピングされます。
type_name metadata.product_event_type type_name フィールドから直接マッピングされます。
User principal.user.userid User フィールドから直接マッピングされます。src_iphas_targethas_user の有無に基づいてパーサー ロジックによって決定されます。「NETWORK_CONNECTION」、「USER_RESOURCE_ACCESS」、「STATUS_UPDATE」、「GENERIC_EVENT」のいずれかです。「TANIUM_AUDIT」にハードコードされています。「cybersecurity」にハードコードされています。「TANIUM_AUDIT」にハードコードされています。
@version metadata.product_version @version フィールドから直接マッピングされます。
agent.ephemeral_id additional.fields[ephemeral_id].value.string_value agent.ephemeral_id フィールドから直接マッピングされます。
agent.id observer.asset_id agent.id フィールドから直接マッピングされ、「filebeat:」という接頭辞が付いています。
agent.type observer.application agent.type フィールドから直接マッピングされます。
agent.version observer.platform_version agent.version フィールドから直接マッピングされます。
Comment security_result.description Comment フィールドから直接マッピングされます。
host.hostname target.hostname 存在する場合に host.hostname フィールドから直接マッピングされます。
input.type network.ip_protocol input.type が「tcp」または「TCP」の場合は「TCP」にマッピングされます。
syslog_severity security_result.severity syslog_severity が「error」または「warning」の場合は「HIGH」に、「notice」の場合は「MEDIUM」に、「information」または「info」の場合は「LOW」にマッピングされます。
syslog_severity security_result.severity_details syslog_severity フィールドから直接マッピングされます。

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