Security Command Center の未指定ログを収集する

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

このドキュメントでは、Cloud Storage を使用して Security Command Center の Unspecified ログをエクスポートし、Google Security Operations に取り込む方法について説明します。パーサーは、未加工の JSON 形式のセキュリティ検出結果を統合データモデル(UDM)に変換します。入力データ構造の不整合を処理し、脆弱性の詳細やユーザー情報などの関連フィールドを抽出し、分析と関連付けを改善するためにラベルとメタデータで出力を拡充します。

始める前に

次の前提条件を満たしていることを確認します。

  • Security Command Center が Google Cloud 環境で有効になり、構成されている。
  • Google SecOps インスタンス。
  • Security Command Center と Cloud Logging への特権アクセス。

Cloud Storage バケットを作成する

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

    [バケット] に移動

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

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

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

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

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

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

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

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

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

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

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

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

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

Security Command Center のロギングを構成する

  1. Google Cloud コンソールにログインします。
  2. [Security Command Center] ページに移動します。

    Security Command Center に移動

  3. 組織を選択する。

  4. [設定] をクリックします。

  5. [継続的エクスポート] タブをクリックします。

  6. [エクスポート名] で [Logging エクスポート] をクリックします。

  7. [シンク] で、[検出を Logging にロギング] をオンにします。

  8. [ロギング プロジェクト] で、検出結果を記録するプロジェクトを入力または検索します。

  9. [保存] をクリックします。

