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 のプロフェッショナルから回答を得ることができます。