Security Command Center-Fehlerlogs erfassen
In diesem Dokument wird erläutert, wie Sie Security Command Center-Fehlerlogs mit Cloud Storage exportieren und in Google Security Operations aufnehmen. Der Parser wandelt Rohlogs im JSON-Format in ein einheitliches Datenmodell (Unified Data Model, UDM) um. Er extrahiert relevante Felder aus dem Rohlog, führt eine Datenbereinigung und -normalisierung durch und strukturiert die Ausgabe gemäß dem UDM-Schema für eine konsistente Sicherheitsanalyse.
Hinweis
Prüfen Sie, ob folgende Voraussetzungen erfüllt sind:
- Security Command Center ist in Ihrer Google Cloud Umgebung aktiviert und konfiguriert.
- Google SecOps-Instanz.
- Privilegierter Zugriff auf Security Command Center und Cloud Logging.
Cloud Storage-Bucket erstellen
- Melden Sie sich in der Google Cloud Console an.
Rufen Sie die Seite Cloud Storage-Buckets auf.
Klicken Sie auf Erstellen.
Geben Sie auf der Seite Bucket erstellen die Bucket-Informationen ein. Klicken Sie nach jedem der folgenden Schritte auf Weiter, um mit dem nächsten Schritt fortzufahren:
Führen Sie im Abschnitt Einstieg die folgenden Schritte aus:
- Geben Sie einen eindeutigen Namen ein, der den Anforderungen für Bucket-Namen entspricht, z. B. gcp-scc-error-logs.
Wenn Sie den hierarchischen Namespace aktivieren möchten, klicken Sie auf den Maximierungspfeil , um den Bereich Für dateiorientierte und datenintensive Arbeitslasten optimieren zu maximieren, und wählen Sie dann Hierarchischen Namespace für diesen Bucket aktivieren aus.
Wenn Sie ein Bucket-Label hinzufügen möchten, klicken Sie auf den Maximierungspfeil , um den Bereich Label zu maximieren.
Klicken Sie auf Label hinzufügen und geben Sie einen Schlüssel und einen Wert für das Label an.
Gehen Sie im Bereich Speicherort für Daten auswählen so vor:
- Wählen Sie einen Standorttyp aus.
Wählen Sie im Menü für den Standorttyp einen Speicherort aus, an dem die Objektdaten in Ihrem Bucket dauerhaft gespeichert werden sollen.
Wenn Sie die Bucket-übergreifende Replikation einrichten möchten, maximieren Sie den Bereich Bucket-übergreifende Replikation einrichten.
Im Abschnitt Speicherklasse für Ihre Daten auswählen wählen Sie entweder Standardspeicherklasse für den Bucket oder Autoclass zur automatischen Verwaltung der Speicherklassen Ihrer Bucket-Daten aus.
Wählen Sie im Abschnitt Zugriff auf Objekte steuern die Option nicht aus, um die Verhinderung des öffentlichen Zugriffs zu erzwingen, und wählen Sie ein Zugriffssteuerungsmodell für die Objekte Ihres Buckets aus.
Gehen Sie im Bereich Auswählen, wie Objektdaten geschützt werden so vor:
- Wählen Sie eine der Optionen unter Datenschutz aus, die Sie für Ihren Bucket festlegen möchten.
- Um auszuwählen, wie Ihre Objektdaten verschlüsselt werden, klicken Sie auf den Maximierungspfeil mit dem Label Datenverschlüsselung und wählen Sie eine Methode für die Datenverschlüsselung aus.
Klicken Sie auf Erstellen.
Security Command Center-Logging konfigurieren
- Melden Sie sich in der Google Cloud Console an.
Rufen Sie die Seite Security Command Center auf.
Wählen Sie Ihre Organisation aus.
Klicken Sie auf Einstellungen.
Klicken Sie auf den Tab Kontinuierliche Exporte.
Klicken Sie unter Exportname auf Logging-Export.
Aktivieren Sie unter Senken die Option Ergebnisse in Logging in Logs speichern.
Geben Sie unter Logging-Projekt das Projekt ein, in dem Sie die Ergebnisse protokollieren möchten, oder suchen Sie nach dem Projekt.
Klicken Sie auf Speichern.
Export von Security Command Center-Fehlerlogs konfigurieren
- Melden Sie sich in der Google Cloud Console an.
- Wechseln Sie zu Logging > Logrouter.
- Klicken Sie auf Senke erstellen.
Geben Sie die folgenden Konfigurationsparameter an:
- Name der Senke: Geben Sie einen aussagekräftigen Namen ein, z. B.
scc-error-logs-sink. - Ziel der Senke: Wählen Sie Cloud Storage-Speicher aus und geben Sie den URI für Ihren Bucket ein, z. B.
gs://gcp-scc-error-logs/. Logfilter:
logName="projects/<your-project-id>/logs/cloudsecurityscanner.googleapis.com%2Ferror_logs" resource.type="security_command_center_error"Exportoptionen festlegen: Schließen Sie alle Logeinträge ein.
- Name der Senke: Geben Sie einen aussagekräftigen Namen ein, z. B.
Klicken Sie auf Erstellen.
Berechtigungen für Cloud Storage konfigurieren
- Rufen Sie IAM & Verwaltung > IAM auf.
- Suchen Sie das Cloud Logging-Dienstkonto.
- Gewähren Sie die Rolle roles/storage.admin für den Bucket.
Feeds einrichten
So konfigurieren Sie einen Feed:
- Rufen Sie die SIEM-Einstellungen > Feeds auf.
- Klicken Sie auf Neuen Feed hinzufügen.
- Klicken Sie auf der nächsten Seite auf Einzelnen Feed konfigurieren.
- Geben Sie im Feld Feedname einen Namen für den Feed ein, z. B. Security Command Center-Fehlerlogs.
- Wählen Sie Google Cloud Storage V2 als Quelltyp aus.
- Wählen Sie Security Command Center-Fehler als Logtyp aus.
- Klicken Sie neben dem Feld Chronicle-Dienstkonto auf Dienstkonto abrufen.
- Klicken Sie auf Weiter.
- Geben Sie Werte für die folgenden Eingabeparameter an:
- Storage-Bucket-URI: Cloud Storage-Bucket-URL, z. B.
gs://gcp-scc-error-logs/. Diese URL muss mit einem nachgestellten Schrägstrich (/) enden. - Optionen für das Löschen der Quelle: Wählen Sie die gewünschte Löschoption aus.
Hinweis: Wenn Sie die Option
Delete transferred filesoderDelete transferred files and empty directoriesauswählen, müssen Sie dem Dienstkonto die entsprechenden Berechtigungen gewährt haben. - Maximales Alter der Datei: Schließt Dateien ein, die in den letzten Tagen geändert wurden. Der Standardwert ist 180 Tage.
- Storage-Bucket-URI: Cloud Storage-Bucket-URL, z. B.
- Klicken Sie auf Weiter.
- Prüfen Sie die Konfiguration des neuen Feeds auf dem Bildschirm Abschließen und klicken Sie dann auf Senden.
UDM-Zuordnungstabelle
| Logfeld | UDM-Zuordnung | Logik |
|---|---|---|
| access.principalEmail | about.user.email_addresses | Wert aus dem Feld access.principalEmail. |
| Kategorie | metadata.product_event_type | Wert aus dem Feld category oder findings.category, je nach Logformat. |
| contacts.security.contacts.email | security_result.about.user.email_addresses | Wert aus dem Feld contacts.security.contacts.email. Die Rolle ist auf Security festgelegt. |
| contacts.technical.contacts.email | security_result.about.user.email_addresses | Wert aus dem Feld contacts.technical.contacts.email. Die Rolle ist auf Technical festgelegt. |
| createTime | security_result.detection_fields.value | Wert aus dem Feld createTime oder findings.createTime, je nach Logformat. Der Schlüssel ist auf createTime festgelegt. |
| Beschreibung | security_result.description | Wert aus dem Feld description oder findings.description, je nach Logformat. |
| eventTime | metadata.event_timestamp | Wert aus dem Feld eventTime oder findings.eventTime, je nach Logformat, in einen Zeitstempel umgewandelt. |
| externalUri | about.url | Wert aus dem externalUri oder findings.externalUri Feld, je nach Logformat. |
| findingClass | security_result.category_details | Wert aus dem Feld findingClass oder findings.findingClass, je nach Logformat. |
| findingProviderId | target.resource.attribute.labels.value | Wert aus dem Feld findingProviderId oder findings.findingProviderId, je nach Logformat. Der Schlüssel ist auf finding_provider_id festgelegt. |
| mute | security_result.detection_fields.value | Wert aus dem Feld mute oder findings.mute, je nach Logformat. Der Schlüssel ist auf mute festgelegt. |
| nextSteps | security_result.outcomes.value | Wert aus dem Feld nextSteps oder findings.nextSteps, je nach Logformat. Der Schlüssel ist auf nextSteps festgelegt. |
| resourceName | target.resource.name | Wert aus dem Feld resourceName, findings.resourceName, resource_name oder findings.resource_name, je nach Logformat. |
| securityMarks.name | security_result.detection_fields.value | Wert aus dem Feld securityMarks.name oder findings.securityMarks.name, je nach Logformat. Der Schlüssel ist auf securityMarks_name festgelegt. |
| severity | security_result.severity | Wert aus dem Feld severity oder findings.severity, je nach Logformat, der der entsprechenden UDM-Schweregradstufe zugeordnet ist. |
| sourceDisplayName | target.resource.attribute.labels.value | Wert aus dem Feld sourceDisplayName oder findings.sourceDisplayName, je nach Logformat. Der Schlüssel ist auf source_display_name festgelegt. |
| sourceProperties.ReactivationCount | target.resource.attribute.labels.value | Wert aus dem Feld sourceProperties.ReactivationCount oder findings.sourceProperties.ReactivationCount, je nach Logformat. Der Schlüssel ist auf sourceProperties_ReactivationCount festgelegt. |
| state | security_result.detection_fields.value | Wert aus dem Feld state oder findings.state, je nach Logformat. Der Schlüssel ist auf state festgelegt. |
| metadata.event_type | Standardmäßig auf GENERIC_EVENT festgelegt. |
|
| metadata.log_type | Fest codierter Wert GCP_SECURITYCENTER_ERROR. |
|
| metadata.description | Fest codierter Wert Security Command Center. |
|
| metadata.product_name | Fest codierter Wert Security Command Center. |
|
| metadata.vendor_name | Fest codierter Wert Google. |
|
| target.resource.attribute.labels.key | Fest codierter Wert finding_id. |
|
| target.resource.attribute.labels.value | Aus dem Feld name oder findings.name extrahiert, wobei der letzte Teil nach dem letzten Zeichen / erfasst wird. |
|
| target.resource.product_object_id | Aus dem Feld parent oder findings.parent extrahiert, wobei der Wert nach dem letzten Zeichen / erfasst wird. |
|
| target.resource.ancestors.name | Wert aus dem Feld parent oder findings.parent, je nach Logformat. |
|
| target.resource_ancestors.name | Aus dem Feld resourceName oder findings.resourceName extrahiert, wobei der Wert nach dem Präfix //cloudresourcemanager.googleapis.com/projects/ erfasst wird. |
|
| target.resource_ancestors.resource_type | Fest codierter Wert CLOUD_PROJECT. |
|
| target.resource.attribute.labels.key | Fest codierter Wert source_id. |
|
| target.resource.attribute.labels.value | Aus dem Feld parent oder findings.parent extrahiert, wobei der Wert nach dem zweiten Zeichen / erfasst wird. |
|
| security_result.alert_state | Zuordnung basierend auf dem Feld state oder findings.state. Wenn der Status ACTIVE ist, wird `alert_state` auf ALERTING gesetzt, andernfalls NOT_ALERTING. |
|
| about.user.email_addresses | Wert aus dem Feld iamBindings.member. |
|
| about.user.attribute.roles.name | Fest codierter Wert Security. |
Benötigen Sie weitere Hilfe? Antworten von Community-Mitgliedern und Google SecOps-Experten erhalten