Tanium Asset のログを収集する

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

このドキュメントでは、2 つの異なる方法を使用して Tanium Asset ログを Google Security Operations に取り込む方法について説明します。Tanium Connect のネイティブの Amazon S3 エクスポートまたは Bindplane によるリアルタイムの syslog 転送のいずれかを選択できます。どちらの方法でも、Tanium Connect モジュールを使用して Tanium からアセットデータを抽出し、分析とモニタリングのために Chronicle に転送します。パーサーは、未加工ログを Chronicle UDM に準拠した構造化形式に変換します。この処理は、まずさまざまな入力形式(JSON、Syslog)の Key-Value ペアを正規化し、抽出されたフィールドをアセット、ユーザー、関係エンティティを表すネストされた JSON オブジェクト内の対応する UDM 属性にマッピングすることで実現されます。

始める前に

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

  • Google SecOps インスタンス
  • エクスポート先を構成するための Tanium Console(Connect モジュール)への特権アクセス
  • 統合方法を選択します。
    • オプション 1(推奨): ネイティブ S3 エクスポート用の AWS(S3、IAM)への特権アクセス
    • オプション 2: Windows 2016 以降、または Bindplane エージェントのインストールに systemd を使用する Linux ホスト

オプション 1: AWS S3 を使用して Tanium Asset ログのエクスポートを構成する

