Compute-Logs Google Cloud erfassen
In diesem Dokument wird beschrieben, wie Sie den Export von Google Cloud Compute-Logs nach Google Security Operations mit Cloud Storage konfigurieren. Der Parser extrahiert Felder, normalisiert das Nachrichtenfeld und ordnet die extrahierten Daten dem Schema für einheitliche Datenmodelle (Unified Data Model, UDM) zu, um Sicherheitsereignisse einheitlich darzustellen. Es werden verschiedene Logformate verarbeitet, darunter syslog-ähnliche Nachrichten und Schlüssel/Wert-Paare. Außerdem werden Ereignisse anhand von extrahierten Feldern wie type und action kategorisiert.
Vorbereitung
Prüfen Sie, ob die folgenden Voraussetzungen erfüllt sind:
- Google SecOps-Instanz.
- Compute ist in Ihrer Google Cloud Umgebung eingerichtet und aktiv.
- Privilegierter Zugriff auf Google Cloud.
Google Cloud Storage-Bucket erstellen
- Melden Sie sich in der Google Cloud -Konsole 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. compute-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 Erweiterungspfeil, um den Abschnitt Labels 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:
Standorttyp auswählen.
- 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.
Wählen Sie im Abschnitt Speicherklasse für Ihre Daten auswählen entweder eine Standardspeicherklasse für den Bucket oder Autoclass für die automatische 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 unter Datenschutz die gewünschten Optionen für Ihren Bucket aus.
- Um auszuwählen, wie Ihre Objektdaten verschlüsselt werden, klicken Sie auf den Erweiterungspfeil mit dem Label Datenverschlüsselung und wählen Sie eine Datenverschlüsselungsmethode aus.
Klicken Sie auf Erstellen.
„Compute Logs Export“ konfigurieren Google Cloud
- Rufen Sie in der Google Cloud Console Logging > Log Router auf.
- Klicken Sie auf Senke erstellen.
Geben Sie die folgenden Informationen ein:
- Senkenname: Geben Sie einen aussagekräftigen Namen an, z. B. Compute-Logs-Sink.
- Senkenziel: Wählen Sie Cloud Storage aus .
- Sink Destination (Zielsenke): Wählen Sie Cloud Storage aus und geben Sie den Bucket-URI ein, z. B.
gs://<your-bucket-name>/compute-logs
. Log-Filter: Legen Sie Filter fest, um Google Cloud Compute-Logs so zu erfassen:
Logname und -typ:
logName="*compute*"
Netzwerkbezogene Felder (z. B. IP-Adressen, Ports):
jsonPayload.connection.dest_ip="*" OR jsonPayload.connection.src_ip="*"
Instanzdetails:
jsonPayload.dest_instance.project_id="*" jsonPayload.src_instance.project_id="*"
Sicherheitsrelevante Details:
jsonPayload.rule_details.action="ALLOW" OR jsonPayload.rule_details.action="BLOCK"
Klicken Sie auf Erstellen.
Berechtigungen für Cloud Storage konfigurieren
- Rufen Sie IAM> IAM & Verwaltung > Dienstkonten auf.
- Suchen Sie das Cloud Logging-Dienstkonto, z. B. [email protected].
- Weisen Sie dem Dienstkonto die Rolle roles/storage.admin für den Bucket zu.
Feeds einrichten
Es gibt zwei verschiedene Einstiegspunkte zum Einrichten von Feeds in der Google SecOps-Plattform:
- SIEM-Einstellungen > Feeds
- Content Hub> Content-Pakete
Feeds über „SIEM-Einstellungen“ > „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 Einen einzelnen Feed konfigurieren.
- Geben Sie im Feld Feed name (Feedname) einen Namen für den Feed ein, z. B. Google Cloud Compute Logs (Google Cloud Compute-Protokolle).
- Wählen Sie Google Cloud Storage als Quelltyp aus.
- Wählen Sie GCP Compute als Logtyp aus.
- Klicken Sie auf Dienstkonto abrufen als Chronicle-Dienstkonto.
- Klicken Sie auf Weiter.
Geben Sie Werte für die folgenden Eingabeparameter an:
- Storage-Bucket-URI: Google Cloud Storage-Bucket-URL im Format
gs://my-bucket/<value>
. - URI Is A (URI ist ein): Wählen Sie Directory which includes subdirectories (Verzeichnis mit Unterverzeichnissen) aus.
Optionen zum Löschen von Quellen: Wählen Sie die gewünschte Option aus.
- Storage-Bucket-URI: Google Cloud Storage-Bucket-URL im Format
Klicken Sie auf Weiter.
Prüfen Sie die neue Feedkonfiguration auf dem Bildschirm Abschließen und klicken Sie dann auf Senden.
Feeds über den Content Hub einrichten
Geben Sie Werte für die folgenden Felder an:
- Storage-Bucket-URI: Google Cloud Storage-Bucket-URL im Format
gs://my-bucket/<value>
. - URI Is A (URI ist ein): Wählen Sie Directory which includes subdirectories (Verzeichnis mit Unterverzeichnissen) aus.
- Optionen zum Löschen von Quellen: Wählen Sie die gewünschte Option aus.
Erweiterte Optionen
- Feedname: Ein vorausgefüllter Wert, der den Feed identifiziert.
- Quelltyp: Methode, die zum Erfassen von Logs in Google SecOps verwendet wird.
- Asset-Namespace: Der Namespace, der dem Feed zugeordnet ist.
- Aufnahmelabels: Labels, die auf alle Ereignisse aus diesem Feed angewendet werden.
UDM-Zuordnungstabelle
Logfeld | UDM-Zuordnung | Logik |
---|---|---|
addr | read_only_udm.principal.ip | Wird in die Liste der Haupt-IP-Adressen aufgenommen, wenn das Feld nicht leer oder „?“ ist. |
jsonPayload.connection.dest_ip | read_only_udm.target.ip | Wird in die Ziel-IP-Adressliste zusammengeführt, wenn das Feld vorhanden ist. |
jsonPayload.connection.dest_port | read_only_udm.target.port | Wird in einen String und dann in eine Ganzzahl konvertiert und zugeordnet, wenn bei der Konvertierung keine Fehler auftreten. |
jsonPayload.connection.protocol | read_only_udm.network.ip_protocol | Wird in einen String und dann in eine Ganzzahl konvertiert. Wird verwendet, um das IP-Protokoll (TCP, UDP usw.) anhand einer Nachschlagetabelle zu ermitteln und zuzuordnen, wenn bei der Konvertierung keine Fehler auftreten. |
jsonPayload.connection.src_ip | read_only_udm.principal.ip | Wird in die Liste der Haupt-IP-Adressen aufgenommen, sofern das Feld vorhanden ist. |
jsonPayload.connection.src_port | read_only_udm.principal.port | Wird in einen String und dann in eine Ganzzahl konvertiert und zugeordnet, wenn bei der Konvertierung keine Fehler auftreten. |
jsonPayload.dest_instance.project_id | read_only_udm.target.resource.product_object_id | Wird bedingt zugeordnet, wenn jsonPayload.dest_vpc.project_id vorhanden ist. |
jsonPayload.dest_instance.region | read_only_udm.target.location.name | Wird bedingt zugeordnet, wenn jsonPayload.dest_vpc.project_id vorhanden ist. |
jsonPayload.dest_instance.vm_name | read_only_udm.target.resource.attribute.cloud.project.name | Wird bedingt zugeordnet, wenn jsonPayload.dest_vpc.project_id vorhanden ist. |
jsonPayload.dest_instance.zone | read_only_udm.target.resource.attribute.cloud.availability_zone | Wird bedingt zugeordnet, wenn jsonPayload.dest_vpc.project_id vorhanden ist. |
jsonPayload.dest_vpc.project_id | read_only_udm.target.cloud.vpc.product_object_id | Wird als Bedingung zum Zuordnen verknüpfter Felder verwendet. |
jsonPayload.dest_vpc.subnetwork_name | read_only_udm.target.cloud.vpc.name | Wird bedingt zugeordnet, wenn jsonPayload.dest_vpc.project_id vorhanden ist. |
jsonPayload.instance.project_id | read_only_udm.target.resource.product_object_id | Wird nur zugeordnet, wenn jsonPayload.instance.project_id vorhanden ist. |
jsonPayload.instance.region | read_only_udm.target.location.name | Wird nur zugeordnet, wenn jsonPayload.instance.project_id vorhanden ist. |
jsonPayload.instance.vm_name | read_only_udm.target.resource.attribute.cloud.project.name | Wird nur zugeordnet, wenn jsonPayload.instance.project_id vorhanden ist. |
jsonPayload.instance.zone | read_only_udm.target.resource.attribute.cloud.availability_zone | Wird nur zugeordnet, wenn jsonPayload.instance.project_id vorhanden ist. |
jsonPayload.message | read_only_udm.metadata.product_event_type, read_only_udm.principal.application, read_only_udm.target.process.pid, read_only_udm.target.user.userid, read_only_udm.principal.hostname, read_only_udm.target.process.command_line, read_only_udm.security_result.description, read_only_udm.principal.process.file.full_path | Anhand von Grok-Mustern und bedingter Logik werden die Daten geparst und verschiedenen Feldern zugeordnet. |
jsonPayload.rule_details.action | read_only_udm.security_result.action | Wird verwendet, um die Aktion des Sicherheitsergebnisses (ALLOW/BLOCK) zu bestimmen und zuzuordnen. |
jsonPayload.rule_details.direction | read_only_udm.network.direction | Wird verwendet, um die Netzwerkrichtung (INBOUND/OUTBOUND/UNKNOWN_DIRECTION) zu bestimmen und zuzuordnen. |
jsonPayload.rule_details.priority | read_only_udm.security_result.priority_details | Wird in einen String konvertiert und zugeordnet, wenn bei der Konvertierung keine Fehler auftreten. |
jsonPayload.rule_details.reference | read_only_udm.security_result.rule_labels.value | Wird dem Wert des Regellabels zugeordnet. |
jsonPayload.src_instance.project_id | read_only_udm.principal.resource.product_object_id | Wird bedingt zugeordnet, wenn jsonPayload.src_vpc.project_id vorhanden ist. |
jsonPayload.src_instance.region | read_only_udm.principal.location.name | Wird bedingt zugeordnet, wenn jsonPayload.src_vpc.project_id vorhanden ist. |
jsonPayload.src_instance.vm_name | read_only_udm.principal.resource.attribute.cloud.project.name | Wird bedingt zugeordnet, wenn jsonPayload.src_vpc.project_id vorhanden ist. |
jsonPayload.src_instance.zone | read_only_udm.principal.resource.attribute.cloud.availability_zone | Wird bedingt zugeordnet, wenn jsonPayload.src_vpc.project_id vorhanden ist. |
jsonPayload.src_vpc.project_id | read_only_udm.principal.cloud.vpc.product_object_id | Wird als Bedingung zum Zuordnen verknüpfter Felder verwendet. |
jsonPayload.src_vpc.subnetwork_name | read_only_udm.principal.cloud.vpc.name | Wird bedingt zugeordnet, wenn jsonPayload.src_vpc.project_id vorhanden ist. |
jsonPayload.vpc.project_id | read_only_udm.target.cloud.vpc.product_object_id | Wird bedingt zugeordnet, wenn jsonPayload.vpc.project_id vorhanden ist. |
jsonPayload.vpc.subnetwork_name | read_only_udm.target.cloud.vpc.name | Wird bedingt zugeordnet, wenn jsonPayload.vpc.project_id vorhanden ist. |
logName | read_only_udm.security_result.category_details | Direkt zugeordnet. |
resource.labels.instance_id | read_only_udm.principal.resource.product_object_id, read_only_udm.principal.asset_id | Bedingt zugeordnet. Wenn der Typ „PROCTITLE“ ist, wird er verwendet, um die Asset-ID zu erstellen. |
resource.labels.location | read_only_udm.principal.location.name | Wird bedingt zugeordnet, wenn das Feld vorhanden ist. |
resource.labels.project_id | read_only_udm.metadata.product_deployment_id | Wird bedingt zugeordnet, wenn das Feld vorhanden ist. |
resource.labels.zone | read_only_udm.principal.resource.attribute.cloud.availability_zone | Wird bedingt zugeordnet, wenn das Feld vorhanden ist. |
resource.type | read_only_udm.metadata.event_type | Wird verwendet, um den Ereignistyp zu bestimmen und zuzuordnen. |
timestamp | read_only_udm.metadata.event_timestamp | Direkt zugeordnet. |
Typ | read_only_udm.metadata.product_event_type, read_only_udm.metadata.event_type, read_only_udm.extensions.auth.type | Wird verwendet, um den Ereignistyp, den Produktereignistyp und den Authentifizierungstyp zu bestimmen und entsprechend zuzuordnen. |
read_only_udm.metadata.event_type | Die Logik legt den Ereignistyp basierend auf dem Feld „type“ und anderen Bedingungen fest. Wenn keine spezifische Übereinstimmung gefunden wird, wird standardmäßig „GENERIC_EVENT“ verwendet. | |
read_only_udm.metadata.log_type | Konstanter Wert „GCP_COMPUTE“. | |
read_only_udm.metadata.vendor_name | Konstanter Wert „Google Cloud Platform“. | |
read_only_udm.metadata.product_name | Konstanter Wert „Google Cloud Platform“. | |
read_only_udm.security_result.rule_labels.key | Konstanter Wert „Referenz“. | |
read_only_udm.target.cloud.vpc.resource_type | Wird bedingt auf „VPC_NETWORK“ gesetzt, wenn jsonPayload.instance.project_id oder jsonPayload.dest_vpc.project_id vorhanden ist. | |
read_only_udm.target.resource.attribute.cloud.environment | Wird bedingt auf „GOOGLE_CLOUD_PLATFORM“ gesetzt, wenn jsonPayload.instance.project_id, jsonPayload.dest_vpc.project_id oder jsonPayload.src_vpc.project_id vorhanden ist. | |
read_only_udm.principal.administrative_domain | Wird aus dem Feld „Account Domain“ abgeleitet, das aus dem Feld „kv_data“ extrahiert wird. | |
read_only_udm.principal.user.user_display_name | Wird aus dem Feld „Kontoname“ abgeleitet, das aus dem Feld „kv_data“ extrahiert wird. | |
read_only_udm.target.resource.name | Wird aus dem Feld „Objektname“ zugeordnet, das aus dem Feld „kv_data“ extrahiert wird. | |
read_only_udm.target.resource.type | Zugeordnet aus dem Feld „Objekttyp“, das aus dem Feld „kv_data“ extrahiert wurde. | |
read_only_udm.principal.process.pid | Wird aus dem Feld „Prozess-ID“ zugeordnet, das aus dem Feld „kv_data“ extrahiert wird. | |
read_only_udm.target.user.windows_sid | Wird aus dem Feld „Security ID“ zugeordnet, das aus dem Feld „kv_data“ extrahiert wird. | |
read_only_udm.network.session_id | Wird aus dem Feld „auid“ zugeordnet. |
Benötigen Sie weitere Hilfe? Antworten von Community-Mitgliedern und Google SecOps-Experten erhalten