Security Command Center の未指定ログのエクスポートを構成する

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

    • シンク名: わかりやすい名前を入力します(例: scc-unspecified-logs-sink)。
    • シンクの宛先: [Cloud Storage] を選択し、バケットの URI(例: gs://gcp-scc-unspecified-logs)を入力します。
    • ログフィルタ:

      logName="projects/<your-project-id>/logs/cloudsecurityscanner.googleapis.com%2Funspecified"
      resource.type="security_command_center_unspecified"
      
    • エクスポート オプションを設定: すべてのログエントリを含めます。

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

Cloud Storage の権限を構成する

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

フィードを設定する

Google SecOps プラットフォームでフィードを設定するには、次の 2 つのエントリ ポイントがあります。

  • [SIEM 設定] > [フィード]
  • [Content Hub] > [Content Packs]

[SIEM 設定] > [フィード] でフィードを設定する

フィードを構成する手順は次のとおりです。

  1. [SIEM Settings] > [Feeds] に移動します。
  2. [Add New Feed] をクリックします。
  3. 次のページで [単一のフィードを設定] をクリックします。
  4. [フィード名] フィールドに、フィードの名前を入力します(例: Security Command Center Unspecified logs)。
  5. [Source type] として [Google Cloud Storage] を選択します。
  6. [ログタイプ] として [Security Command Center Unspecified] を選択します。
  7. [Chronicle Service Account] フィールドの横にある [サービス アカウントを取得する] をクリックします。
  8. [次へ] をクリックします。
  9. 次の入力パラメータの値を指定します。

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

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

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

コンテンツ ハブからフィードを設定する

次のフィールドに値を指定します。

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

詳細オプション

  • フィード名: フィードを識別する事前入力された値。
  • ソースタイプ: Google SecOps にログを収集するために使用される方法。
  • アセットの名前空間: フィードに関連付けられた名前空間。
  • Ingestion Labels: このフィードのすべてのイベントに適用されるラベル。

UDM マッピング テーブル

ログフィールド UDM マッピング ロジック
canonicalName read_only_udm.target.resource_ancestors.name 未加工ログのフィールド canonicalName から直接マッピングされます。これは、ターゲット リソースの祖先を表します。
category read_only_udm.metadata.product_event_type 未加工ログのフィールド category から直接マッピングされます。
category read_only_udm.metadata.event_type category フィールドから取得されます。カテゴリが OPEN_FIREWALL で、特定の条件が満たされている場合は、SCAN_VULN_HOST にマッピングされます。それ以外の場合は、デフォルトで GENERIC_EVENT になります。
category read_only_udm.security_result.category 未加工ログのフィールド category からマッピングされます。カテゴリが OPEN_FIREWALL の場合、POLICY_VIOLATION にマッピングされます。
complies.ids read_only_udm.additional.fields.value.string_value 未加工ログのフィールド complies.ids から直接マッピングされます。コンプライアンス ID を表します。
complies.standard read_only_udm.additional.fields.value.string_value 未加工ログのフィールド complies.standard から直接マッピングされます。コンプライアンス標準を表します。
complies.standard read_only_udm.about.labels.value 未加工ログのフィールド complies.standard から直接マッピングされます。コンプライアンス標準を表します。
contacts.security.contacts.email read_only_udm.security_result.about.user.email_addresses 未加工ログのフィールド contacts.security.contacts.email から直接マッピングされます。セキュリティ連絡先のメールアドレスを表します。
contacts.technical.contacts.email read_only_udm.security_result.about.user.email_addresses 未加工ログのフィールド contacts.technical.contacts.email から直接マッピングされます。技術担当者のメールアドレスを表します。
createTime read_only_udm.security_result.detection_fields.value 未加工ログのフィールド createTime から直接マッピングされます。
eventTime read_only_udm.metadata.event_timestamp タイムスタンプに変換された後、未加工ログの eventTime フィールドから直接マッピングされます。
externalUri read_only_udm.about.url 未加工ログのフィールド externalUri から直接マッピングされます。
ミュート read_only_udm.security_result.detection_fields.value 未加工ログのフィールド mute から直接マッピングされます。
muteInitiator read_only_udm.security_result.detection_fields.value 未加工ログのフィールド muteInitiator から直接マッピングされます。
muteUpdateTime read_only_udm.security_result.detection_fields.value 未加工ログのフィールド muteUpdateTime から直接マッピングされます。
name read_only_udm.target.resource.attribute.labels.value 未加工ログのフィールド name から直接マッピングされます。これは検出結果 ID として使用されます。
read_only_udm.target.resource_ancestors.name 未加工ログのフィールド parent から直接マッピングされます。
parentDisplayName read_only_udm.metadata.description 未加工ログのフィールド parentDisplayName から直接マッピングされます。
resourceName read_only_udm.target.resource.name 未加工ログのフィールド resourceName から直接マッピングされます。
重要度 read_only_udm.security_result.severity 未加工ログのフィールド severity から直接マッピングされます。
sourceDisplayName read_only_udm.target.resource.attribute.labels.value 未加工ログのフィールド sourceDisplayName から直接マッピングされます。
sourceProperties.AllowedIpRange read_only_udm.target.resource.attribute.labels.value 未加工ログのフィールド sourceProperties.AllowedIpRange から直接マッピングされます。
sourceProperties.ExternallyAccessibleProtocolsAndPorts.IPProtocol read_only_udm.target.resource.attribute.labels.value 未加工ログのフィールド sourceProperties.ExternallyAccessibleProtocolsAndPorts.IPProtocol から直接マッピングされます。
sourceProperties.ExternallyAccessibleProtocolsAndPorts.ports read_only_udm.target.resource.attribute.labels.value 未加工ログのフィールド sourceProperties.ExternallyAccessibleProtocolsAndPorts.ports から直接マッピングされます。
sourceProperties.ReactivationCount read_only_udm.target.resource.attribute.labels.value 未加工ログのフィールド sourceProperties.ReactivationCount から直接マッピングされます。
sourceProperties.ResourcePath read_only_udm.target.resource.attribute.labels.value 未加工ログのフィールド sourceProperties.ResourcePath から直接マッピングされます。値は 1 つの文字列に連結されます。
sourceProperties.ScannerName read_only_udm.additional.fields.value.string_value 未加工ログのフィールド sourceProperties.ScannerName から直接マッピングされます。
sourceProperties.ScannerName read_only_udm.principal.labels.value 未加工ログのフィールド sourceProperties.ScannerName から直接マッピングされます。
state read_only_udm.security_result.detection_fields.value 未加工ログのフィールド state から直接マッピングされます。
read_only_udm.metadata.log_type パーサーコードで GCP_SECURITYCENTER_UNSPECIFIED にハードコードされます。
read_only_udm.metadata.product_log_id name フィールドから抽出された検出結果 ID。
read_only_udm.metadata.product_name パーサーコードで Security Command Center にハードコードされます。
read_only_udm.metadata.vendor_name パーサーコードで Google にハードコードされます。
read_only_udm.security_result.about.investigation.status パーサーコードで NEW にハードコードされます。
read_only_udm.security_result.alert_state パーサーコードで NOT_ALERTING にハードコードされます。
read_only_udm.security_result.url_back_to_product パーサーコードで https://console.cloud.google.com/security/command-center/findingsv2;name=organizations%2F{organization_id}%2Fsources%2F{source_id}%2Ffindings%2F{finding_id} 形式を使用して構築されます。
read_only_udm.target.resource.product_object_id 未加工ログの parent フィールドから抽出され、ソース ID を表します。
read_only_udm.target.resource.resource_type パーサーコードで CLUSTER に設定されます。
read_only_udm.target.resource_ancestors.resource_type パーサーコードで CLOUD_PROJECT にハードコードされます。
read_only_udm.target.resource_ancestors.name 未加工のログの resourceName フィールドから抽出され、プロジェクト ID を表します。
read_only_udm.additional.fields.key ハードコードされたキー(compliances_id_0_0compliances_standard_0sourceProperties_ScannerName)を使用して、複数のインスタンスが作成されます。
read_only_udm.about.labels.key パーサーコードで compliances_standardcompliances_id にハードコードされます。
read_only_udm.principal.labels.key パーサーコードで sourceProperties_ScannerName にハードコードされます。
read_only_udm.target.resource.attribute.labels.key ハードコードされたキー(finding_idsource_idsourceProperties_ResourcePathsourceDisplayNamesourceProperties_ReactivationCountsourceProperties_AllowedIpRangesourceProperties_ExternallyAccessibleProtocolsAndPorts_IPProtocolsourceProperties_ExternallyAccessibleProtocolsAndPorts_ports)を使用して、複数のインスタンスが作成されます。
read_only_udm.security_result.about.user.attribute.roles.name 未加工ログの contacts フィールドに基づいて、値が Security のインスタンスと Technical のインスタンスの 2 つが作成されます。
read_only_udm.security_result.detection_fields.key ハードコードされたキー(mutemute_update_timemute_initiatorcreateTimestate)を使用して、複数のインスタンスが作成されます。

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