Pickle in der Mitte eine Vertex AI Sicherheitslücke, die Sie führen Code und stehlen Modelle

Autor: Veröffentlicht 4 min de lectura 269 Lesen

Die Bilder in diesem Artikel wurden mit künstlicher Intelligenz erstellt. So veröffentlichen wir

Ein Ausfall in der Python SDK von Google Cloud Vertex AI erlaubte einem Angreifer ohne Anmeldeinformationen oder vor dem Zugriff auf das Projekt des Opfers, die Last eines Modells zu entführen und Code in Googles Dienstinfrastruktur auszuführen. Palo Alto Networks Unit 42 taufte die Technik als "Pickle in the Middle" und berichtete das Problem an Google; der Hersteller hat bereits das SDK gepatelt, aber der Vorfall lässt wichtige Lektionen über Designrisiken und unsichere Praktiken in maschinellen Lernpipelines.

Die technische Wurzel war einfach und gefährlich: Wenn das SDK einen temporären Eimer benötigte, um Modellartefakte hochzuladen und der Benutzer keine angeben, generierte es einen vorhersehbaren Namen aus der Projekt-ID und der Region - zum BeispielProjekt-vertex-staging-region- und nur überprüft, wenn es existierte, nicht, wenn der Eimer zum Projekt des Benutzers gehörte. Da die Namen der Eimer weltweit einzigartig sind, könnte ein Angreifer mit seinem eigenen Projekt zuerst diesen Eimer schaffen und darauf warten, dass das Opfer aufsteigt. Der Angreifer ersetzte dann die durch ein böswilliges Artefakt erhobenen Inhalte. Da viele Python-Modelle mit Pickle oder Jobligb seriellisiert werden - Formate, die Code bei der Deerialisierung ausführen -, als Vertex AI dieses Modell geladen wurde die Nutzlast des Angreifers innerhalb des Servierbehälters ausgeführt.

Pickle in der Mitte eine Vertex AI Sicherheitslücke, die Sie führen Code und stehlen Modelle
Bild generiert mit IA.

Die Operation war abhängig von einem Zeitfenster (TOCTOU): Einheit 42 gemessen ein Intervall von etwa 2,5 Sekunden zwischen dem Aufstieg und dem Lesen durch Vertex AI; in seinem Konzepttest ersetzte eine Cloud-Funktion das Objekt in 1,4 Sekunden und die Nutzlast stahl ein OAuth-Token aus dem Metadatenserver des Containers und sendete es an den Angreifer. Dieses Token, in der Testumgebung, hatte umfangreichere Berechtigungen als die einfach begangene Instanz: es erlaubte Zugriff auf andere Artefakte im Google-managed Mieter, einschließlich komplette Modelle, BigQuery Metadaten, Zugriffslisten, Protokolle und interne Container-Bildwege. Mit anderen Worten könnte der Betrieb dazu führen, Ferncodeausführung, Modelldiebstahl und seitliche Bewegung innerhalb des Mieters.

Der Vektor arbeitete nur, wenn es zwei gemeinsame Bedingungen gab: dass der Standardpuffer der Inszenierung nicht in der Region existierte (gewöhnliche Situation in neuen Projekten) und dass der Entwickler den Parameter nicht explizit festgelegt hattefalten _ buck. Unit 42 meldete die Sicherheitslücke am 5. März 2026; Google startete eine erste Vereinbarung (Anpassung des Namens mit uuid4) und beendete die Korrektur durch Hinzufügen einer Überprüfung des Bucket-Besitzes in Model.upload () in der Version 1.148.0 des Pakets.

Die Auswirkungen auf ML und Sicherheitsausrüstung sind breit: über den Verlust des geistigen Eigentums (Stolen- oder Vergiftungsmodelle) hinaus zeigt die Technik, wie Designentscheidungen in unsicheren Kunden und Standardeinstellungen kann Klettervektoren ohne Phishing oder komplexe Exploits werden. Er betont auch das Risiko von unsicheren Serialisierungsformaten in multi-tenanten Umgebungen und die Notwendigkeit von Politiken, die die Schaffung von vorhersehbaren Ressourcen vermeiden, die von einem Konkurrenten oder einem externen Angreifer ausgenutzt werden können.

Empfohlene Sofortaktionen: Aktualisieren Sie das SDK auf die abgebuchte Version mit dem App-Befehl (z.pip install - hochgradige Google-cloud-aiplatform > = 1.148.0) und, sehr wichtig, immer explizite Inszenierung definieren _ buck wie ein Cloud-Speicherort, den Sie steuern. Überprüfen Sie die Version vongoogle-cloud-aiplatformwo immer es läuft: Notebooks, CI / CD, Schulungspipelines und Testumgebungen, nicht nur in der Produktion. Wenn Sie vermuten, dass es vor dem Patch Exposition geben kann, betrachten Sie die rotierenden betroffenen Service-Anmeldeinformationen und -Token und überprüfen Sie die Geschichte der öffentlichen oder geteilten Eimer Objekte.

Pickle in der Mitte eine Vertex AI Sicherheitslücke, die Sie führen Code und stehlen Modelle
Bild generiert mit IA.

Zusätzlich zum Patchen, überprüfen Sie Ihre Serialisierung Praktiken: Wenn möglich, vermeiden Sie das Senden von Modellen in Formaten, die Code auf Last wie Pickle / Jobligb ausführen; bevorzugen Sie Formate für eine sichere Bereitstellung (SavedModel, ONNX oder Exporte, die keinen Code beim Laden ausführen). Beschränken Sie auf der Ebene der Zugriffskontrolle die mit Service-Agenten und -konten verbundenen Genehmigungen, verwenden Sie Workload-Identity und implementieren Sie organisatorische Richtlinien, die die Schaffung von Ressourcen mit vorhersehbaren Namen verhindern oder die die Verknüpfung von Buckets zu bestimmten Projekten erfordern.

Für Antwort- und Risikoausrüstung, Audit Cloud Storage und Vertex AI Protokoll für ungewöhnliche Operationen in Modellladefenstern und überprüfen Sie den Zugriff auf Server-Metadaten und Token, die von verwalteten Diensten ausgegeben werden. Dieser Vorfall ersetzt auf der Tabelle die Notwendigkeit, die ML-Versorgungskette als Bedrohungsvektor zu behandeln: vom Client-Code bis zu den Geräten, die in der Produktion eingesetzt werden.

Lesen Sie die technische Analyse und Benachrichtigung des ursprünglichen Forschers auf der Website Unit 42 für Details von PoC und Betriebszeiten: Einheit 42. Überprüfen Sie die Startnotizen und SDK-Versionen im offiziellen Repository, um zu bestätigen, dass Ihre Umgebung aktualisiert wird: python-aiplatform releases und die Paketseite in PyPI: google-cloud-aiplatform auf PyPI. Akt heute: Patch und fixieren der Inszenierung Eimer entfernt das bekannte Angriffsfenster; ergänzen Sie es mit sicheren Zugriffskontrollen und Serialisierungspraktiken deutlich reduziert das Risiko.

Deckung

Verwandte Artikel

Weitere Neuigkeiten zum selben Thema.