Die KI-Sicherheitsfirma PromptArmor hat eine Angriffskette gegen Databricks Genie Code offengelegt: Ein Skill mit bösartigem Code kann, ohne dass der Nutzer etwas merkt, Daten aus dem Tenant an einen Server des Angreifers senden und gleichzeitig ein Phishing-Login-Fenster im Chat-Interface einblenden. Von den vier offiziellen Sicherheitskontrollen, die PromptArmor auflistet, hat keine einzige diese Angriffskette gestoppt.
Genie Code ist der in Databricks integrierte Agenten-Assistent, mit dem Nutzer per natürlicher Sprache Tabellen abfragen, Analysen ausführen und Diagramme erstellen lassen können – die Ergebnisse werden direkt im Chat-Fenster im Browser dargestellt. Ein Skill ist ein Funktionspaket, das Agenten hochgeladen werden kann; es enthält Beschreibungstext und kann zusätzlich ausführbaren Code mitbringen.
So läuft der Angriff ab
Der von PromptArmor demonstrierte Ablauf umfasst nur vier Schritte. Der Nutzer lädt einen scheinbar normalen Skill zur Datenanalyse hoch und lässt Genie damit einen Datensatz analysieren; Genie führt den Code im Skill aus, und der zuständige Guardrail-Agent erkennt die bösartige Funktion nicht; Genie fordert den Nutzer anschließend auf, "das vollständige Analyseergebnis zu öffnen"; sobald das Ergebnis gerendert wird, erscheint das Phishing-Fenster, und zugleich werden die Daten abgeschickt.
Die Methode zum Abschöpfen der Daten ist denkbar simpel. Der Skill-Code liest zunächst sensible Daten aus dem Tenant des Opfers und bettet sie in einen HTML-Abschnitt ein, der im Chat angezeigt werden soll; das JavaScript in diesem HTML stellt im Browser des Nutzers eine Netzwerkanfrage, die die Daten an den Server des Angreifers sendet. Auch das Phishing-Fenster wird von genau diesem HTML-Abschnitt gerendert und legt sich über die Genie-Seite, um den Nutzer zur Eingabe von Konto und Passwort zu verleiten. Für den gesamten Vorgang ist an keiner Stelle eine manuelle Freigabe erforderlich.
Warum alle vier Kontrollen versagten
PromptArmor hat die vier in der Databricks-Dokumentation genannten Kontrollarten einzeln durchgeprüft:
- Skill-Governance auf Organisationsebene: Genie lädt Skills auch aus dem persönlichen Workspace des Nutzers, nicht nur aus zentral verwalteten Verzeichnissen der Organisation, sodass Admins keinen Zugriff auf selbst hochgeladene Skills haben;
- Guardrail-Agent: Databricks positioniert ihn selbst als "Best-Effort-Effizienzfunktion" und verspricht nicht, ihn als Sicherheitsgrenze zu nutzen;
- Ausgangskontrolle der Code-Umgebung: Sie begrenzt nur den ausgehenden Verkehr der Ausführungsumgebung des Codes, die Daten werden hier aber aus dem Browser des Nutzers gesendet – diese Ebene sieht das nicht;
- Sandbox für die Chat-Darstellung: Der Skill nutzt bereits erlangte Daten, um den Anzeigeinhalt zusammenzusetzen, ohne den Tenant im Darstellungsschritt erneut abzufragen.
Jeder der vier Gründe hat für sich genommen seine Logik, zusammen lassen sie aber genau eine Lücke offen. PromptArmor meldete das Problem am 16. August an Databricks, beide Seiten stimmten sich einen Monat lang ab, und am 16. September teilte PromptArmor mit, die Veröffentlichung vorzubereiten.
Die Haltung von Databricks in der Antwort ist recht eindeutig:
"it is ultimately the user's responsibility to ensure that uploaded skills do not contain malicious content"
(Es liege letztlich in der Verantwortung des Nutzers, sicherzustellen, dass hochgeladene Skills keinen bösartigen Inhalt enthalten.)
Zur Auto-Approval-Funktion, mit der sich die einzelne Bestätigung überspringen lässt, erklärt Databricks ebenfalls, man wolle sie "nicht als Sicherheitsgrenze" verstanden wissen, und die Dokumentation rät von ihrem Einsatz in Produktionsumgebungen ab.
Die gleiche Art Lücke gibt es auch bei anderen
Stellt man die Berichte, die PromptArmor im vergangenen Jahr veröffentlicht hat, nebeneinander, zeigt sich eine hochgradig ähnliche Angriffsfläche. Zuvor hatte das Unternehmen bereits aufgedeckt, dass Claude Cowork Dateien preisgab und Google Antigravity Daten offenlegte – jeweils nach dem gleichen Muster: Der Agent liest sensible Inhalte, und über Rendering, Links oder Netzwerkaufrufe werden die Inhalte nach außen geschleust. Der Unterschied liegt im Einstiegspunkt: Bei den früheren Fällen diente meist Prompt-Injection als Einfallstor, dieses Mal bei Genie ist es ein Skill – ein Plugin, das "einmal installiert, sofort Code ausführen kann".
Für Unternehmen ist ein Skill schwerer abzusichern als ein Stück Injection-Text. Injection-Text muss sich zumindest in einer Webseite oder einem Dokument verstecken und darauf warten, dass der Agent ihn liest; ein Skill wird vom Nutzer aktiv installiert und bringt von Natur aus schon Vertrauen mit. Auch in der Wissenschaft wird das Thema in diesem Jahr intensiv diskutiert, auf arXiv sind bereits eigene Benchmarks zur Bewertung bösartiger Skills aufgetaucht, und die Falsch-negativ-Rate der Erkennungswerkzeuge ist insgesamt nicht niedrig.
Auch nicht wenige Teams in China binden derzeit Agenten an Datenplattformen an und öffnen Plugin-Marktplätze; die Checkliste, die dieser Vorfall liefert, ist sehr konkret: Lassen sich Skills nur aus einem von Admins geprüften Verzeichnis laden, kann das vom Agenten ausgegebene HTML Skripte ausführen und Anfragen an externe Domains senden, ist der Auto-Approval-Schalter in Produktionsumgebungen standardmäßig deaktiviert. Sobald auch nur einer dieser drei Punkte nicht abgesichert ist, lässt sich die von PromptArmor demonstrierte Angriffskette reproduzieren.
Auch die Empfehlungen von PromptArmor laufen auf genau diese Punkte hinaus: Bei Produktionsdaten sollte Auto-Approval nicht aktiviert werden, und man sollte auf vergiftete Pakete in Skill-Marktplätzen achten. Ob Databricks auf Produktebene noch eine zusätzliche Ausgangsfilterung nachrüstet, ist bislang nicht öffentlich mitgeteilt worden.
Quellen: Sicherheitsbericht von PromptArmor, Produktdokumentation zu Databricks Genie Code, CocoLoop, Fachartikel zu bösartigen Skills auf arXiv; Zeitpunkte der Offenlegung und Abstimmung sowie der Originalwortlaut der Databricks-Antwort folgen dem Bericht von PromptArmor.