- Google veranstaltet zur Stärkung der AI-Sicherheit im Vorfeld ein bugSWAT-Event im Stil von Red Teaming und gibt Forschern die Möglichkeit, die eigenen AI-Systeme gründlich zu testen
- Das Team, das 2023 50.000 US-Dollar gewann, entdeckte diesmal erneut eine neue Schwachstelle in Gemini und erhielt den Titel Most Valuable Hacker (MVH)
- Das Hacker-Team bekam von Google Zugriff auf neue Preview-Funktionen von Gemini sowie Dokumentation und testete die Funktionen aus Sicherheitsperspektive
- Bei der Anfrage nach Python-Code mit einem einfachen Prompt wurde ein Button „Run in Sandbox“ angezeigt
- Die Sandbox-Umgebung von Gemini ist eine sichere Python-Ausführungsumgebung auf Basis von Googles gVisor und GRTE
- gVisor ist ein von Google entwickelter Userspace-Kernel, der Systemaufrufe abfängt und so die Sicherheit erhöht
- Die Sandbox-Umgebung ist vollständig isoliert, ein Ausbruch ist sehr schwierig
- Innerhalb der Sandbox kann es jedoch Fälle geben, in denen Daten exfiltriert werden können
- Es wurde festgestellt, dass die Sandbox die Bibliothek
os bereitstellt, woraufhin Python-Code geschrieben wurde, um das Dateisystem zu durchsuchen
- Dabei wurde eine 579 MB große Binärdatei unter
/usr/bin/entry/entry_point gefunden
- Wenn die Binärdatei direkt als base64 ausgegeben wird, stürzt die Sandbox ab, daher wurde sie in 10-MB-Blöcke aufgeteilt und ausgegeben
- Mit einem Tool namens
Caido wurden alle Blöcke automatisiert gesammelt und lokal wieder zusammengesetzt
- Die Analyse mit den Befehlen
file, strings und binwalk legte die interne Struktur und interne Google-Pfade offen
- Durch die Analyse mit binwalk wurde ein Verzeichnis
google3 entdeckt, das internen Python-Quellcode enthielt
- Im Verzeichnis
assistant befand sich RPC-bezogener Code, über den Gemini mit Google-Diensten wie YouTube und Flights interagiert
- Es waren Zeichenfolgen enthalten, die das Dumpen bestimmter Skripte verhindern sollten, doch Googles Sicherheitsteam prüfte den Code vorab und entschied, dass eine Offenlegung möglich sei
Analyse der Hauptlogik der Sandbox
- Aufrufe an Google-Dienste sind in bestimmten Klassen implementiert, die in Python geschrieben sind
- Beispiele:
_set_reader_and_writer, run_tool usw. kommunizieren über Dateideskriptoren mit Google-Diensten
- Innerhalb der Binärdatei können Nachrichten direkt auf Basis von Protobuf-Schemata aufgebaut und Tool-Aufrufe durchgeführt werden
- Auf Grundlage des ReAct-Papers hat Google Gemini so implementiert, dass es zur Lösung komplexer Probleme selbst mehrfach Prompts erzeugt und Pläne erstellt
- Beispiel: Wenn ein Nutzer fragt „Toronto → New York Flugzeiten?“, wählt Gemini in mehreren Schritten Tools aus und ruft Daten ab
- Diese Logik wurde für Prompt Injection missbraucht, um die Erstellung einer Sandbox mit höheren Rechten zu versuchen
- Einige Sandboxes können auf Googles Erweiterungsfunktionen wie RPC-APIs zugreifen
- Die Erweiterungsfunktionen werden über stets offene FDs aufgerufen; deren Missbrauch könnte einen Zugriff auf Systeme auf höherem Niveau ermöglichen
- Es wurde bestätigt, dass unter bestimmten Bedingungen, etwa wenn Gemini in die Planungsphase eintritt, Zugriff auf fortgeschrittene Sandboxes möglich ist
Exfiltration sensibler Proto-Dateien
- Protocol Buffer-Dateien (proto) werden zur Definition von Daten zwischen Systemen verwendet und enthalten sensible Informationen über Systemstrukturen
- Nach Ausführung von
strings entry_point > stringsoutput.txt wurden durch die Suche nach der Zeichenfolge „Dogfood“ zahlreiche sensible Proto-Pfade offengelegt
- Beispiel:
privacy/data_governance/attributes/proto/classification.proto → eine Datei, die definiert, wie Google Nutzerdaten klassifiziert
- Mit dem Befehl
cat stringsoutput.txt | grep '.proto' | grep 'security' wurde eine Liste zahlreicher sensibler sicherheitsbezogener Proto-Dateien offengelegt
- Beispiele:
security/thinmint/proto/core/thinmint_core.proto, security/credentials/proto/authenticator.proto usw.
Warum waren solche Dateien vorhanden?
- Googles Sicherheitsteam hatte die in der Sandbox-Binärdatei enthaltenen Inhalte im Vorfeld freigegeben, doch eine automatisierte Build-Pipeline fügte unnötige Security-Proto-Dateien hinzu
- Dadurch wurden hochsensible interne Definitionsdateien nach außen offengelegt
- Die Hacker stuften dies als Schwachstelle ein, da diese Dateien nach Googles eigenen Maßstäben als sensible Informationen gelten
Fazit und Rückblick
- In AI-Systemen interagieren zahllose Komponenten, weshalb häufig unerwartete Sicherheitsprobleme auftreten
- Selbst eine einzelne Sandbox kann mit internen Tools kommunizieren und ihre Berechtigungen können sich dynamisch ändern, weshalb präzise Tests erforderlich sind
- Die Zusammenarbeit mit Googles Sicherheitsteam war hilfreich, und die gesamte Erfahrung war ein anspruchsvolles und zugleich spannendes Abenteuer
1 Kommentare
Hacker-News-Kommentare
stringsauszuführen, um ein paar Dateinamen aus einem Binärfile zu extrahieren, lässt sich kaum als Hacking/Cracking bezeichnen.