Eine Sicherheitslücke im Vertex AI SDK für Python ermöglichte Angreifern, Modell-Uploads zu kapern und Code in der Infrastruktur von Google auszuführen.
Sicherheitsforscher von Palo Alto Networks Unit 42 haben eine kritische Schwachstelle im Google Cloud Vertex AI SDK für Python identifiziert. Der Fehler erlaubte es Angreifern, Modell-Uploads eines Opfers zu übernehmen, ohne dabei Zugriff auf das eigentliche Projekt des Opfers zu benötigen. Die von den Forschern als Pickle in the Middle bezeichnete Angriffsmethode nutzte eine Schwäche bei der automatischen Erstellung temporärer Cloud Storage Buckets.
Wenn ein Nutzer keinen spezifischen Bucket festlegte, generierte das SDK einen vorhersagbaren Namen basierend auf Projekt-ID und Region. Da Bucket-Namen global eindeutig sind, konnte ein Angreifer einen Bucket mit diesem erwarteten Namen in seinem eigenen Projekt vorab registrieren. Dies führte dazu, dass das SDK des Opfers das Modell in den vom Angreifer kontrollierten Bucket hochlud.
Ausführung von Schadcode durch Modell-Manipulation
Sobald das Modell in den vom Angreifer kontrollierten Speicherbereich hochgeladen wurde, konnte dieser das Modell durch eine manipulierte Datei ersetzen. Da viele Python-Modelle das Pickle- oder Joblib-Format verwenden, das beim Laden Dateien automatisch ausführt, konnte so Schadcode innerhalb des Serving-Containers von Vertex AI injiziert werden. Unit 42 konnte in einer Testumgebung demonstrieren, wie dieser Angriff zur Exfiltration von OAuth-Tokens und zum Zugriff auf interne Ressourcen, inklusive BigQuery-Metadaten und Modellartefakten, genutzt werden kann.
Sicherheitsupdates für Google und Empfehlungen
Google hat die Sicherheitslücke in zwei Schritten geschlossen. Mit der Version 1.144.0 wurde ein zufälliger UUID4-Wert in den Bucket-Namen eingefügt, um die Vorhersagbarkeit zu unterbinden. Mit der Version 1.148.0 wurde zusätzlich eine Überprüfung der Bucket-Eigentümerschaft implementiert, um sogenanntes Bucket Squatting bei der Modell-Upload-Funktion zu blockieren. Anwender sollten folgende Maßnahmen umsetzen:
- Aktualisierung des google-cloud-aiplatform SDK auf Version 1.148.0 oder höher.
- Manuelle Konfiguration des Parameters staging_bucket bei der Verwendung von Modell-Uploads.
- Prüfung der SDK-Version in allen Umgebungen, einschließlich Notebooks, CI-Jobs und Training-Pipelines.
(red)