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 バケットを作成する
- バケットの作成のユーザーガイドに沿って、Amazon S3 バケットを作成します。
- 後で参照できるように、バケットの名前とリージョンを保存します(例:
tanium-asset-logs
)。 - IAM ユーザーの作成のユーザーガイドに沿って、ユーザーを作成します。
- 作成したユーザーを選択します。
- [セキュリティ認証情報] タブを選択します。
- [アクセスキー] セクションで [アクセスキーを作成] をクリックします。
- [ユースケース] で [サードパーティ サービス] を選択します。
- [次へ] をクリックします。
- 省略可: 説明タグを追加します。
- [アクセスキーを作成] をクリックします。
- [CSV ファイルをダウンロード] をクリックして、[アクセスキー] と [シークレット アクセスキー] を保存し、後で使用できるようにします。
- [完了] をクリックします。
- [権限] タブを選択します。
- [権限ポリシー] セクションで、[権限を追加] をクリックします。
- [権限を追加] を選択します。
- [ポリシーを直接アタッチする] を選択します。
- AmazonS3FullAccess ポリシーを検索して選択します。
- [次へ] をクリックします。
- [権限を追加] をクリックします。
S3 エクスポート用に Tanium Connect を構成する
- 管理者権限で Tanium Console にログインします。
- [Modules] > [Connect] > [Overview] に移動し、[Create Connection] をクリックします。
- [作成] をクリックします。
- 次の構成の詳細を入力します。
- 名前: わかりやすい名前を入力します(例:
Google SecOps Asset S3 Export
)。 - 説明: この接続の説明(省略可)。
- 有効: スケジュールどおりに実行するには、[有効] を選択します。
- 名前: わかりやすい名前を入力します(例:
- [次へ] をクリックします。
- [ソース] 構成で次の操作を行います。
- Source: [Saved Question] を選択します。
- 質問: アセットデータを返す既存の保存済み質問を選択するか、アセット関連のセンサー(コンピュータ名、IP アドレス、OS プラットフォーム、ドメインなど)を使用して新しい質問を作成します。
- コンピュータ グループ: アセット データ収集のターゲットにするコンピュータ グループを選択します。
- [次へ] をクリックします。
- [送信先] 構成で、次の操作を行います。
- 宛先: [AWS S3] を選択します。
- 名前: 宛先の名前を入力します(例:
Chronicle Asset S3
)。 - AWS アクセスキー ID: IAM ユーザーのアクセスキー ID を入力します。
- AWS シークレット アクセスキー: IAM ユーザーのシークレット アクセスキーを入力します。
- S3 バケット名:
tanium-asset-logs
。 - S3 キーの接頭辞:
tanium/assets/
(組織の省略可能な接頭辞)。 - リージョン: S3 バケットが配置されている AWS リージョンを選択します。
- [次へ] をクリックします。
- [書式設定] 構成で次の操作を行います。
- 形式: 構造化データのエクスポートには [JSON] を選択します。
- 列: エクスポートするアセット フィールドを選択し、適切な形式に設定します。
- [次へ] をクリックします。
- [スケジュール] の構成で、次の操作を行います。
- スケジュール: 配信スケジュールを設定します(例: 1 時間ごと、毎日)。
- 開始日時: 接続の実行を開始する日時を設定します。
- [保存] をクリックして接続を作成し、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-asset-logs/*" }, { "Effect": "Allow", "Action": ["s3:ListBucket"], "Resource": "arn:aws:s3:::tanium-asset-logs" } ] }
名前を
secops-reader-policy
に設定します。[ポリシーの作成> 検索/選択> 次へ> 権限を追加] に移動します。
[セキュリティ認証情報] > [アクセスキー] > [アクセスキーを作成] に移動します。
CSV をダウンロードします(これらの値はフィードに入力されます)。
Tanium Asset のログを取り込むように Google SecOps でフィードを構成する
- [SIEM 設定] > [フィード] に移動します。
- [+ 新しいフィードを追加] をクリックします。
- [フィード名] フィールドに、フィードの名前を入力します(例:
Tanium Asset logs
)。 - [ソースタイプ] として [Amazon S3 V2] を選択します。
- [ログタイプ] として [Tanium Asset] を選択します。
- [次へ] をクリックします。
- 次の入力パラメータの値を指定します。
- S3 URI:
s3://tanium-asset-logs/tanium/assets/
- Source deletion options: 必要に応じて削除オプションを選択します。
- ファイルの最大経過日数: 指定した日数以内に変更されたファイルを含めます。デフォルトは 180 日です。
- アクセスキー ID: S3 バケットにアクセスできるユーザー アクセスキー。
- シークレット アクセスキー: S3 バケットにアクセスできるユーザーのシークレット キー。
- Asset namespace: アセットの名前空間。
- Ingestion labels: このフィードのイベントに適用されるラベル。
- S3 URI:
- [次へ] をクリックします。
- [Finalize] 画面で新しいフィードの設定を確認し、[送信] をクリックします。
オプション 2: syslog と Bindplane を使用して Tanium Asset ログのエクスポートを構成する
Google SecOps の取り込み認証ファイルを取得する
- Google SecOps コンソールにログインします。
- [SIEM 設定] > [コレクション エージェント] に移動します。
- Ingestion Authentication File をダウンロードします。Bindplane をインストールするシステムにファイルを安全に保存します。
Google SecOps のお客様 ID を取得する
- Google SecOps コンソールにログインします。
- [SIEM 設定] > [プロファイル] に移動します。
- [組織の詳細情報] セクションから [お客様 ID] をコピーして保存します。
Bindplane エージェントをインストールする
次の手順に沿って、Windows または Linux オペレーティング システムに Bindplane エージェントをインストールします。
Windows のインストール
- 管理者として コマンド プロンプトまたは PowerShell を開きます。
次のコマンドを実行します。
msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
Linux のインストール
- root 権限または sudo 権限でターミナルを開きます。
次のコマンドを実行します。
sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh
その他のインストール リソース
- その他のインストール オプションについては、こちらのインストール ガイドをご覧ください。
Syslog を取り込んで Google SecOps に送信するように Bindplane エージェントを構成する
構成ファイルにアクセスします。
config.yaml
ファイルを見つけます。通常、Linux では/etc/bindplane-agent/
ディレクトリに、Windows ではインストール ディレクトリにあります。- テキスト エディタ(
nano
、vi
、メモ帳など)を使用してファイルを開きます。
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 転送を構成する
- 管理者権限で Tanium Console にログインします。
- [Modules] > [Connect] > [Overview] に移動し、[Create Connection] をクリックします。
- [作成] をクリックします。
- 次の構成の詳細を入力します。
- 名前: わかりやすい名前を入力します(例:
Google SecOps Asset Integration
)。 - 説明: この接続の説明(省略可)。
- 有効: スケジュールどおりに実行するには、[有効] を選択します。
- 名前: わかりやすい名前を入力します(例:
- [次へ] をクリックします。
- [ソース] 構成で次の操作を行います。
- Source: [Saved Question] を選択します。
- 質問: アセットデータを返す既存の保存済み質問を選択するか、アセット関連のセンサーを使用して新しい質問を作成します。
- コンピュータ グループ: アセット データ収集のターゲットにするコンピュータ グループを選択します。
- [次へ] をクリックします。
- [送信先] 構成で、次の操作を行います。
- 宛先: [SIEM/Syslog] を選択します。
- 名前: 宛先の名前を入力します(例:
Chronicle Asset Syslog
)。 - ホスト: BindPlane エージェントの IP アドレスを入力します。
- ポート: BindPlane Agent のポート番号(例:
514
)を入力します。 - Protocol: [UDP] を選択します。
- 形式: [SYSLOG RFC 5424] を選択します。
- タイムゾーン: システム全体で一貫性を保つため、UTC タイムゾーンを選択します。
- [次へ] をクリックします。
- [書式設定] 構成で次の操作を行います。
- 形式: [JSON] を選択します。
- 列: 転送するアセット フィールド(コンピュータ名、IP アドレス、OS プラットフォーム、ドメインなど)を選択します。
- [次へ] をクリックします。
- [スケジュール] の構成で、次の操作を行います。
- スケジュール: 配信スケジュール(1 時間ごとなど)を構成します。
- 開始日時: 接続の実行を開始する日時を設定します。
- [保存] をクリックして接続を作成し、転送を開始します。
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 のプロフェッショナルから回答を得ることができます。