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 > Get Started
Google Cloud NGFW Enterprise フィードを設定する方法
- [Google Cloud Compute platform] パックをクリックします。
- [GCP NGFW Enterprise] ログタイプを見つけます。
- [次へ] をクリックします。
次のフィールドに値を指定します。
- ソースタイプ: Google Cloud Storage V2
- Storage Bucket URI: Google Cloud ストレージ バケットの URL(例:
gs://gcp-ngfw-logs/
)。この URL は、末尾にスラッシュ(/)が付いている必要があります。 Source deletion options: 必要に応じて削除オプションを選択します。
ファイルの最大経過日数: 指定した日数以内に変更されたファイルを含めます。デフォルトは 180 日です。
[Chronicle Service Account] フィールドの横にある [Get a Service Account] をクリックします。
詳細オプション
- フィード名: フィードを識別する事前入力された値。
- Asset Namespace: フィードに関連付けられた名前空間。
- 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 のプロフェッショナルから回答を得ることができます。