Übermäßige Agency ist eine Sicherheitslücke, die auftritt, wenn einem Large Language Model (LLM) unnötige oder zu permissive Berechtigungen für die Interaktion mit anderen Systemen gewährt werden. Wenn ein LLM externe Tools, Plug-ins oder Funktionen aufrufen kann (seine „Agency“), kann es durch diese Sicherheitslücke Aktionen ausführen, die unbeabsichtigt, nicht autorisiert und potenziell schädlich sind. Ein Angreifer kann dies ausnutzen, indem er Prompt-Injection oder andere Manipulationstechniken verwendet, um das LLM dazu zu bringen, seine gewährte Agency für böswillige Zwecke zu nutzen. Das Problem ist nicht nur, dass das LLM Aktionen ausführen kann, sondern dass der Umfang dieser Aktionen zu breit gefasst und schlecht kontrolliert ist.
Warum sollten sich Android-Entwickler damit befassen?
Wenn Sie einem LLM in Ihrer Android-Anwendung zu viel Eigenständigkeit gewähren, kann dies zu schwerwiegenden Sicherheitsvorfällen führen:
- Unbefugter Systemzugriff: Ein Angreifer könnte das LLM anweisen, auf Dateien auf dem lokalen Android-Gerät (z. B. Nutzerdokumente, App-Daten) oder auf verbundenen Netzwerkressourcen zuzugreifen, sie zu ändern oder zu löschen, wenn das Modell die entsprechenden Android-Berechtigungen dafür hat.
- Datenexfiltration: Das LLM könnte dazu verleitet werden, vertrauliche Daten aus lokalen App-Datenbanken (z. B. Room), SharedPreferences oder internen APIs zu lesen und diese Informationen dann an eine externe Quelle zu übertragen (z. B. durch Senden über einen API-Aufruf oder eine E-Mail-Funktion). Das Modell könnte auch vertrauliche Informationen weitergeben, die es während der Trainingsphase aufgenommen hat, oder vertrauliche Informationen, die der Nutzer in seinem Prompt angibt.
- Beeinträchtigung anderer Funktionen/Systeme: Wenn das LLM die Kontrolle über andere Funktionen hat (z. B. Senden von SMS, Tätigen von Anrufen, Posten in sozialen Medien mit impliziten Intentionen, Ändern von Systemeinstellungen, Tätigen von In-App-Käufen), kann ein Angreifer diese Funktionen missbrauchen, um Spam zu senden, Falschinformationen zu verbreiten oder unautorisierte Transaktionen durchzuführen, was zu direkten finanziellen Verlusten oder Schäden für Nutzer führen kann.
- Denial of Service: Das LLM könnte angewiesen werden, ressourcenintensive Aktionen in der App oder für Back-End-Dienste wiederholt auszuführen, z. B. komplexe Datenbankabfragen auszuführen oder eine API in einer Schleife aufzurufen. Dies kann dazu führen, dass die App nicht mehr reagiert, der Akku entladen wird, der Datenverbrauch zu hoch ist oder sogar ein Denial of Service für Back-End-Systeme erfolgt.
Maßnahmen für Android-App-Entwickler
Bei der Eindämmung von übermäßigem Handlungsspielraum in Android-Apps geht es darum, das Prinzip der geringsten Berechtigung auf jedes Tool und jede Funktion anzuwenden, auf die das LLM zugreifen oder die es auslösen kann.
Beschränken Sie die KI-Toolbox (granulare im Vergleich zu offenen Funktionen):
- Minimale Tools bereitstellen: Das LLM sollte nur Zugriff auf die spezifischen Tools (Funktionen, APIs, Intents) haben, die es unbedingt benötigt, um seine Aufgabe in Ihrer App zu erfüllen. Wenn es nicht im Web suchen oder eine E-Mail senden muss, sollten Sie diese Funktionen nicht zur Verfügung stellen.
- Einfache Tools mit einem einzigen Zweck verwenden: Es ist besser, dem LLM ein Tool zu geben, das nur eine bestimmte Aufgabe ausführen kann (z. B. „eine bestimmte Art von Nutzereinstellung lesen“), anstatt eines leistungsstarken, offenen Tools, das alles tun könnte (z. B. „einen beliebigen Shell-Befehl ausführen“).
Leistungsfähigkeit der KI einschränken
- Feingranulare Android-Berechtigungen: Wenn eine durch ein LLM ausgelöste Funktion mit Android-Systemressourcen oder anderen Apps interagiert, muss Ihre App nur die absolut erforderlichen Android-Berechtigungen anfordern und behalten.
- Berechtigungen pro Nutzer: Wenn das LLM eine Aktion im Namen des Nutzers ausführt, sollte es dies mit den spezifischen Berechtigungen und dem Kontext dieses Nutzers tun, nicht mit einem umfassenderen Konto auf App-Ebene, das möglicherweise Administratorberechtigungen hat. So wird überprüft, dass das LLM nichts tun kann, was der Nutzer nicht selbst tun dürfte.
Menschliche Kontrolle behalten (Nutzereinwilligung für kritische Aktionen)
- Nutzergenehmigung erforderlich: Bei allen wichtigen oder riskanten Aktionen, die ein LLM vorschlagen oder ausführen könnte (z. B. Daten löschen, In-App-Käufe tätigen, Nachrichten senden, kritische Einstellungen ändern), ist immer eine explizite Genehmigung durch den Nutzer über ein Bestätigungsdialogfeld in der Benutzeroberfläche erforderlich. Stellen Sie sich vor, Sie benötigen die Genehmigung eines Managers für eine wichtige Entscheidung.
Vertrauen, aber prüfen (Ein-/Ausgabe-Validierung und robuste Backends)
- Backend-Sicherheit: Verlassen Sie sich nicht nur auf das LLM, um zu entscheiden, ob eine Aktion zulässig ist. Alle Back-End-Dienste oder APIs, mit denen die LLM-ausgelösten Funktionen verbunden sind, sollten über eine eigene robuste Authentifizierung, Autorisierung und Eingabevalidierung verfügen, um jede Anfrage noch einmal zu prüfen und sicherzustellen, dass sie legitim ist und den erwarteten Parametern entspricht.
- Daten bereinigen: Wie bei anderen Sicherheitslücken ist es wichtig, sowohl die Eingabe, die in das LLM eingegeben wird, als auch die vom LLM für Funktionsaufrufe generierten Parameter zu bereinigen und zu validieren, um schädliche Anweisungen oder unerwartete Ausgaben zu erkennen, bevor eine Aktion ausgeführt wird.
Zusammenfassung
Übermäßige Agency ist eine kritische Sicherheitslücke, bei der ein LLM übermäßig weitreichende Berechtigungen für die Interaktion mit anderen Systemen oder Funktionen hat, sodass es dazu verleitet werden kann, schädliche Aktionen auszuführen. Dies kann zu unbefugtem Datenzugriff, Systembeeinträchtigungen, finanziellen Verlusten oder Schäden für Nutzer in Android-Anwendungen führen. Die Risikominderung basiert stark auf dem Prinzip der geringsten Berechtigung: Die für das LLM verfügbaren Tools und Android-Berechtigungen werden streng eingeschränkt, jedes Tool hat nur minimale und spezifische Funktionen und für alle Operationen mit hoher Auswirkung ist eine Genehmigung durch den Nutzer erforderlich.