Cloud Intrusion Detection System(Cloud IDS)ログを収集する

以下でサポートされています。

このドキュメントでは、Cloud Storage を使用して Cloud IDS ログをエクスポートし、Google Security Operations に取り込む方法について説明します。パーサーは、未加工の JSON 形式の Cloud IDS ログを Google Cloud から構造化 UDM 形式に変換します。関連するフィールドを抽出し、UDM スキーマにマッピングして、イベントを分類します。また、ネットワークの方向やリソースタイプなどの追加コンテキストでデータを拡充します。

始める前に

  • Google SecOps インスタンスがあることを確認します。
  • 環境で Cloud IDS が設定され、アクティブになっていることを確認します。 Google Cloud
  • Cloud IDS への特権アクセス権と適切な権限があることを確認します。 Google Cloud

Cloud Storage バケットを作成する

  1. Google Cloud コンソールにログインします。
  2. [Cloud Storage バケット] のページに移動します。

    [バケット] に移動

  3. [作成] をクリックします。

  4. [バケットの作成] ページでユーザーのバケット情報を入力します。以下のステップでは、操作を完了した後に [続行] をクリックして、次のステップに進みます。

    1. [始める] セクションで、次の操作を行います。

      1. バケット名の要件を満たす一意の名前を入力します(例: gcp-ids-logs)。
      2. 階層名前空間を有効にするには、展開矢印をクリックして [Optimize for file oriented and data-intensive workloads] セクションを開き、[このバケットで階層的な名前空間を有効にする] を選択します。

      3. バケットラベルを追加するには、展開矢印をクリックして [ラベル] セクションを開きます。

      4. [ラベルを追加] をクリックし、ラベルのキーと値を指定します。

    2. [データの保存場所の選択] セクションで、次の操作を行います。

      1. ロケーション タイプを選択してください。
      2. ロケーション タイプのメニューを使用して、バケット内のオブジェクト データが永続的に保存されるロケーションを選択します。

      3. クロスバケット レプリケーションを設定するには、[クロスバケット レプリケーションを設定する] セクションを開きます。

    3. [データのストレージ クラスを選択する] セクションで、バケットのデフォルトのストレージ クラスを選択します。あるいは、Autoclass を選択して、バケットデータのストレージ クラスを自動的に管理します。

    4. [オブジェクトへのアクセスを制御する方法を選択する] セクションで、[なし] を選択して公開アクセスの防止を適用し、バケットのオブジェクトの [アクセス制御モデル] を選択します。

    5. [オブジェクト データを保護する方法を選択する] セクションで、次の操作を行います。

      1. [データ保護] で、バケットに設定するオプションを選択します。
      2. オブジェクト データの暗号化方法を選択するには、[データ暗号化] というラベルの付いた展開矢印をクリックし、データの暗号化方法を選択します。
  5. [作成] をクリックします。

