Cato Networks のログを収集する
このドキュメントでは、AWS S3 を使用して Cato Networks ログを Google Security Operations に取り込む方法について説明します。パーサーは、まず一連のフィールドを空の文字列に初期化してから、JSON 形式の Cato Networks ログを解析します。次に、抽出されたフィールドを Google SecOps 統合データモデル(UDM)モデルの対応するフィールドにマッピングし、さまざまなイベントタイプを処理して、追加のコンテキストでデータを拡充します。
始める前に
次の前提条件を満たしていることを確認してください。
- Google SecOps インスタンス
- AWS S3、AWS IAM への特権アクセス
- Cato Networks への特権アクセス
AWS IAM と S3 バケットを構成する
- バケットの作成のユーザーガイドに沿って、Amazon S3 バケットを作成します。
- バケットの名前とリージョンを保存しておきます。
- IAM ユーザーの作成のユーザーガイドに沿って、ユーザーを作成します。
- 作成したユーザーを選択します。
- [セキュリティ認証情報] タブを選択します。
- [アクセスキー] セクションで [アクセスキーを作成] をクリックします。
- [ユースケース] で [サードパーティ サービス] を選択します。
- [次へ] をクリックします。
- 省略可: 説明タグを追加します。
- [アクセスキーを作成] をクリックします。
- [CSV ファイルをダウンロード] をクリックし、[アクセスキー] と [シークレット アクセスキー] を保存して、今後の参照に備えます。
- [完了] をクリックします。
- [権限] タブを選択します。
- [権限ポリシー] セクションで [権限を追加] をクリックします。
- [権限を追加] を選択します。
- [ポリシーを直接アタッチする] を選択します。
- AmazonS3FullAccess ポリシーを検索して選択します。
- [次へ] をクリックします。
- [権限を追加] をクリックします。
データ アップロードを有効にするために S3 バケットの新しい IAM ポリシーを構成する
- [ポリシー] で、[JSON] タブをクリックします。
次の JSON を編集し、
<bucket name>を S3 バケットに置き換えてから、タブに貼り付けます。{ "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Action": [ "s3:ListBucket", "s3:GetBucketLocation" ], "Resource": [ "arn:aws:s3:::<bucket name>" ] }, { "Sid": "", "Effect": "Allow", "Action": [ "s3:PutObject" ], "Resource": [ "arn:aws:s3:::<bucket name>/*" ] } ] }[ポリシーを作成] をクリックします。
Cato の ARN を使用して新しい IAM ロールを構成する
[信頼できるエンティティの選択] 画面で、[カスタム信頼ポリシー] を選択し、Cato の ARN をロールに追加します。arn:aws:iam::428465470022:role/cato-events-integration
{ "Version": "2012-10-17", "Statement": [ { "Sid": "Statement1", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::428465470022:role/cato-events-integration" }, "Action": "sts:AssumeRole" } ] }[次へ] をクリックします。
[権限を追加] 画面で、前に作成したポリシーをロールに適用します。
[次へ] をクリックします。
[ロール名] を入力し、[ロールを作成] をクリックします。
Cato Networks Events と S3 の統合を構成する
- Cato Networks のウェブ UI にログインします。
- [リソース] > [イベント統合] に移動します。
- [Enable integration with Cato events] をクリックします。
- [New] をクリックします。
- 次の構成の詳細を入力します。
- 統合の名前を入力します。
- バケット名: S3 バケットと同じ名前。
- フォルダ: S3 バケット内のフォルダパスの同じ名前(必要な場合)。
- リージョン: S3 バケットと同じリージョン。
- ロール ARN: S3 バケットのロールの ARN をコピーして貼り付けます。
- (省略可)S3 バケットにアップロードされるイベントのフィルタ設定を定義します(複数のフィルタを定義すると、AND 関係になり、すべてのフィルタに一致するイベントがアップロードされます)。
- [適用] をクリックします。
フィードを設定する
フィードを構成する手順は次のとおりです。
- [SIEM 設定] > [フィード] に移動します。
- [Add New Feed] をクリックします。
- 次のページで [単一のフィードを設定] をクリックします。
- [フィード名] フィールドに、フィードの名前を入力します(例:
Cato Logs)。 - [ソースタイプ] として [Amazon S3 V2] を選択します。
- [ログタイプ] として [Cato Networks] を選択します。
- [次へ] をクリックします。
次の入力パラメータの値を指定します。
S3 URI: バケット URI(形式は
s3://<your-log-bucket-name>にする必要があります)。次の項目を置き換えます。your-log-bucket-name: バケットの名前。
Source deletion options: 必要に応じて削除オプションを選択します。
[次へ] をクリックします。
[Finalize] 画面で新しいフィードの設定を確認し、[送信] をクリックします。
UDM マッピング テーブル
| ログフィールド | UDM マッピング | ロジック |
|---|---|---|
| account_id | target.user.userid | このフィールドの値は account_id フィールドから取得されます。 |
| アクション | additional.fields.value.string_value | このフィールドの値は action フィールドから取得されます。 |
| app_stack | additional.fields.value.list_value.values.string_value | このフィールドの値は app_stack フィールドから取得されます。 |
| アプリケーション | principal.application | このフィールドの値は application フィールドから取得されます。 |
| categories | additional.fields.value.list_value.values.string_value | このフィールドの値は categories フィールドから取得されます。 |
| clientIP | principal.ip、principal.asset.ip | このフィールドの値は clientIP フィールドから取得されます。 |
| creationTime | このフィールドは、イベントのタイムスタンプの計算に使用されます。 | |
| custom_categories | additional.fields.value.list_value.values.string_value | このフィールドの値は custom_categories フィールドから取得されます。 |
| dest_country | target.location.country_or_region | このフィールドの値は dest_country フィールドから取得されます。 |
| dest_country_code | target.resource.attribute.labels.value | このフィールドの値は dest_country_code フィールドから取得されます。 |
| dest_ip | target.ip、target.asset.ip | このフィールドの値は dest_ip フィールドから取得されます。 |
| dest_port | target.port | このフィールドの値は dest_port フィールドから取得されます。 |
| destinationCountry | target.location.country_or_region | このフィールドの値は destinationCountry フィールドから取得されます。 |
| destinationIp | target.ip、target.asset.ip | このフィールドの値は destinationIp フィールドから取得されます。 |
| destinationName | target.hostname、target.asset.hostname | このフィールドの値は destinationName フィールドから取得されます。 |
| device_name | network.dhcp.client_hostname | このフィールドの値は device_name フィールドから取得されます。 |
| dns_name | additional.fields.value.string_value | このフィールドの値は dns_name フィールドから取得されます。 |
| event_count | additional.fields.value.string_value | このフィールドの値は event_count フィールドから取得されます。 |
| event_sub_type | metadata.description | このフィールドの値は event_sub_type フィールドから取得されます。 |
| fieldsMap.ISP_name | additional.fields.value.string_value | このフィールドの値は fieldsMap.ISP_name フィールドから取得されます。 |
| fieldsMap.action | security_result.action_details | このフィールドの値は fieldsMap.action フィールドから取得されます。 |
| fieldsMap.categories | security_result.category_details | このフィールドの値は fieldsMap.categories フィールドから取得されます。 |
| fieldsMap.dest_country | target.location.country_or_region | このフィールドの値は fieldsMap.dest_country フィールドから取得されます。 |
| fieldsMap.dest_ip | target.ip、target.asset.ip | このフィールドの値は fieldsMap.dest_ip フィールドから取得されます。 |
| fieldsMap.dest_port | principal.port | このフィールドの値は fieldsMap.dest_port フィールドから取得されます。 |
| fieldsMap.domain_name | principal.administrative_domain | このフィールドの値は fieldsMap.domain_name フィールドから取得されます。 |
| fieldsMap.event_sub_type | metadata.description | このフィールドの値は fieldsMap.event_sub_type フィールドから取得されます。 |
| fieldsMap.event_type | metadata.product_event_type | このフィールドの値は fieldsMap.event_type フィールドから取得されます。 |
| fieldsMap.ip_protocol | network.ip_protocol | このフィールドの値は fieldsMap.ip_protocol フィールドから取得されます。 |
| fieldsMap.os_type | このフィールドは、プリンシパルのオペレーティング システムを特定するために使用されます。 | |
| fieldsMap.pop_name | additional.fields.value.string_value | このフィールドの値は fieldsMap.pop_name フィールドから取得されます。 |
| fieldsMap.rule_id | security_result.rule_id | このフィールドの値は fieldsMap.rule_id フィールドから取得されます。 |
| fieldsMap.rule_name | security_result.rule_name | このフィールドの値は fieldsMap.rule_name フィールドから取得されます。 |
| fieldsMap.src_ip | principal.ip、principal.asset.ip | このフィールドの値は fieldsMap.src_ip フィールドから取得されます。 |
| fieldsMap.src_isp_ip | src.ip、src.asset.ip | このフィールドの値は fieldsMap.src_isp_ip フィールドから取得されます。 |
| fieldsMap.time | このフィールドは、イベントのタイムスタンプの計算に使用されます。 | |
| file_hash | target.file.sha256 | このフィールドの値は file_hash フィールドから取得されます。 |
| file_name | target.file.full_path | このフィールドの値は file_name フィールドから取得されます。 |
| file_size | target.file.size | このフィールドの値は file_size フィールドから取得されます。 |
| http_host_name | principal.hostname、principal.asset.hostname | このフィールドの値は http_host_name フィールドから取得されます。 |
| insertionDate | additional.fields.value.string_value | このフィールドの値は insertionDate フィールドから取得されます。 |
| internalId | additional.fields.value.string_value | このフィールドの値は internalId フィールドから取得されます。 |
| ip_protocol | network.ip_protocol | このフィールドの値は ip_protocol フィールドから取得されます。 |
| is_sanctioned_app | security_result.detection_fields.value | このフィールドの値は is_sanctioned_app フィールドから取得されます。 |
| os_type | principal.platform | このフィールドの値は os_type フィールドから取得されます。 |
| pop_name | このフィールドは、fieldsMap.pop_name フィールドに値を設定するために使用されます。 |
|
| prettyType | metadata.product_event_type | このフィールドの値は prettyType フィールドから取得されます。 |
| ルール | additional.fields.value.string_value | このフィールドの値は rule フィールドから取得されます。 |
| rule_id | security_result.rule_id | このフィールドの値は rule_id フィールドから取得されます。 |
| rule_name | security_result.rule_name | このフィールドの値は rule_name フィールドから取得されます。 |
| server_port | target.port | このフィールドの値は server_port フィールドから取得されます。 |
| 重要度 | security_result.severity_details | このフィールドの値は severity フィールドから取得されます。 |
| sourceCountry | principal.location.country_or_region | このフィールドの値は sourceCountry フィールドから取得されます。 |
| sourceInternalIp | principal.ip | このフィールドの値は sourceInternalIp フィールドから取得されます。 |
| sourceIp | src.ip、src.asset.ip | このフィールドの値は sourceIp フィールドから取得されます。 |
| sourceName | principal.user.user_display_name | このフィールドの値は sourceName フィールドから取得されます。 |
| スポーツ | principal.port | このフィールドの値は sport フィールドから取得されます。 |
| src_country | このフィールドは、sourceCountry フィールドに値を設定するために使用されます。 |
|
| src_country_code | principal.resource.attribute.labels.value | このフィールドの値は src_country_code フィールドから取得されます。 |
| src_ip | principal.ip、principal.asset.ip | このフィールドの値は src_ip フィールドから取得されます。 |
| src_is_site_or_vpn | security_result.detection_fields.value | このフィールドの値は src_is_site_or_vpn フィールドから取得されます。 |
| src_isp_ip | src.ip、src.asset.ip | このフィールドの値は src_isp_ip フィールドから取得されます。 |
| src_site | additional.fields.value.string_value | このフィールドの値は src_site フィールドから取得されます。 |
| src_site_name | additional.fields.value.string_value | このフィールドの値は src_site_name フィールドから取得されます。 |
| start | このフィールドは、イベントのタイムスタンプの計算に使用されます。 | |
| subnet_name | additional.fields.value.string_value | このフィールドの値は subnet_name フィールドから取得されます。 |
| 時間 | このフィールドは、イベントのタイムスタンプの計算に使用されます。 | |
| time_str | このフィールドは、イベントのタイムスタンプの計算に使用されます。 | |
| tunnel_host_logon_names | principal.user.userid | このフィールドの値は tunnel_host_logon_names フィールドから取得されます。 |
| URL | target.url | このフィールドの値は url フィールドから取得されます。 |
| user_id | principal.user.userid | このフィールドの値は user_id フィールドから取得されます。 |
| metadata.event_type | このフィールドの値は GENERIC_EVENT に設定され、イベントに基づいて NETWORK_CONNECTION、NETWORK_DHCP、NETWORK_HTTP にオーバーライドできます。 |
|
| metadata.log_type | このフィールドの値は CATO_NETWORKS に設定されます。 |
|
| metadata.product_name | このフィールドの値は SASE に設定されます。 |
|
| metadata.vendor_name | このフィールドの値は Cato Networks に設定されます。 |
|
| network.application_protocol | Connected イベントの場合、このフィールドの値は DHCP に設定されます。 |
|
| network.dhcp.chaddr | Connected イベントの場合、このフィールドの値は 01:23:45:ab:cd:ef に設定されます。 |
|
| network.dhcp.lease_time_seconds | Connected イベントの場合、このフィールドの値は 86400 に設定されます。 |
|
| network.dhcp.opcode | Connected イベントの場合、このフィールドの値は BOOTREPLY に設定されます。 |
|
| network.dhcp.type | Connected イベントの場合、このフィールドの値は ACK に設定されます。 |
|
| network.direction | このフィールドの値は、Anti Malware イベントと URL Filtering イベントでは OUTBOUND に設定されます。 |
|
| security_result.action | action フィールドが BLOCK でない場合、このフィールドの値は ALLOW に設定されます。それ以外の場合は BLOCK に設定されます。 |
|
| event_type | metadata.description | このフィールドの値は event_type フィールドから取得されます。 |
さらにサポートが必要な場合 コミュニティ メンバーや Google SecOps のプロフェッショナルから回答を得ることができます。