VPC Flow Logs in GCP analysieren: Exfiltration erkennen
VPC Flow Logs aus Google Cloud in der Untersuchung nutzen: Felder, Sampling-Grenzen, ausgehender Verkehr je externer IP, Abgleich von Angreifer-IPs mit VMs.
Kurz gesagt. VPC Flow Logs sind das einzige Google-Cloud-Log, das zeigt, was eine kompromittierte VM über das Netzwerk gesendet hat. Es gibt sie nur für Subnetze, in denen sie vorab aktiviert wurden, sie beruhen auf Stichproben, und die Bytes sind Schätzungen. Summieren Sie bytes_sent je externer Ziel-IP, bei der Ihre VM die meldende Seite ist, sehen Sie sich die wichtigsten Ziele im Zeitfenster des Vorfalls an und gleichen Sie vor allem die Angreifer-IPs aus den Audit-Logs mit den Gegenstellen der Flows ab: Eine IP, die Ihre APIs aufgerufen und mit Ihren VMs kommuniziert hat, verbindet die Control Plane mit der Data Plane.
Audit-Logs zeigen, was über die Google-Cloud-APIs getan wurde. Daten, die ein Prozess innerhalb einer VM liest (ein Datenbank-Dump, Dateien auf einer Festplatte, Secrets im Arbeitsspeicher) und per HTTPS nach außen sendet, tauchen dort nie auf. Flow-Logs schließen diese Lücke, mit Grenzen, die Sie im Bericht nennen müssen.
Was ein Flow-Datensatz enthält
Flow-Logs werden nach projects/PROJECT/logs/compute.googleapis.com%2Fvpc_flows mit einem jsonPayload geschrieben. Googles Referenz zu den Datensätzen listet die Felder auf; diese tragen die Untersuchung:
| Feld | Verwendung |
|---|---|
connection.src_ip, src_port, dest_ip, dest_port, protocol | Das 5-Tupel |
start_time, end_time | Das Aggregationsfenster des Datensatzes |
bytes_sent, packets_sent | Geschätztes Volumen von der Quelle zum Ziel |
reporter | SRC oder DEST: welche Seite (welche VM) den Flow gemeldet hat |
src_instance, dest_instance | Name, Zone und Projekt der VM, wenn der Endpunkt eine VM ist |
src_location, dest_location | Bei öffentlichen IPs: ASN, Land, Region, Stadt |
Drei Eigenschaften aus Googles Übersicht zu VPC Flow Logs prägen alles Weitere:
- Sampling: Die primäre Abtastrate ist dynamisch und nicht konfigurierbar; die sekundäre Rate beträgt bei Konfiguration über die Compute Engine API standardmäßig 50 %. Bytes und Pakete werden aus den Stichproben geschätzt.
- Aggregation: Datensätze decken ein Intervall ab (standardmäßig 5 Sekunden, konfigurierbar bis 15 Minuten).
- Keine Nutzdaten: nur Metadaten.
Und eine aus der Praxis: Flow-Logs gibt es nur dort, wo jemand sie vor dem Vorfall aktiviert hat (pro Subnetz, Netzwerk oder Organisation). Die Standard-Aufbewahrung in Cloud Logging beträgt 30 Tage.
Die Richtung zählt: den Reporter lesen
Ein Flow zwischen zwei Ihrer VMs kann doppelt gemeldet werden, einmal von jeder Seite. Ein Flow zwischen Ihrer VM und dem Internet wird nur von Ihrer VM gemeldet. Um ausgehenden Verkehr zu messen:
- behalten Sie Datensätze, bei denen
reporter = SRCgilt undsrc_instancegesetzt ist (Ihre VM ist der Sender), und dest_ipeine öffentliche Adresse ist (nicht RFC 1918, nicht die von Ihnen genutzten Bereiche von Private Google Access).
Summieren Sie dann bytes_sent nach dest_ip. Die Spitze dieser Liste, eingeschränkt auf das Zeitfenster des Vorfalls, ist Ihre Kandidatenliste für Exfiltration. dest_location.asn und country helfen, ein CDN von einem VPS zu unterscheiden.
Korrelation mit den Audit-Logs
Am stärksten sind Flow-Logs in der Korrelation. Die Audit-Logs liefern Ihnen Angreifer-IPs (requestMetadata.callerIp) von der API-Seite. Taucht dieselbe IP in Flow-Datensätzen auf:
- Eingehend auf Port 22 nach einem
setMetadata, dasssh-keyshinzufügt, und einemresetder VM: Der Angreifer hat sich mit dem eingeschleusten Schlüssel angemeldet. Siehe Missbrauch von Compute Engine. - Ausgehend auf 443 von der VM, viele Datensätze, wachsendes Volumen: eine Hintertür aus einem Startskript, die nach Hause telefoniert, oder abfließende Daten. MITRE T1071 für Command and Control, T1048 für Exfiltration über ein anderes Protokoll.
Diese Verbindung – IP auf API-Seite gleich Gegenstelle auf Netzwerkseite – macht aus zwei Teilgeschichten eine Zeitleiste.
Flow-Logs abfragen
Für einen ersten Blick genügt der Logs Explorer:
logName:"compute.googleapis.com%2Fvpc_flows"
jsonPayload.connection.dest_ip="203.0.113.66"
Für das Volumen je Ziel über einen Monat leiten Sie Flow-Logs nach BigQuery und aggregieren dort, oder Sie exportieren sie als JSON (siehe Cloud Audit Logs erklärt; die Exportwege sind identisch) und legen sie zusammen mit den Audit-Logs im Analyzer ab.
Was der Analyzer mit Flow-Logs macht
Der Analyzer aggregiert Flow-Datensätze im Browser und erzeugt:
- Reiter „VPC-Flows“: Gesamtzahl der Datensätze und Bytes, an Internet-Adressen gesendete Bytes und die größten Flows (Quelle, Ziel, Port, Bytes, Datensätze).
- IP-Entitäten: für jede Aufrufer-IP die laut Flow-Logs an sie gesendeten und von ihr empfangenen Bytes.
flow_large_egress(mittel, Exfiltration, T1048): mindestens 1 GiB von Ihren VMs an eine einzelne öffentliche IP gesendet.flow_ioc_match(hoch, Command and Control, T1071): Eine IP hinter einem Audit-Befund mit hohem Schweregrad (oder ein von einer neuen IP genutzter Schlüssel) hat auch Verkehr mit Ihren VMs ausgetauscht. Das Ziel liest sich etwa so: 203.0.113.66 ↔ etl-worker-1 (1.9 GiB out, 47.1 KiB in).
Beide fließen in die Angriffsketten-Korrelation ein. Im fiktiven Fallbeispiel ist es der Flow-Abgleich, der zeigt, dass die Startskript-Hintertür tatsächlich ausgeführt wurde.
Grenzen, die in den Bericht gehören
- Keine Flow-Logs, keine Schlussfolgerung. Waren Flow-Logs im Subnetz deaktiviert, bedeutet „kein großer ausgehender Verkehr“ nichts.
- Schätzungen. Geben Sie Volumina als Näherungswerte an, mit dem Hinweis auf das Sampling.
- Konstruktionsbedingte blinde Flecken. Verkehr, der nie über eine protokollierte Schnittstelle hinausgeht (etwa über einen Proxy oder über Google-APIs statt über das Netzwerk kopiert), braucht andere Belege: Der Artikel zur Exfiltration aus GCS und BigQuery behandelt Kopien auf API-Seite.
- Geteilte Infrastruktur. Ein Angreifer, der den IP-Bereich eines Cloud-Anbieters nutzt, teilt ihn womöglich mit legitimen Diensten; bestätigen Sie anhand von Zeitpunkten und Ports.
Vor dem nächsten Vorfall
Aktivieren Sie Flow-Logs in Subnetzen mit sensiblen Workloads, wählen Sie eine sekundäre Abtastrate, die Sie sich leisten können, und leiten Sie sie zusammen mit den Audit-Logs in einen Langzeitspeicher. Using VPC Flow Logs erklärt die Einstellungen.
Häufige Fragen
Zeigen VPC Flow Logs den Inhalt des Datenverkehrs?
Nein. VPC Flow Logs erfassen nur Metadaten der Flows: Quell- und Ziel-IPs und -Ports, Protokoll, geschätzte Bytes und Pakete, die meldende Seite sowie Angaben zu VM und Standort. Es gibt keine Nutzdaten.
Sind die Byte-Zahlen in VPC Flow Logs exakt?
Nein. Google beschreibt bytes_sent und packets_sent als Schätzungen auf Basis von Stichproben und empfiehlt, für mehr Genauigkeit über längere Zeiträume oder mehrere Ressourcen zu aggregieren. Nutzen Sie sie, um Ziele zu ranken und den Umfang einer Exfiltration abzuschätzen, nicht als exakte Zahl.
Weiterführende Links
- VPC Flow Logs overview – Dokumentation von Google Cloud.
- Flow log record format – Dokumentation von Google Cloud.
- MITRE ATT&CK T1048, Exfiltration Over Alternative Protocol.