Cloud IDS ログのエクスポートを構成する

  1. Google Cloud コンソールにログインします。
  2. [ロギング] > [ログルーター] に移動します。
  3. [シンクを作成] をクリックします。
  4. 次の構成パラメータを指定します。

    • シンク名: わかりやすい名前を入力します(例: google-cloud-ids-logs-sink)。
    • シンク デスティネーション: [Cloud Storage] を選択し、 Google Cloud ストレージ バケット URI(gs://gcp-ids-logs など)を指定します。
    • ログフィルタ:

      logName="projects/<your-project-id>/logs/cloud-ids"
      
  5. [作成] をクリックします。

Cloud Storage の権限を構成する

  1. [IAM と管理] > [IAM] に移動します。
  2. Cloud Logging サービス アカウントを見つけます。
  3. バケットに対する roles/storage.admin を付与します。

Cloud IDS ログを取り込むように Google SecOps でフィードを構成する

  1. [SIEM 設定] > [フィード] に移動します。
  2. [新しく追加] をクリックします。
  3. [フィード名] フィールドに、フィードの名前を入力します(例: GCP IDS Logs)。
  4. [Source type] として [Google Cloud Storage] を選択します。
  5. [ログタイプ] として [GCP IDS] を選択します。
  6. [Chronicle Service Account] フィールドの横にある [Get Service Account] をクリックします。
  7. [次へ] をクリックします。
  8. 次の入力パラメータの値を指定します。

    • ストレージ バケット URI: Cloud Storage バケットの URL(gs://gcp-ids-logs など)。
    • URI Is A: [サブディレクトリを含むディレクトリ] を選択します。
    • Source deletion options: 必要に応じて削除オプションを選択します。

    • Asset namespace: アセットの名前空間

    • Ingestion labels: このフィードのイベントに適用されるラベル。

  9. [次へ] をクリックします。

  10. [Finalize] 画面で新しいフィードの設定を確認し、[送信] をクリックします。

UDM マッピング テーブル

ログフィールド UDM マッピング ロジック
insertId metadata.product_log_id 直接マッピング。
jsonPayload.alert_severity security_result.severity 直接マッピング。
jsonPayload.alert_time metadata.event_timestamp 直接マッピング。
jsonPayload.application principal.application 直接マッピング(方向がサーバーからクライアントの場合のみ)。
jsonPayload.application target.application 直接マッピング(方向がクライアントからサーバーの場合、または logName に traffic が含まれている場合に限る)。
jsonPayload.category security_result.category 「jsonPayload.category」の値に基づいてマッピングされます。
- 'dos': NETWORK_DENIAL_OF_SERVICE
- 'info-leak': NETWORK_SUSPICIOUS
- 'protocol-anomaly': NETWORK_MALICIOUS
- 'backdoor'、'spyware'、'trojan': SOFTWARE_MALICIOUS
jsonPayload.category security_result.category_details 直接マッピング。
jsonPayload.cves extensions.vulns.vulnerabilities.cve_id 直接マッピング、配列を反復処理。
jsonPayload.destination_ip_address target.ip 直接マッピング。
jsonPayload.destination_port target.port 直接マッピング。
jsonPayload.details extensions.vulns.vulnerabilities.description 直接マッピング。
jsonPayload.details security_result.detection_fields.value 「jsonPayload.repeat_count」が存在する場合にマッピングされます。キーは「repeat_count」に設定されます。
jsonPayload.direction network.direction 「jsonPayload.direction」の値に基づいてマッピングされます。
- 'client-to-server': OUTBOUND
- 'server-to-client': INBOUND
jsonPayload.elapsed_time network.session_duration.seconds 直接マッピング。
jsonPayload.ip_protocol network.ip_protocol 直接マッピング、大文字に変換してからプロトコル番号にマッピング。
jsonPayload.name security_result.threat_name 直接マッピング。
jsonPayload.network principal.resource.name 直接マッピング(方向がサーバーからクライアントの場合のみ)。
jsonPayload.network target.resource.name 直接マッピング(方向がクライアントからサーバーの場合、または logName に traffic が含まれている場合に限る)。
jsonPayload.repeat_count security_result.detection_fields.value 存在する場合はマッピングされます。キーは「repeat_count」に設定されます。
jsonPayload.session_id network.session_id 直接マッピング。
jsonPayload.source_ip_address principal.ip 直接マッピング。
jsonPayload.source_port principal.port 直接マッピング。
jsonPayload.start_time about.labels.value 存在する場合はマッピングされます。キーは「start_time」に設定されます。
jsonPayload.start_time additional.fields.value.string_value 存在する場合はマッピングされます。キーは「start_time」に設定されます。
jsonPayload.threat_id security_result.threat_id 直接マッピング。
jsonPayload.total_bytes about.labels.value 存在する場合はマッピングされます。キーは「total_bytes」に設定されます。
jsonPayload.total_bytes additional.fields.value.string_value 存在する場合はマッピングされます。キーは「total_bytes」に設定されます。
jsonPayload.total_packets about.labels.value 存在する場合はマッピングされます。キーは「total_packets」に設定されます。
jsonPayload.total_packets additional.fields.value.string_value 存在する場合はマッピングされます。キーは「total_packets」に設定されます。
jsonPayload.type security_result.detection_fields.value 存在する場合はマッピングされます。キーが「type」に設定されます。
jsonPayload.uri_or_filename target.file.full_path 直接マッピング。
logName security_result.category_details 直接マッピング。
receiveTimestamp metadata.collected_timestamp 直接マッピング。
resource.labels.id observer.resource.product_object_id 直接マッピング。
resource.labels.location observer.location.name 直接マッピング。
resource.labels.resource_container observer.resource.name 直接マッピング。
resource.type observer.resource.resource_subtype 直接マッピング。
metadata.event_type 他のフィールドの存在と値に基づく一連の条件ルールによって決定されます。デフォルトは「GENERIC_EVENT」です。
metadata.vendor_name 静的値: Google Cloud Platform
metadata.product_name 静的値: GCP_IDS
metadata.log_type 静的値: GCP_IDS
extensions.vulns.vulnerabilities.vendor 静的値: GCP_IDS。jsonPayload.cves の CVE ごとに追加されます。
principal.resource.resource_type 静的値: VPC_NETWORK。jsonPayload.network が存在し、方向がサーバーからクライアントの場合に追加されます。
target.resource.resource_type 静的値: VPC_NETWORK。jsonPayload.network が存在し、方向がクライアントからサーバーまたは logName に traffic が含まれている場合に追加されます。
observer.resource.resource_type 静的値: CLOUD_PROJECT。resource.labels.resource_container または resource.type が存在する場合に追加されます。
observer.resource.attribute.cloud.environment 静的値: GOOGLE_CLOUD_PLATFORM。resource.labels.resource_container または resource.type が存在する場合に追加されます。
is_alert 「jsonPayload.alert_severity」が「CRITICAL」の場合は true、それ以外の場合は false。
is_significant 「jsonPayload.alert_severity」が「CRITICAL」の場合は true、それ以外の場合は false。

変更点

2024-05-01

  • 非推奨の noun.labels の追加マッピングを追加しました。

2023-12-13

  • GCP_IDS パーサーをデフォルトに昇格しました。

さらにサポートが必要な場合 コミュニティ メンバーや Google SecOps のプロフェッショナルから回答を得ることができます。