Security Command Center のエラーログを収集する
このドキュメントでは、Cloud Storage を使用して Security Command Center のエラーログをエクスポートし、Google Security Operations に取り込む方法について説明します。パーサーは、未加工の JSON 形式のログを統合データモデル(UDM)に変換します。未加工のログから関連するフィールドを抽出し、データのクリーニングと正規化を行い、一貫したセキュリティ分析のために UDM スキーマに従って出力を構造化します。
始める前に
次の前提条件を満たしていることを確認します。
- Security Command Center が Google Cloud 環境で有効になり、構成されている。
- Google SecOps インスタンス。
- Security Command Center と Cloud Logging への特権アクセス。
Cloud Storage バケットを作成する
- Google Cloud コンソールにログインします。
[Cloud Storage バケット] のページに移動します。
[作成] をクリックします。
[バケットの作成] ページでユーザーのバケット情報を入力します。以下のステップでは、操作を完了した後に [続行] をクリックして、次のステップに進みます。
[始める] セクションで、次の操作を行います。
- バケット名の要件を満たす一意の名前を入力します(例: gcp-scc-error-logs)。
階層名前空間を有効にするには、展開矢印をクリックして [Optimize for file oriented and data-intensive workloads] セクションを開き、[このバケットで階層的な名前空間を有効にする] を選択します。
バケットラベルを追加するには、展開矢印をクリックして [ラベル] セクションを開きます。
[ラベルを追加] をクリックし、ラベルのキーと値を指定します。
[データの保存場所の選択] セクションで、次の操作を行います。
- ロケーション タイプを選択してください。
ロケーション タイプのメニューを使用して、バケット内のオブジェクト データが永続的に保存されるロケーションを選択します。
クロスバケット レプリケーションを設定するには、[クロスバケット レプリケーションを設定する] セクションを開きます。
[データのストレージ クラスを選択する] セクションで、バケットのデフォルトのストレージ クラスを選択します。あるいは、Autoclass を選択して、バケットデータのストレージ クラスを自動的に管理します。
[オブジェクトへのアクセスを制御する方法を選択する] セクションで、[なし] を選択して公開アクセスの防止を適用し、バケットのオブジェクトの [アクセス制御モデル] を選択します。
[オブジェクト データを保護する方法を選択する] セクションで、次の操作を行います。
- [データ保護] で、バケットに設定するオプションを選択します。
- オブジェクト データの暗号化方法を選択するには、[データ暗号化] というラベルの付いた展開矢印をクリックし、データの暗号化方法を選択します。
[作成] をクリックします。
Security Command Center のロギングを構成する
- Google Cloud コンソールにログインします。
[Security Command Center] ページに移動します。
組織を選択する。
[設定] をクリックします。
[継続的エクスポート] タブをクリックします。
[エクスポート名] で [Logging エクスポート] をクリックします。
[シンク] で、[検出を Logging にロギング] をオンにします。
[ロギング プロジェクト] で、検出結果を記録するプロジェクトを入力または検索します。
[保存] をクリックします。
Security Command Center のエラーログのエクスポートを構成する
- Google Cloud コンソールにログインします。
- [ロギング>ログルーター] に移動します。
- [シンクを作成] をクリックします。
次の構成パラメータを指定します。
- シンク名: わかりやすい名前を入力します(例:
scc-error-logs-sink
)。 - シンクの宛先: [Cloud Storage] を選択し、バケットの URI(例:
gs://gcp-scc-error-logs
)を入力します。 ログフィルタ:
logName="projects/<your-project-id>/logs/cloudsecurityscanner.googleapis.com%2Ferror_logs" resource.type="security_command_center_error"
エクスポート オプションを設定: すべてのログエントリを含めます。
- シンク名: わかりやすい名前を入力します(例:
[作成] をクリックします。
Cloud Storage の権限を構成する
- [IAM と管理] > [IAM] に移動します。
- Cloud Logging サービス アカウントを見つけます。
- バケットに対する roles/storage.admin を付与します。
フィードを設定する
Google SecOps プラットフォームでフィードを設定するには、次の 2 つのエントリ ポイントがあります。
- [SIEM 設定] > [フィード]
- [Content Hub] > [Content Packs]
[SIEM 設定] > [フィード] でフィードを設定する
フィードを構成する手順は次のとおりです。
- [SIEM Settings] > [Feeds] に移動します。
- [Add New Feed] をクリックします。
- 次のページで [単一のフィードを設定] をクリックします。
- [フィード名] フィールドに、フィードの名前を入力します(例: Security Command Center エラーログ)。
- [Source type] として [Google Cloud Storage] を選択します。
- [ログタイプ] として [Security Command Center Error] を選択します。
- [Chronicle Service Account] フィールドの横にある [サービス アカウントを取得する] をクリックします。
- [次へ] をクリックします。
次の入力パラメータの値を指定します。
- ストレージ バケット URI: Cloud Storage バケットの URL(例:
gs://gcp-scc-error-logs
)。 - URI Is A: [サブディレクトリを含むディレクトリ] を選択します。
Source deletion options: 必要に応じて削除オプションを選択します。
- ストレージ バケット URI: Cloud Storage バケットの URL(例:
[次へ] をクリックします。
[Finalize] 画面で新しいフィードの設定を確認し、[送信] をクリックします。
コンテンツ ハブからフィードを設定する
次のフィールドに値を指定します。
- ストレージ バケット URI: Cloud Storage バケットの URL(例:
gs://gcp-scc-error-logs
)。 - URI Is A: [サブディレクトリを含むディレクトリ] を選択します。
- Source deletion options: 必要に応じて削除オプションを選択します。
詳細オプション
- フィード名: フィードを識別する事前入力された値。
- ソースタイプ: Google SecOps にログを収集するために使用される方法。
- アセットの名前空間: フィードに関連付けられた名前空間。
- Ingestion Labels: このフィードのすべてのイベントに適用されるラベル。
UDM マッピング テーブル
ログフィールド | UDM マッピング | ロジック |
---|---|---|
access.principalEmail | about.user.email_addresses | access.principalEmail フィールドから取得された値。 |
category | metadata.product_event_type | ログ形式に応じて、category フィールドまたは findings.category フィールドから取得された値。 |
contacts.security.contacts.email | security_result.about.user.email_addresses | 値は contacts.security.contacts.email フィールドから取得されます。ロールは Security に設定されています。 |
contacts.technical.contacts.email | security_result.about.user.email_addresses | 値は contacts.technical.contacts.email フィールドから取得されます。ロールは Technical に設定されています。 |
createTime | security_result.detection_fields.value | ログ形式に応じて、createTime フィールドまたは findings.createTime フィールドから取得された値。キーは createTime に設定されます。 |
説明 | security_result.description | ログ形式に応じて、description フィールドまたは findings.description フィールドから取得された値。 |
eventTime | metadata.event_timestamp | ログ形式に応じて eventTime フィールドまたは findings.eventTime フィールドから取得された値が、タイムスタンプに変換されます。 |
externalUri | about.url | ログ形式に応じて、externalUri フィールドまたは findings.externalUri フィールドから取得された値。 |
findingClass | security_result.category_details | ログ形式に応じて、findingClass フィールドまたは findings.findingClass フィールドから取得された値。 |
findingProviderId | target.resource.attribute.labels.value | ログ形式に応じて、findingProviderId フィールドまたは findings.findingProviderId フィールドから取得された値。キーは finding_provider_id に設定されます。 |
ミュート | security_result.detection_fields.value | ログ形式に応じて、mute フィールドまたは findings.mute フィールドから取得された値。キーは mute に設定されます。 |
nextSteps | security_result.outcomes.value | ログ形式に応じて、nextSteps フィールドまたは findings.nextSteps フィールドから取得された値。キーは nextSteps に設定されます。 |
resourceName | target.resource.name | ログ形式に応じて、resourceName 、findings.resourceName 、resource_name 、findings.resource_name フィールドから取得された値。 |
securityMarks.name | security_result.detection_fields.value | ログ形式に応じて、securityMarks.name フィールドまたは findings.securityMarks.name フィールドから取得された値。キーは securityMarks_name に設定されます。 |
重要度 | security_result.severity | ログ形式に応じて severity または findings.severity フィールドから取得された値。対応する UDM の重大度レベルにマッピングされます。 |
sourceDisplayName | target.resource.attribute.labels.value | ログ形式に応じて、sourceDisplayName フィールドまたは findings.sourceDisplayName フィールドから取得された値。キーは source_display_name に設定されます。 |
sourceProperties.ReactivationCount | target.resource.attribute.labels.value | ログ形式に応じて、sourceProperties.ReactivationCount フィールドまたは findings.sourceProperties.ReactivationCount フィールドから取得された値。キーは sourceProperties_ReactivationCount に設定されます。 |
state | security_result.detection_fields.value | ログ形式に応じて、state フィールドまたは findings.state フィールドから取得された値。キーは state に設定されます。 |
metadata.event_type | デフォルト値として GENERIC_EVENT に設定します。 |
|
metadata.log_type | ハードコードされた値 GCP_SECURITYCENTER_ERROR 。 |
|
metadata.description | ハードコードされた値 Security Command Center 。 |
|
metadata.product_name | ハードコードされた値 Security Command Center 。 |
|
metadata.vendor_name | ハードコードされた値 Google 。 |
|
target.resource.attribute.labels.key | ハードコードされた値 finding_id 。 |
|
target.resource.attribute.labels.value | name フィールドまたは findings.name フィールドから抽出され、最後の / 文字の後の最後の部分がキャプチャされます。 |
|
target.resource.product_object_id | parent フィールドまたは findings.parent フィールドから抽出され、最後の / 文字の後の値がキャプチャされます。 |
|
target.resource.ancestors.name | ログ形式に応じて、parent フィールドまたは findings.parent フィールドから取得された値。 |
|
target.resource_ancestors.name | resourceName フィールドまたは findings.resourceName フィールドから抽出され、//cloudresourcemanager.googleapis.com/projects/ 接頭辞の後の値がキャプチャされます。 |
|
target.resource_ancestors.resource_type | ハードコードされた値 CLOUD_PROJECT 。 |
|
target.resource.attribute.labels.key | ハードコードされた値 source_id 。 |
|
target.resource.attribute.labels.value | parent フィールドまたは findings.parent フィールドから抽出され、2 番目の / 文字の後の値がキャプチャされます。 |
|
security_result.alert_state | state フィールドまたは findings.state フィールドに基づいてマッピングされます。状態が ACTIVE の場合、alert_state は ALERTING に設定されます。それ以外の場合は NOT_ALERTING に設定されます。 |
|
about.user.email_addresses | iamBindings.member フィールドから取得された値。 |
|
about.user.attribute.roles.name | ハードコードされた値 Security 。 |
さらにサポートが必要な場合 コミュニティ メンバーや Google SecOps のプロフェッショナルから回答を得ることができます。