Cloud VPC-Flusslogs erfassen
In diesem Dokument wird beschrieben, wie Sie VPC-Flusslogs aus der Cloud mithilfe von Google Cloudnach Google Security Operations exportieren. Der Parser wandelt die Protokolle aus dem integrierten JSON-Format in das UDM von Google Security Operations um. Es werden relevante Felder wie Quell- und Ziel-IP, Port, Protokoll und gesendete Bytes extrahiert und dann den entsprechenden UDM-Feldern zugeordnet. Dabei werden Netzwerkrichtung und Sonderfälle berücksichtigt, um eine korrekte Darstellung in Google SecOps zu ermöglichen.
Vorbereitung
- Sie benötigen eine Google SecOps-Instanz.
- Prüfen Sie, ob der VPC-Flow in Ihrer Google Cloud -Umgebung eingerichtet und aktiv ist.
- Sie benötigen Berechtigungen für Google Cloud.
Google 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. vpcflow-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 Bereich 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ü „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 Optionen aus, die Sie für den Bucket festlegen möchten.
- Um auszuwählen, wie Ihre Objektdaten verschlüsselt werden, klicken Sie auf den Erweiterungspfeil mit Label Datenverschlüsselung und wählen Sie eine Methode für die Datenverschlüsselung aus.
Klicken Sie auf Erstellen.
Log-Export in Google Cloud VPC-Flow konfigurieren
- Melden Sie sich mit Ihrem Konto mit Berechtigungen in Ihrem Google Cloud-Konto an.
- Klicken Sie auf der Seite Willkommen auf VPC-Netzwerke.
- Klicken Sie auf Standard. Daraufhin sollte eine Subnetzseite angezeigt werden.
- Wählen Sie alle Protokolle aus.
- Klicken Sie auf Flussprotokolle > Konfigurieren.
- Wählen Sie Aggregationsintervall aus, z. B. 30 SEK.
- Geben Sie die Abtastrate an, z. B. 50%.
- Klicken Sie auf Speichern.
- Geben Sie in der Suchleiste Logging ein und klicken Sie auf die Eingabetaste.
- Filtern Sie die Logs im Log-Explorer. Wählen Sie dazu unter Logname die Option VPC_flows aus und klicken Sie auf Übernehmen.
- Klicken Sie auf Weitere Aktionen.
- Klicken Sie auf Senke erstellen.
- Geben Sie die folgenden Konfigurationen an:
- Senkendetails: Geben Sie einen Namen und eine Beschreibung ein.
- Klicken Sie auf Weiter.
- Senkenziel: Wählen Sie Cloud Storage-Bucket aus.
- Cloud Storage-Bucket: Wählen Sie den zuvor erstellten Bucket aus oder erstellen Sie einen neuen.
- Klicken Sie auf Weiter.
- Logs auswählen, die in der Senke enthalten sind: Wenn Sie eine Option im Cloud Storage-Bucket auswählen, wird ein Standardprotokoll eingefügt.
- Klicken Sie auf Weiter.
- Optional: Auswählen zum Filtern aus der Senke: Wählen Sie die Logs aus, die nicht in die Senke aufgenommen werden sollen.
- Klicken Sie auf Senke erstellen.
Einen Feed in Google SecOps für die Aufnahme von VPC-Flusslogs konfigurieren Google Cloud
- Gehen Sie zu SIEM-Einstellungen > Feeds.
- Klicken Sie auf Neu hinzufügen.
- Geben Sie im Feld Feedname einen Namen für den Feed ein, z. B. Google Cloud VPC-Flussprotokolle.
- Wählen Sie Google Cloud Storage als Quelltyp aus.
- Wählen Sie GCP VPC-Flow als Logtyp aus.
- Klicken Sie als Chronicle-Dienstkonto auf Dienstkonto abrufen.
- 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 ist: Wählen Sie Verzeichnis mit Unterverzeichnissen aus.
Optionen zum Löschen der Quelle: Wählen Sie die gewünschte Löschoption aus.
Asset-Namespace: der Asset-Namespace.
Aufnahmelabels: Das Label, das auf die Ereignisse aus diesem Feed angewendet wird.
- 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.
UDM-Zuordnungstabelle
Logfeld | UDM-Zuordnung | Logik |
---|---|---|
connection.dest_ip | target.asset.ip target.ip |
Direkte Zuordnung, wenn „network.direction“ den Wert „OUTBOUND“ hat. Wird von „principal.ip“ zugeordnet, wenn „network.direction“ auf „INBOUND“ festgelegt ist. |
connection.dest_port | target.port | Wird in eine Ganzzahl umgewandelt, wenn der Wert größer als -1 ist. |
connection.protocol | network.ip_protocol | In einen String umgewandelt und dann einer Ganzzahl zugeordnet. Basierend auf dem Ganzzahlwert dem Namen des IP-Protokolls zugeordnet (z.B. TCP, UDP, ICMP). |
connection.src_ip | principal.ip | Direkte Zuordnung. |
connection.src_port | principal.port | In eine Ganzzahl umgewandelt. |
dest_instance.region | target.location.name | Direkte Zuordnung. |
dest_instance.vm_name | target.asset.hostname | Direkte Zuordnung. |
dest_location.city | target.location.city | Direkte Zuordnung. |
dest_location.country | target.location.country_or_region | Direkte Zuordnung. |
dest_location.region | target.location.state | Direkte Zuordnung. |
dest_vpc.project_id | target.namespace | Wird mit „dest_vpc.vpc_name“ verwendet, um „target.namespace“ zu bilden. |
dest_vpc.vpc_name | target.namespace | Wird mit „dest_vpc.project_id“ kombiniert, um „target.namespace“ zu bilden. |
insertId | metadata.product_log_id | Direkte Zuordnung. |
jsonPayload.bytes_sent | network.sent_bytes | In „network.sent_bytes“ umbenannt und in einen Ganzzahltyp umgewandelt. |
jsonPayload.packets_sent | network.sent_packets | In eine Ganzzahl umgewandelt. |
labels.tunnel_id | additional.fields | Zusammengeführt mit „additional.fields“ mit dem Schlüssel „Tunnel Id “ und dem Typ „string_value “. |
logName | security_result.category_details | Direkte Zuordnung. |
resource.labels.project_id | target.resource.name | Wird verwendet, um den target.resource.name im Format //cloudresourcemanager.googleapis.com/projects/{resource.labels.project_id} zu erstellen. |
resource.labels.region | target.location.country_or_region | Direkte Zuordnung. |
resource.labels.subnetwork_id | target.user.attribute.labels | Mit dem Schlüssel subnetwork_id in „target.user.attribute.labels“ zusammengeführt. |
resource.type | metadata.product_event_type | Direkte Zuordnung. |
die Ausprägung | security_result.severity | Wird LOW zugeordnet, wenn der Wert DEBUG ist. |
src_gke_details.cluster.cluster_location | principal.resource.attribute.labels | Mit dem Schlüssel cluster_location in „principal.resource.attribute.labels“ zusammengeführt. |
src_gke_details.cluster.cluster_name | principal.resource.attribute.labels | Mit dem Schlüssel cluster_name in „principal.resource.attribute.labels“ zusammengeführt. |
src_gke_details.pod.pod_name | principal.resource.attribute.labels | Mit dem Schlüssel pod_name in „principal.resource.attribute.labels“ zusammengeführt. |
src_gke_details.pod.pod_namespace | principal.resource.attribute.labels | Mit dem Schlüssel pod_namespace in „principal.resource.attribute.labels“ zusammengeführt. |
src_instance.region | principal.location.name | Direkte Zuordnung. |
src_instance.vm_name | principal.asset.hostname | Direkte Zuordnung. |
src_location.city | principal.location.city | Direkte Zuordnung. |
src_location.country | principal.location.country_or_region | Direkte Zuordnung. |
src_location.region | principal.location.state | Direkte Zuordnung. |
src_vpc.project_id | principal.namespace | Wird mit „src_vpc.vpc_name“ verwendet, um „principal.namespace“ zu bilden. |
src_vpc.vpc_name | principal.namespace | Wird mit „src_vpc.project_id“ verwendet, um „principal.namespace“ zu bilden. |
textPayload | additional.fields | Zusammengeführt mit „additional.fields“ mit dem Schlüssel Textpayload und dem Typ string_value . |
timestamp | metadata.event_timestamp | Wird verwendet, um „event_timestamp“ auszufüllen, wenn „jsonPayload.end_time“ leer ist. |
metadata.description | Anhand des Felds „reporter“ wird eine Beschreibung des Netzwerkflusses generiert, einschließlich des Melders (SRC oder DEST) und der Richtung (INBOUND oder OUTBOUND). | |
metadata.event_type | Legen Sie für VPC-Flusslogs NETWORK_CONNECTION und für andere Protokolltypen USER_RESOURCE_ACCESS fest. |
|
metadata.log_type | Legen Sie GCP_VPC_FLOW fest. |
|
metadata.product_name | Legen Sie GCP VPC Flow Logs fest. |
|
metadata.product_version | Legen Sie 1.0 fest. |
|
metadata.vendor_name | Legen Sie Google Cloud fest. |
|
network.direction | Wird anhand von „target.port“ bestimmt. Wenn der Port ein bekannter oder reservierter Port ist, wird er als INBOUND betrachtet. Andernfalls wird er als OUTBOUND betrachtet. | |
security_result.severity | Standardmäßig auf LOW festgelegt. |
|
target.resource.attribute.cloud.environment | Legen Sie GOOGLE_CLOUD_PLATFORM fest. |
|
target.resource.resource_type | Legen Sie CLOUD_PROJECT fest. |
Änderungen
2024-10-24
Optimierung:
- Die Zuordnung von
principal.ip
undprincipal.port
wurde jeweils mittarget.ip
undtarget.port
vertauscht.
2024-03-15
Optimierung:
jsonPayload.src_gke_details.pod.pod_namespace
,jsonPayload.src_gke_details.pod.pod_name
,jsonPayload.src_gke_details.cluster.cluster_name
undjsonPayload.src_gke_details.cluster.cluster_location
wurdenprincipal.resource.attribute.labels
zugeordnet.jsonPayload.dest_gke_details.pod.pod_namespace
,jsonPayload.dest_gke_details.pod.pod_name
,jsonPayload.dest_gke_details.cluster.cluster_name
undjsonPayload.dest_gke_details.cluster.cluster_location
wurdentarget.resource.attribute.labels
zugeordnet.
2023-05-23
Optimierung:
- „metadata.event_type“ wurde in „USER_RESOURCE_ACCESS“ umgewandelt, wenn das Feld „logName“ nicht „vpc_flows“ enthält.
- „Zeitstempel“ wurde auf „events.timestamp“ zugeordnet.
- „textPayload“ und „labels.tunnel_id“ wurden in „additional.fields“ umgewandelt.
- „resource.labels.region“ wurde „target.location.country_or_region“ zugeordnet.
- Es wurden Null-Prüfungen für verschiedene Felder hinzugefügt, sofern erforderlich.
2023-04-10
Optimierung:
- Setzen Sie
target.resource.attribute.cloud.environment
aufGOOGLE_CLOUD_PLATFORM
. - Legen Sie für
target.resource.name
den vollständigen Ressourcennamen fest.
2022-07-22
Optimierung:
resource.labels.location
wurdeprincipal.location.name
zugeordnet.resource.labels.subnetwork_id
wurdetarget.user.attribute.labels
zugeordnet.logName
wurdesecurity_result.category_details
zugeordnet.
Benötigen Sie weitere Hilfe? Antworten von Community-Mitgliedern und Google SecOps-Experten erhalten