Cloud Next Generation Firewall ログを収集する
このドキュメントでは、 Google Cloudを使用して Cloud NGFW ログをエクスポートし、Google Security Operations に取り込む方法について説明します。パーサーは Google Cloud ファイアウォール ログからフィールドを抽出し、変換して UDM にマッピングします。接続の詳細、脅威情報、ルール詳細、ネットワーク情報など、さまざまなログフィールドを処理します。action
フィールドと direction
フィールドに基づいてデータ型の変換、名前の変更、条件付きロジックを実行し、UDM モデルに正しくデータを入力します。
始める前に
次の前提条件を満たしていることを確認します。
- Google SecOps インスタンス。
- Cloud NGFW がアクティブで、 Google Cloud 環境で構成されている。
- Google Cloud への特権アクセスと、Cloud NGFW ログにアクセスするための適切な権限。
Cloud Storage バケットを作成する
- Google Cloud コンソールにログインします。
[Cloud Storage バケット] のページに移動します。
[作成] をクリックします。
[バケットの作成] ページでユーザーのバケット情報を入力します。以下のステップでは、操作を完了した後に [続行] をクリックして、次のステップに進みます。
[始める] セクションで、次の操作を行います。
- バケット名の要件を満たす一意の名前を入力します(例: gcp-ngfw-logs)。
階層名前空間を有効にするには、展開矢印をクリックして [Optimize for file oriented and data-intensive workloads] セクションを開き、[このバケットで階層的な名前空間を有効にする] を選択します。
バケットラベルを追加するには、展開矢印をクリックして [ラベル] セクションを開きます。
[ラベルを追加] をクリックし、ラベルのキーと値を指定します。
[データの保存場所の選択] セクションで、次の操作を行います。
- ロケーション タイプを選択してください。
ロケーション タイプのメニューを使用して、バケット内のオブジェクト データが永続的に保存されるロケーションを選択します。
クロスバケット レプリケーションを設定するには、[クロスバケット レプリケーションを設定する] セクションを開きます。
[データのストレージ クラスを選択する] セクションで、バケットのデフォルトのストレージ クラスを選択します。あるいは、Autoclass を選択して、バケットデータのストレージ クラスを自動的に管理します。
[オブジェクトへのアクセスを制御する方法を選択する] セクションで、[なし] を選択して公開アクセスの防止を適用し、バケットのオブジェクトの [アクセス制御モデル] を選択します。
[オブジェクト データを保護する方法を選択する] セクションで、次の操作を行います。
- [データ保護] で、バケットに設定するオプションを選択します。
- オブジェクト データの暗号化方法を選択するには、[データ暗号化] というラベルの付いた展開矢印をクリックし、データの暗号化方法を選択します。
[作成] をクリックします。
Cloud NGFW ログのエクスポートを構成する
- Google Cloud コンソールにログインします。
- [ロギング>ログルーター] に移動します。
- [シンクを作成] をクリックします。
次の構成パラメータを指定します。
- シンク名: わかりやすい名前を入力します(例:
NGFW-Export-Sink
)。 - [シンクの宛先]: [Google Cloud Storage] を選択し、バケットの URI(
gs://gcp-ngfw-logs
など)を入力します。 ログフィルタ:
logName="projects/<your-project-id>/logs/gcp-firewall"
- シンク名: わかりやすい名前を入力します(例:
[作成] をクリックします。
Cloud Storage の権限を構成する
- [IAM と管理] > [IAM] に移動します。
- Cloud Logging サービス アカウントを見つけます。
- バケットに対する roles/storage.admin を付与します。
フィードを設定する
Google SecOps プラットフォームでフィードを設定するには、次の 2 つのエントリ ポイントがあります。
- [SIEM 設定] > [フィード]
- [Content Hub] > [Content Packs]
[SIEM 設定] > [フィード] でフィードを設定する
フィードを構成する手順は次のとおりです。
- [SIEM Settings] > [Feeds] に移動します。
- [Add New Feed] をクリックします。
- 次のページで [単一のフィードを設定] をクリックします。
- [フィード名] フィールドに、フィードの名前を入力します(例: GCP NGFW Enterprise Logs)。
- [Source type] として [Google Cloud Storage] を選択します。
- [ログタイプ] として [GCP NGFW Enterprise] を選択します。
- [Chronicle Service Account] フィールドの横にある [サービス アカウントを取得する] をクリックします。
- [次へ] をクリックします。
次の入力パラメータの値を指定します。
- Storage Bucket URI: Google Cloud ストレージ バケットの URL(例:
gs://gcp-ngfw-logs
)。 - URI Is A: [サブディレクトリを含むディレクトリ] を選択します。
Source deletion options: 必要に応じて削除オプションを選択します。
- Storage Bucket URI: Google Cloud ストレージ バケットの URL(例:
[次へ] をクリックします。
[Finalize] 画面で新しいフィードの設定を確認し、[送信] をクリックします。
コンテンツ ハブからフィードを設定する
次のフィールドに値を指定します。
- Storage Bucket URI: Google Cloud ストレージ バケットの URL(例:
gs://gcp-ngfw-logs
)。 - URI Is A: [サブディレクトリを含むディレクトリ] を選択します。
- Source deletion options: 必要に応じて削除オプションを選択します。
詳細オプション
- フィード名: フィードを識別する事前入力された値。
- ソースタイプ: Google SecOps にログを収集するために使用される方法。
- アセットの名前空間: フィードに関連付けられた名前空間。
- Ingestion Labels: このフィードのすべてのイベントに適用されるラベル。
UDM マッピング テーブル
ログフィールド | UDM マッピング | 論理 |
---|---|---|
insertId |
metadata.product_log_id |
insertId フィールドから直接マッピングされます。 |
jsonPayload.action |
security_result.action_details |
jsonPayload.action フィールドから直接マッピングされます。 |
jsonPayload.connection.clientIp |
principal.asset.ip |
jsonPayload.connection.clientIp フィールドから直接マッピングされます。 |
jsonPayload.connection.clientIp |
principal.ip |
jsonPayload.connection.clientIp フィールドから直接マッピングされます。 |
jsonPayload.connection.clientPort |
principal.port |
jsonPayload.connection.clientPort フィールドから直接マッピングされ、整数に変換されます。 |
jsonPayload.connection.protocol |
network.ip_protocol |
jsonPayload.connection.protocol からマッピングされます。値が tcp の場合、UDM フィールドは TCP に設定されます。udp 、icmp 、igmp にも同様のロジックが適用されます。 |
jsonPayload.connection.serverIp |
target.asset.ip |
jsonPayload.connection.serverIp フィールドから直接マッピングされます。 |
jsonPayload.connection.serverIp |
target.ip |
jsonPayload.connection.serverIp フィールドから直接マッピングされます。 |
jsonPayload.connection.serverPort |
target.port |
jsonPayload.connection.serverPort フィールドから直接マッピングされ、整数に変換されます。 |
jsonPayload.interceptVpc.projectId |
security_result.rule_labels |
キー rule_details_projectId を持つ jsonPayload.interceptVpc.projectId からマッピングされます。 |
jsonPayload.interceptVpc.vpc |
security_result.rule_labels |
キー rule_details_vpc_network を持つ jsonPayload.interceptVpc.vpc からマッピングされます。 |
jsonPayload.securityProfileGroupDetails.securityProfileGroupId |
security_result.rule_labels |
キー rule_details_security_profile_group を持つ jsonPayload.securityProfileGroupDetails.securityProfileGroupId からマッピングされます。 |
jsonPayload.securityProfileGroupDetails.securityProfileGroupId |
security_result.rule_labels |
キー rule_details_securityProfileGroupDetails_id を持つ jsonPayload.securityProfileGroupDetails.securityProfileGroupId からマッピングされます。 |
jsonPayload.threatDetails.category |
security_result.rule_labels |
キー rule_details_category を持つ jsonPayload.threatDetails.category からマッピングされます。 |
jsonPayload.threatDetails.direction |
security_result.rule_labels |
キー rule_details_direction を持つ jsonPayload.threatDetails.direction からマッピングされます。 |
jsonPayload.threatDetails.id |
security_result.threat_id |
jsonPayload.threatDetails.id フィールドから直接マッピングされます。 |
jsonPayload.threatDetails.severity |
security_result.severity |
jsonPayload.threatDetails.severity からマッピングされます。値が CRITICAL の場合、UDM フィールドは CRITICAL に設定されます。同様のロジックが HIGH 、MEDIUM 、LOW 、INFO にも適用されます。 |
jsonPayload.threatDetails.threat |
security_result.threat_name |
jsonPayload.threatDetails.threat フィールドから直接マッピングされます。 |
jsonPayload.threatDetails.type |
security_result.rule_labels |
キー rule_details_threat_type を持つ jsonPayload.threatDetails.type からマッピングされます。 |
jsonPayload.threatDetails.uriOrFilename |
security_result.rule_labels |
キー rule_details_uriOrFilename を持つ jsonPayload.threatDetails.uriOrFilename からマッピングされます。 |
logName |
metadata.product_event_type |
logName フィールドから直接マッピングされます。 |
metadata.collected_timestamp |
metadata.collected_timestamp |
receiveTimestamp フィールドから直接マッピングされ、指定された日付形式を使用して解析されます。 |
metadata.event_type |
metadata.event_type |
principal_ip と target_ip の両方が存在する場合は、NETWORK_CONNECTION に設定されます。principal_ip のみ存在する場合は STATUS_UNCATEGORIZED に設定します。それ以外の場合は GENERIC_EVENT に設定します。 |
metadata.product_name |
metadata.product_name |
GCP Firewall にハードコードされています。 |
metadata.vendor_name |
metadata.vendor_name |
Google Cloud Platform にハードコードされています。 |
receiveTimestamp |
metadata.collected_timestamp |
receiveTimestamp フィールドから直接マッピングされます。 |
security_result.action |
security_result.action |
jsonPayload.action フィールドから取得されます。jsonPayload.action の値に基づいて ALLOW 、BLOCK 、または UNKNOWN_ACTION にマッピングされます。 |
timestamp |
metadata.event_timestamp |
timestamp フィールドから直接マッピングされます。 |
timestamp |
timestamp |
timestamp フィールドから直接マッピングされます。 |
さらにサポートが必要な場合 コミュニティ メンバーや Google SecOps のプロフェッショナルから回答を得ることができます。