Tanium Discover のログを収集する
このドキュメントでは、Tanium Connect のネイティブ S3 エクスポート機能を使用して、Amazon S3 を介して Tanium Discover ログを Google Security Operations に取り込む方法について説明します。Tanium Discover は、環境全体のネットワーク インターフェースとアセットを自動的に検出します。これにより、管理対象と管理対象外のエンドポイント、ネットワーク デバイス、その他の接続システムを可視化できます。パーサーは、JSON ログからフィールドを抽出し、MAC アドレスや OS 情報などの特定のフィールドを変換して、UDM にマッピングします。さまざまなデータ型を処理し、ベンダーやプロダクトの詳細などのメタデータを追加して、抽出されたフィールドを最終的な UDM イベント構造に統合します。
始める前に
次の前提条件を満たしていることを確認してください。
- Google SecOps インスタンス
- Tanium Connect と Tanium Console への特権アクセス
- Tanium Discover 2.11 以降がインストールされ、構成されている
- AWS(S3、IAM)への特権アクセス
Google SecOps 用に AWS S3 バケットと IAM を構成する
- バケットの作成のユーザーガイドに沿って、Amazon S3 バケットを作成します。
- 後で参照できるように、バケットの名前とリージョンを保存します(例: tanium-discover-logs)。
- IAM ユーザーの作成のユーザーガイドに沿って、ユーザーを作成します。
- 作成したユーザーを選択します。
- [セキュリティ認証情報] タブを選択します。
- [アクセスキー] セクションで [アクセスキーを作成] をクリックします。
- [ユースケース] で [サードパーティ サービス] を選択します。
- [次へ] をクリックします。
- 省略可: 説明タグを追加します。
- [アクセスキーを作成] をクリックします。
- [CSV ファイルをダウンロード] をクリックして、[アクセスキー] と [シークレット アクセスキー] を保存し、後で使用できるようにします。
- [完了] をクリックします。
- [権限] タブを選択します。
- [権限ポリシー] セクションで、[権限を追加] をクリックします。
- [権限を追加] を選択します。
- [ポリシーを直接アタッチする] を選択します。
- AmazonS3FullAccess ポリシーを検索して選択します。
- [次へ] をクリックします。
- [権限を追加] をクリックします。
Amazon S3 バケットの権限を構成する
- Amazon S3 コンソールで、以前に作成したバケットを選択します。
- [権限> バケット ポリシー] をクリックします。
- バケット ポリシー エディタで、次のポリシーを追加します。 - { "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-discover-logs", "arn:aws:s3:::tanium-discover-logs/*" ] } ] }
- 次の変数を置き換えます。 - YOUR_ACCOUNT_IDを AWS アカウント ID に変更します。
- 異なる場合は、tanium-discover-logsを実際のバケット名に変更します。
- tanium-connect-s3-userは、実際の IAM ユーザー名が異なる場合は、そのユーザー名に変更します。
 
- [保存] をクリックします。 
S3 エクスポート用に Tanium Connect を構成する
- 管理者として Tanium Console にログインします。
- [Tanium Connect] > [Connections] に移動します。
- [接続を作成] をクリックします。
- [General Information] セクションで、次の構成の詳細を指定します。
- 名前: わかりやすい名前を入力します(例: Tanium Discover to S3)。
- 説明: わかりやすい説明を入力します(例: Export Tanium Discover interface data to S3 for Google SecOps ingestion)。
- 有効: 接続を有効にする場合に選択します。
- ログレベル: [情報](デフォルト)を選択するか、必要に応じて調整します。
 
