Die Sicherheit von Anwendungen mit generativer KI (GenAI) beginnt mit der Festlegung der Vertrauensgrenze. Eine Vertrauensgrenze ist der Punkt, an dem ein anderer Betreiber oder ein anderes Regelwerk eine Anfrage überwachen, ändern oder blockieren kann.
In diesem Kurs sichern wir eine GenAI-Anwendung ab, die Prompts sendet, private Daten abruft, Tools aufruft und Ausgaben liefert. Die Sicherheitsarbeit unterscheidet sich von der bei herkömmlichen Anwendungen, da sich Eingaben und Ausgaben des Modells nicht zuverlässig von den Anweisungen trennen lassen.
Zudem behandeln wir die Modellausgabe als nicht vertrauenswürdige Eingabe für jedes nachgelagerte System, das diese verarbeitet oder darauf reagiert. Allein diese Annahme verhindert viele vermeidbare Vorfälle wie Datenabfluss oder den Missbrauch von Tools.
Eine GenAI-Anwendung weist dieselben grundlegenden Angriffsflächen auf wie jede Web-Workload. Auch hier sind Identitätsmanagement, Netzwerksegmentierung, Verschlüsselung, Protokollierung und Incident-Response-Verfahren erforderlich.
Eine GenAI-Anwendung bringt zusätzliche Risiken durch Prompts, Abrufkontexte (Retrieval-Kontext), Tool-Argumente und Modellausgaben mit sich. Über diese Pfade können sensible Daten übertragen werden, selbst wenn der Anbieter zusichert, die Eingabedaten nicht für das Training zu verwenden.
Die erste Aufgabe bei der Bedrohungsmodellierung besteht darin, das zu schützende Asset und die zugehörige Schutzgrenze zu benennen. Im Bereich GenAI gehören proprietäre Texte, Zugangsdaten und Tool-Funktionalitäten zu den wichtigsten Assets.
Die Verantwortlichkeiten in der Cloud verlagern sich je nach Art der Modellnutzung. Ein Nutzungsmodus ist die betriebliche Entscheidung darüber, wer das Modell ausführt und wer Zugriff auf dessen Laufzeitumgebung hat.
Zu den gängigen Modi gehören der Aufruf einer API für ein gehostetes Modell, die Anpassung eines verwalteten Modells, die Entwicklung auf einer verwalteten KI-Plattform sowie das Selbst-Hosting der Modellgewichte. Jeder Schritt in Richtung Selbst-Hosting erhöht den Umfang der direkt abzusichernden Komponenten.
Ein Anbieter kann den Modelldienst betreiben und sich dennoch außerhalb der Vertrauensgrenze der Anwendung befinden. Das Anwendungsteam bleibt weiterhin verantwortlich für die Prompt-Verarbeitung, die Filterung von Abrufergebnissen, die Autorisierung von Tools sowie die Verarbeitung der Ausgaben.
Nun können wir untersuchen, wie sich die Verantwortlichkeiten zwischen diesen Modi verlagern.
Der weitere Verlauf des Kurses basiert auf einer kleinen Anzahl von Grenzen. Jede Grenze dient als Ansatzpunkt für Sicherheitsmaßnahmen und die spätere Überprüfung von Nachweisen.
Identitätsgrenze: Legt fest, welcher Akteur (Principal) eine API mit welchen Berechtigungen aufrufen darf. Diese Grenze umfasst Workload-Anmeldeinformationen, den Sitzungsumfang (Session Scope) sowie Autorisierungsprüfungen bei jedem Tool-Aufruf.
Netzwerkgrenze: Bestimmt, wohin der Datenverkehr auf Paketebene fließen kann. Diese Grenze umfasst private Verbindungen, Beschränkungen des ausgehenden Datenverkehrs (Egress) sowie die Erreichbarkeit eines Dienstes aus dem öffentlichen Internet.
Datengrenze: Legt fest, welche Speichersysteme und Protokolle (Logs) Prompts, abgerufene Kontextdaten und Ausgaben dauerhaft speichern können. Diese Grenze umfasst Aufbewahrungsfristen, Zugriffskontrollen und die Frage, ob sensible Felder vor der Protokollierung unkenntlich gemacht (redigiert) werden.
Grenze für Modellartefakte: Bestimmt, wie Modelldateien, Adapter und Container in die Build- und Laufzeitumgebung gelangen. Diese Grenze umfasst Herkunftsnachweise (Provenienz), Integrität und die Offenlegung von Abhängigkeiten während des Ladens und der Bereitstellung (Deployment).
Tool-Grenze: Legt fest, welche Aktionen das Modell über Konnektoren, Funktionen oder Agenten auslösen kann. Diese Grenze umfasst aktionsspezifische Autorisierungen sowie Beschränkungen hinsichtlich der Argumente, die an ein Tool übermittelt werden dürfen.
Grenze für externen Datenausgang (Egress): Bestimmt, welche Daten an Drittanbieter, Plugins oder das offene Internet übertragen werden können. Diese Grenze ist entscheidend, da für eine Datenexfiltration ein ausgehender Übertragungsweg erforderlich ist.
Nun können wir veranschaulichen, wie Prompts, Abrufvorgänge (Retrieval), Tools, Protokolle und ausgehender Datenverkehr diese Grenzen überschreiten.