Amazon S3 バケットを作成する

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

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

  1. 管理者権限で Tanium Console にログインします。
  2. [Modules] > [Connect] > [Overview] に移動し、[Create Connection] をクリックします。
  3. [作成] をクリックします。
  4. 次の構成の詳細を入力します。
    • 名前: わかりやすい名前を入力します(例: Google SecOps Asset S3 Export)。
    • 説明: この接続の説明(省略可)。
    • 有効: スケジュールどおりに実行するには、[有効] を選択します。
  5. [次へ] をクリックします。
  6. [ソース] 構成で次の操作を行います。
    • Source: [Saved Question] を選択します。
    • 質問: アセットデータを返す既存の保存済み質問を選択するか、アセット関連のセンサー(コンピュータ名、IP アドレス、OS プラットフォーム、ドメインなど)を使用して新しい質問を作成します。
    • コンピュータ グループ: アセット データ収集のターゲットにするコンピュータ グループを選択します。
  7. [次へ] をクリックします。
  8. [送信先] 構成で、次の操作を行います。
    • 宛先: [AWS S3] を選択します。
    • 名前: 宛先の名前を入力します(例: Chronicle Asset S3)。
    • AWS アクセスキー ID: IAM ユーザーのアクセスキー ID を入力します。
    • AWS シークレット アクセスキー: IAM ユーザーのシークレット アクセスキーを入力します。
    • S3 バケット名: tanium-asset-logs
    • S3 キーの接頭辞: tanium/assets/(組織の省略可能な接頭辞)。
    • リージョン: S3 バケットが配置されている AWS リージョンを選択します。
  9. [次へ] をクリックします。
  10. [書式設定] 構成で次の操作を行います。
    • 形式: 構造化データのエクスポートには [JSON] を選択します。
    • : エクスポートするアセット フィールドを選択し、適切な形式に設定します。
  11. [次へ] をクリックします。
  12. [スケジュール] の構成で、次の操作を行います。
    • スケジュール: 配信スケジュールを設定します(例: 1 時間ごと、毎日)。
    • 開始日時: 接続の実行を開始する日時を設定します。
  13. [保存] をクリックして接続を作成し、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-asset-logs/*"
        },
        {
          "Effect": "Allow",
          "Action": ["s3:ListBucket"],
          "Resource": "arn:aws:s3:::tanium-asset-logs"
        }
      ]
    }
    
  7. 名前を secops-reader-policy に設定します。

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

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

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

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

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

オプション 2: syslog と Bindplane を使用して Tanium Asset ログのエクスポートを構成する

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

  1. Google SecOps コンソールにログインします。
  2. [SIEM 設定] > [コレクション エージェント] に移動します。
  3. Ingestion Authentication File をダウンロードします。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
    

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. 構成ファイルにアクセスします。

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

    receivers:
      udplog:
        # Replace the port and IP address as required
        listen_address: "0.0.0.0:514"
    
    exporters:
      chronicle/chronicle_w_labels:
        compression: gzip
        # Adjust the path to the credentials file you downloaded in Step 1
        creds_file_path: '/path/to/ingestion-authentication-file.json'
        # Replace with your actual customer ID from Step 2
        customer_id: <PLACEHOLDER_CUSTOMER_ID>
        endpoint: malachiteingestion-pa.googleapis.com
        # Add optional ingestion labels for better organization
        log_type: 'TANIUM_ASSET'
        raw_log_field: body
        ingestion_labels:
    
    service:
      pipelines:
        logs/source0__chronicle_w_labels-0:
          receivers:
            - udplog
          exporters:
            - chronicle/chronicle_w_labels
    
    • 自社のインフラストラクチャでの必要性に応じて、ポートと IP アドレスを置き換えます。
    • <PLACEHOLDER_CUSTOMER_ID> は、実際の顧客 ID に置き換えます。
    • /path/to/ingestion-authentication-file.json の値を、Google SecOps の取り込み認証ファイルを取得するで認証ファイルを保存したパスに更新します。

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

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

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

    net stop BindPlaneAgent && net start BindPlaneAgent
    

Tanium Asset で Syslog 転送を構成する

  1. 管理者権限で Tanium Console にログインします。
  2. [Modules] > [Connect] > [Overview] に移動し、[Create Connection] をクリックします。
  3. [作成] をクリックします。
  4. 次の構成の詳細を入力します。
    • 名前: わかりやすい名前を入力します(例: Google SecOps Asset Integration)。
    • 説明: この接続の説明(省略可)。
    • 有効: スケジュールどおりに実行するには、[有効] を選択します。
  5. [次へ] をクリックします。
  6. [ソース] 構成で次の操作を行います。
    • Source: [Saved Question] を選択します。
    • 質問: アセットデータを返す既存の保存済み質問を選択するか、アセット関連のセンサーを使用して新しい質問を作成します。
    • コンピュータ グループ: アセット データ収集のターゲットにするコンピュータ グループを選択します。
  7. [次へ] をクリックします。
  8. [送信先] 構成で、次の操作を行います。
    • 宛先: [SIEM/Syslog] を選択します。
    • 名前: 宛先の名前を入力します(例: Chronicle Asset Syslog)。
    • ホスト: BindPlane エージェントの IP アドレスを入力します。
    • ポート: BindPlane Agent のポート番号(例: 514)を入力します。
    • Protocol: [UDP] を選択します。
    • 形式: [SYSLOG RFC 5424] を選択します。
    • タイムゾーン: システム全体で一貫性を保つため、UTC タイムゾーンを選択します。
  9. [次へ] をクリックします。
  10. [書式設定] 構成で次の操作を行います。
    • 形式: [JSON] を選択します。
    • : 転送するアセット フィールド(コンピュータ名、IP アドレス、OS プラットフォーム、ドメインなど)を選択します。
  11. [次へ] をクリックします。
  12. [スケジュール] の構成で、次の操作を行います。
    • スケジュール: 配信スケジュール(1 時間ごとなど)を構成します。
    • 開始日時: 接続の実行を開始する日時を設定します。
  13. [保存] をクリックして接続を作成し、転送を開始します。

UDM マッピング テーブル

ログフィールド UDM マッピング ロジック
application_name entity.metadata.source_labels.value 未加工ログに「application_name」フィールドが存在する場合は、その値が使用されます。
application_vendor entity.metadata.source_labels.value 未加工ログに「application_vendor」フィールドが存在する場合は、その値が使用されます。
application_version entity.metadata.product_version 未加工ログに「application_version」フィールドが存在する場合は、その値が使用されます。
BIOS_Current_Language entity.metadata.source_labels.value 未加工ログに「BIOS_Current_Language」フィールドが存在する場合は、その値が使用されます。
BIOS_Release_Date entity.metadata.source_labels.value 未加工ログに「BIOS_Release_Date」フィールドが存在する場合は、その値が使用されます。
BIOS_Vendor entity.metadata.source_labels.value 未加工ログに「BIOS_Vendor」フィールドが存在する場合は、その値が使用されます。
BIOS_Version entity.metadata.product_version 未加工ログに「BIOS_Version」フィールドが存在する場合は、その値が使用されます。
シャーシの種類 entity.entity.asset.category 値は、未加工ログに「Chassis Type」フィールドが存在する場合は、そのフィールドから取得されます。
コンピュータ ID entity.entity.asset.product_object_id 未加工ログに「コンピュータ ID」フィールドが存在する場合は、その値が使用されます。また、entity.relations.entity.asset.asset_id に「id: 」という接頭辞を付けて入力するためにも使用されます。
コンピュータ名 entity.entity.asset.hostname 未加工ログに「Computer Name」フィールドが存在する場合は、その値が使用されます。
カウント entity.metadata.source_labels.value 未加工ログに「Count」フィールドが存在する場合は、その値が使用されます。
エンドポイントのフィンガープリント entity.entity.asset.hardware.serial_number 未加工ログに「Endpoint Fingerprint」フィールドが存在する場合は、そのフィールドから値が取得されます。
IP アドレス entity.entity.asset.ip 値は [IP アドレス] フィールドから取得され、個別の IP アドレスとして配列に追加されます。
最終ログイン ユーザー entity.relations.entity.user.userid 値は、未加工ログに存在する場合は「Last Logged In User」フィールドから取得され、ドメイン接頭辞は削除されます。
最終再起動日時 entity.entity.asset.last_boot_time 値は、未加工ログに存在する場合、「Last Reboot」フィールドから解析され、タイムスタンプとしてフォーマットされます。
MAC アドレス entity.entity.asset.mac 値は [MAC Address] フィールドから取得され、個別の MAC アドレスとして配列に追加されます。
メーカー entity.entity.asset.hardware.manufacturer 未加工ログに「Manufacturer」フィールドが存在する場合は、その値が使用されます。
オペレーティング システム entity.entity.asset.platform_software.platform_version 未加工ログに「Operating System」フィールドが存在する場合は、その値が使用されます。entity.entity.asset.platform_software.platform(WINDOWS、LINUX、MAC)の値を決定するために使用されます。
プラットフォーム entity.entity.asset.platform_software.platform_version 未加工ログに「platform」フィールドが存在する場合は、その値が使用されます。entity.entity.asset.platform_software.platform(WINDOWS、LINUX、MAC)の値を決定するために使用されます。
serial_number entity.entity.asset.hardware.serial_number 未加工ログに「serial_number」フィールドが存在する場合は、その値が使用されます。
version entity.entity.asset.platform_software.platform_version 未加工ログに「version」フィールドが存在する場合は、その値が使用されます。entity.entity.asset.platform_software.platform(WINDOWS、LINUX、MAC)の値を決定するために使用されます。
なし entity.metadata.collected_timestamp バッチの create_time に設定されます。
なし entity.metadata.vendor_name 常に「TANIUM_ASSET」に設定されます。
なし entity.metadata.product_name 常に「TANIUM_ASSET」に設定されます。
なし entity.metadata.entity_type 常に「ASSET」に設定されます。
なし entity.relations.entity_type 常に「USER」に設定されます。
なし entity.relations.relationship 常に「OWNS」に設定されます。

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