- 名前: わかりやすい名前を入力します(例: 
- [構成] セクションの [ソース] で、[Tanium Discover] を選択します。
- Discover ソースの設定を構成します。
- レポートタイプ: エクスポートするインターフェースのタイプを選択します。
- すべて: Discover のすべてのインターフェースをエクスポートします。
- Managed: Tanium Client がインストールされているインターフェースをエクスポートします。
- 管理対象外: Tanium Client がインストールされていないインターフェースをエクスポートします。
- ラベル付き: ラベルが適用されているすべてのインターフェースをエクスポートします。
- ラベルなし: ラベルが適用されていないエクスポート インターフェース。
- 無視: 無視としてマークされたエクスポート インターフェース。
- Unmanageable: 管理不能とマークされたエクスポート インターフェース。
 
 
- レポートタイプ: エクスポートするインターフェースのタイプを選択します。
- [宛先] で、[AWS S3] を選択します。
- 次の構成の詳細を入力します。
- 宛先名: 名前を入力します(例: Google SecOps S3 Bucket)。
- AWS アクセスキー: 事前に作成した IAM ユーザーのアクセスキー ID を入力します。
- AWS シークレット キー: 事前に作成した IAM ユーザーのシークレット アクセスキーを入力します。
- バケット名: S3 バケット名(tanium-discover-logsなど)を入力します。
- バケットパス: 省略可。パスの接頭辞(tanium/discover/など)を入力します。
- リージョン: バケットが存在する AWS リージョン(us-east-1など)を選択します。
 
- 宛先名: 名前を入力します(例: 
- [形式] セクションで、出力形式を構成します。
- 形式タイプ: [JSON] を選択します。
- 列ヘッダーを含める: 列ヘッダーを含めるかどうかを選択します。
- ドキュメントを生成: このオプションの選択を解除すると、未加工の JSON データが送信されます。
 
- 省略可: [出力の構成] セクションで、フィルタを構成します。
- フィルタ: フィルタを使用して、特定のラベルをエクスポートできます。たとえば、「Lost Interface」というタグが付いたすべてのインターフェースをエクスポートする場合は、正規表現フィルタを適用し、[ラベル] ターゲット列で一致するテキストとして「Lost Interface」と入力します。
- カスタム列: ユースケースに関連するカスタム列を追加します。
 
- [スケジュール] セクションで、接続の実行タイミングを構成します。
- スケジュール タイプ: [Cron] を選択します。
- Cron 式: 定期的なエクスポートの cron 式を入力します(例: 6 時間ごとの場合は 0 */6 * * *)。
- 開始日: スケジュールの開始日を設定します。
 
- [変更を保存] をクリックします。
- [Connect の概要] ページで、[接続] に移動します。
- 作成した接続(Tanium Discover to S3)をクリックします。
- [Run Now] をクリックして接続をテストします。
- 接続を実行することを確認します。
- 接続ステータスをモニタリングし、検出インターフェース データが S3 バケットにエクスポートされていることを確認します。
省略可: Google SecOps 用の読み取り専用の IAM ユーザーと鍵を作成する
- AWS コンソール > IAM > ユーザー > ユーザーを追加 に移動します。
- [ユーザーを追加] をクリックします。
- 次の構成の詳細を入力します。
- ユーザー: 「secops-reader」と入力します。
- アクセスの種類: [アクセスキー - プログラムによるアクセス] を選択します。
 
- ユーザー: 「
- [ユーザーを作成] をクリックします。
- 最小限の読み取りポリシー(カスタム)を関連付ける: [ユーザー] > [secops-reader] > [権限] > [権限を追加] > [ポリシーを直接関連付ける] > [ポリシーを作成]。
- JSON エディタで、次のポリシーを入力します。 - { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": ["s3:GetObject"], "Resource": "arn:aws:s3:::tanium-discover-logs/*" }, { "Effect": "Allow", "Action": ["s3:ListBucket"], "Resource": "arn:aws:s3:::tanium-discover-logs" } ] }
- 名前を - secops-reader-policyに設定します。
- [ポリシーの作成> 検索/選択> 次へ> 権限を追加] に移動します。 
- [セキュリティ認証情報] > [アクセスキー] > [アクセスキーを作成] に移動します。 
- CSV をダウンロードします(これらの値はフィードに入力されます)。 
Tanium Discover のログを取り込むように Google SecOps でフィードを構成する
- [SIEM 設定] > [フィード] に移動します。
- [+ 新しいフィードを追加] をクリックします。
- [フィード名] フィールドに、フィードの名前を入力します(例: Tanium Discover logs)。
- [ソースタイプ] として [Amazon S3 V2] を選択します。
- [ログタイプ] として [Tanium Discover] を選択します。
- [次へ] をクリックします。
- 次の入力パラメータの値を指定します。
- S3 URI: s3://tanium-discover-logs/tanium/discover/(別のバケット名またはパスを使用した場合は、パスを調整します)。
- Source deletion options: 必要に応じて削除オプションを選択します。
- ファイルの最大経過日数: 指定した日数以内に変更されたファイルを含めます。デフォルトは 180 日です。
- アクセスキー ID: S3 バケットにアクセスできるユーザー アクセスキー(上記で作成した読み取り専用ユーザーのアクセスキー)。
- シークレット アクセスキー: S3 バケットにアクセスできるユーザーのシークレット キー(上記で作成した読み取り専用ユーザーのキー)。
- アセットの名前空間: アセットの名前空間。
- Ingestion labels: このフィードのイベントに適用されるラベル。
 
- S3 URI: 
- [次へ] をクリックします。
- [Finalize] 画面で新しいフィードの設定を確認し、[送信] をクリックします。
UDM マッピング テーブル
| ログフィールド | UDM マッピング | ロジック | 
|---|---|---|
| CentralizedNmap | principal.asset.attribute.labels.key | 値「CentralizedNmap」はパーサーによって割り当てられます。 | 
| CentralizedNmap | principal.asset.attribute.labels.value | 未加工ログの CentralizedNmapフィールドから直接取得され、文字列に変換されます。 | 
| IpAddress | principal.asset.ip | 未加工ログの IpAddressフィールドから直接取得されます。 | 
| IpAddress | principal.ip | 未加工ログの IpAddressフィールドから直接取得されます。 | 
| Labels | principal.asset.attribute.labels.key | 値「Labels」はパーサーによって割り当てられます。 | 
| Labels | principal.asset.attribute.labels.value | 未加工ログの Labelsフィールドから直接取得されます。 | 
| MacAddress | principal.asset.mac | 未加工ログの MacAddressフィールドから直接取得され、ハイフンはコロンに置き換えられ、値は小文字に変換されます。 | 
| MacAddress | principal.asset.product_object_id | 「TANIUM:」と MacAddressフィールドを連結します(小文字に変換し、ハイフンをコロンに置き換えた後)。 | 
| MacAddress | principal.mac | 未加工ログの MacAddressフィールドから直接取得され、ハイフンはコロンに置き換えられ、値は小文字に変換されます。 | 
| MacOrganization | principal.asset.attribute.labels.key | 値「MacOrganization」はパーサーによって割り当てられます。 | 
| MacOrganization | principal.asset.attribute.labels.value | 未加工ログの MacOrganizationフィールドから直接取得され、文字列に変換されます。 | 
| Managed | principal.asset.attribute.labels.key | 値「Managed」はパーサーによって割り当てられます。 | 
| Managed | principal.asset.attribute.labels.value | 未加工ログの Managedフィールドから直接取得され、文字列に変換されます。 | 
| Os | principal.asset.platform_software.platform | Osが「Windows」の場合、値は「WINDOWS」に設定されます。Osが「Linux」の場合、値は「LINUX」に設定されます。それ以外の場合、値は「UNKNOWN_PLATFORM」に設定されます。 | 
| Os | principal.platform | Osが「Windows」の場合、値は「WINDOWS」に設定されます。Osが「Linux」の場合、値は「LINUX」に設定されます。それ以外の場合、値は「UNKNOWN_PLATFORM」に設定されます。 | 
| OsGeneration | principal.asset.platform_software.platform_version | 未加工ログの OsGenerationフィールドから直接取得され、文字列に変換されます。 | 
| OsGeneration | principal.platform_version | 未加工ログの OsGenerationフィールドから直接取得され、文字列に変換されます。 | 
| Ports | principal.asset.attribute.labels.key | 値「Ports」はパーサーによって割り当てられます。 | 
| Ports | principal.asset.attribute.labels.value | 未加工ログの Portsフィールドから直接取得されます。 | 
| Profile | principal.asset.attribute.labels.key | 値「Profile」はパーサーによって割り当てられます。 | 
| Profile | principal.asset.attribute.labels.value | 未加工ログの Profileフィールドから直接取得されます。 | 
| TaniumComputerId | principal.asset.attribute.labels.key | 値「TaniumComputerId」はパーサーによって割り当てられます。 | 
| TaniumComputerId | principal.asset.attribute.labels.value | 未加工ログの TaniumComputerIdフィールドから直接取得され、文字列に変換されます。 | 
| Unmanageable | principal.asset.attribute.labels.key | 値「Unmanageable」はパーサーによって割り当てられます。 | 
| Unmanageable | principal.asset.attribute.labels.value | 未加工ログの Unmanageableフィールドから直接取得され、文字列に変換されます。未加工ログのtimeフィールドから取得され、解析されてエポック秒に変換されます。値「SCAN_NETWORK」はパーサーによって割り当てられます。値「TANIUM_DISCOVER」はパーサーによって割り当てられます。値「Discover」はパーサーによって割り当てられます。値「Tanium」はパーサーによって割り当てられます。未加工ログのHostNameフィールドから直接取得されます。未加工ログのtimeフィールドから取得され、解析されてエポック秒に変換されます。 | 
さらにサポートが必要な場合 コミュニティ メンバーや Google SecOps のプロフェッショナルから回答を得ることができます。