VPC-Flusslogs erfassen
In diesem Dokument wird beschrieben, wie Sie VPC-Flusslogs mit Google Cloudnach Google Security Operations exportieren. Der Parser wandelt die Logs 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 Byte extrahiert und dann den entsprechenden UDM-Feldern zugeordnet. Dabei werden die Netzwerkrichtung und Sonderfälle berücksichtigt, um eine genaue Darstellung in Google SecOps zu ermöglichen.
Vorbereitung
Prüfen Sie, ob die folgenden Voraussetzungen erfüllt sind:
- Google SecOps-Instanz.
- VPC Flow 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 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 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.
Logexport in Google Cloud VPC Flow konfigurieren
- Melden Sie sich mit Ihrem privilegierten Konto im 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 Logs aus.
- Klicken Sie auf Flusslogs> Konfigurieren.
- Wählen Sie das Aggregationsintervall aus, z. B. 30 SEK..
- Geben Sie die Abtastrate an, z. B. 50%.
- Klicken Sie auf Speichern.
- Suchen Sie in der Suchleiste nach Logging und drücken Sie die Eingabetaste.
- Filtern Sie die Logs im Log-Explorer, indem Sie unter Logname die Option VPC_flows auswählen und auf Übernehmen klicken.
- 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 Bucket.
- Klicken Sie auf Weiter.
- Logs auswählen, die in der Senke enthalten sind: Wenn Sie eine Option in Cloud Storage-Bucket auswählen, wird ein Standardlog eingefügt.
- Klicken Sie auf Weiter.
- Optional: Logs zum Filtern aus der Senke auswählen: Wählen Sie die Logs aus, die nicht in die Senke aufgenommen werden sollen.
- Klicken Sie auf Senke erstellen.
Feeds einrichten
Es gibt zwei verschiedene Einstiegspunkte zum Einrichten von Feeds in der Google SecOps-Plattform:
- SIEM-Einstellungen > Feeds > Neu hinzufügen
- Content Hub > Content-Packs > Erste Schritte
VPC-Fluss-Feed einrichten Google Cloud
- Klicken Sie auf das Paket Google Cloud Compute Platform.
- Suchen Sie nach dem Logtyp GCP VPC Flow Feed.
Geben Sie die Werte in den folgenden Feldern an.
- Quelltyp: Amazon SQS V2
- Warteschlangenname: Der Name der SQS-Warteschlange, aus der gelesen werden soll.
- S3-URI: Der Bucket-URI.
s3://your-log-bucket-name/
- Ersetzen Sie
your-log-bucket-name
durch den tatsächlichen Namen Ihres S3-Buckets.
- Ersetzen Sie
Optionen zum Löschen der Quelle: Wählen Sie die Löschoption entsprechend Ihren Aufnahmeeinstellungen aus.
Maximales Dateialter: Dateien einschließen, die in den letzten Tagen geändert wurden. Der Standardwert ist 180 Tage.
SQS Queue Access Key ID (SQS-Warteschlange-Zugriffsschlüssel-ID): Ein Konto-Zugriffsschlüssel, der ein 20-stelliger alphanumerischer String ist.
SQS Queue Secret Access Key (geheimer Zugriffsschlüssel für SQS-Warteschlange): Ein Konto-Zugriffsschlüssel, der ein 40-stelliger alphanumerischer String ist.
Erweiterte Optionen
- Feedname: Ein vorausgefüllter Wert, der den Feed identifiziert.
- Asset-Namespace: Der Namespace, der dem Feed zugeordnet ist.
- Aufnahmelabels: Labels, die auf alle Ereignisse aus diesem Feed angewendet werden.
Klicken Sie auf Feed erstellen.
Weitere Informationen zum Konfigurieren mehrerer Feeds für verschiedene Logtypen in dieser Produktfamilie finden Sie unter Feeds nach Produkt konfigurieren.
Unterstützte Logformate für VPC-Flusslogs
Der VPC-Flusslog-Parser unterstützt Logs im JSON-Format.
Unterstützte VPC-Flusslogs – Beispiel-Logs
JSON
{ "insertId": "1wjp1y9f8vc6y6", "jsonPayload": { "bytes_sent": "0", "connection": { "dest_ip": "198.51.100.0", "dest_port": 32846, "protocol": 6, "src_ip": "198.51.100.1", "src_port": 443 }, "dest_instance": { "project_id": "logging-259109", "region": "us-west2", "vm_name": "demisto-01", "zone": "us-west2-a" }, "dest_vpc": { "project_id": "logging-259109", "subnetwork_name": "default", "vpc_name": "default" }, "end_time": "2020-03-28T10:44:41.896734136Z", "packets_sent": "2", "reporter": "DEST", "start_time": "2020-03-28T10:44:41.896734136Z" }, "logName": "projects/logging-259109/logs/compute.googleapis.com%2Fvpc_flows", "receiveTimestamp": "2020-03-28T10:44:50.112903743Z", "resource": { "labels": { "location": "us-west2-a", "project_id": "dummy_project_id", "subnetwork_id": "subnetwork_id", "subnetwork_name": "default" }, "type": "gce_subnetwork" }, "timestamp": "2020-03-28T10:44:50.112903743Z" }
UDM-Zuordnungstabelle
Logfeld | UDM-Zuordnung | Logik |
---|---|---|
connection.dest_ip | target.asset.ip target.ip |
Direkte Zuordnung, wenn „network.direction“ auf „OUTBOUND“ festgelegt ist. wird aus principal.ip zugeordnet, wenn network.direction INBOUND ist. |
connection.dest_port | target.port | Wird in eine Ganzzahl umgewandelt, wenn sie größer als -1 ist. |
connection.protocol | network.ip_protocol | Wird in einen String konvertiert und dann einer Ganzzahl zugeordnet. Basierend auf dem Ganzzahlwert, der dem IP-Protokollnamen zugeordnet ist (z.B. TCP, UDP, ICMP). |
connection.src_ip | principal.ip | Direkte Zuordnung |
connection.src_port | principal.port | In Ganzzahl konvertiert. |
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 zusammen mit „dest_vpc.project_id“ verwendet, 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 „uinteger“ konvertiert. |
jsonPayload.packets_sent | network.sent_packets | In Ganzzahl konvertiert. |
labels.tunnel_id | additional.fields | In „additional.fields“ mit dem Schlüssel Tunnel Id und dem Typ string_value zusammengeführt. |
logName | security_result.category_details | Direkte Zuordnung |
resource.labels.project_id | target.resource.name | Wird verwendet, um „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 | Wird 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 zusammen mit src_vpc.vpc_name verwendet, um den principal.namespace zu bilden. |
src_vpc.vpc_name | principal.namespace | Wird mit src_vpc.project_id verwendet, um den principal.namespace zu bilden. |
textPayload | additional.fields | In „additional.fields“ mit dem Schlüssel Textpayload und dem Typ string_value zusammengeführt. |
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 Logtypen 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 es sich um einen bekannten oder reservierten Port handelt, wird er als INBOUND betrachtet, andernfalls als OUTBOUND. | |
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. |
Benötigen Sie weitere Hilfe? Antworten von Community-Mitgliedern und Google SecOps-Experten erhalten