Ü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 das für Android-Entwickler wichtig ist
Wenn Sie einem LLM in Ihrer Android-Anwendung zu viel Eigenständigkeit gewähren, kann dies zu schwerwiegenden Sicherheitsvorfällen führen:
- Unbefugter Systemzugriff: Wenn das Dateisystem und die Speicherressourcen des Geräts oder die Möglichkeit, Netzwerkaufrufe auszuführen, über Funktionsaufrufe für das Modell verfügbar gemacht werden, kann ein Angreifer durch Prompt-Injection auf Dateien auf dem Gerät (z. B. Nutzerdokumente, App-Daten) oder auf verbundenen Netzwerkressourcen zugreifen, diese ändern oder löschen.
- Daten-Exfiltration: Wenn eine App Funktionsaufrufe verwendet, um einem LLM Zugriff auf lokale Daten zu gewähren (z. B. Room-Datenbanken, SharedPreferences oder interne APIs). Ein schädlicher Prompt könnte das Modell dazu verleiten, vertrauliche Informationen abzurufen und an ein externes Tool wie eine E-Mail- oder Netzwerkanfragefunktion zu übergeben.
- 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 nicht autorisierte Transaktionen durchzuführen, was zu direkten finanziellen Verlusten oder Schäden für Nutzer führen kann.
- Denial of Service: Wenn ein LLM in die Funktion „Funktionsaufruf“ eingebunden ist, die Datenbankabfragen oder Netzwerkanfragen offenlegt, kann durch einen schädlichen Prompt wiederholt eine solche Aktion ausgelöst werden. Dies kann zu einer Beeinträchtigung des Systemzustands führen, z. B. zu einem übermäßigen Akkuverbrauch, einer Überschreitung des Datenvolumens oder einer Erschöpfung lokaler Ressourcen.
Maßnahmen für Android-App-Entwickler
Bei der Eindämmung von übermäßigem Einfluss 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.
Toolbox der KI einschränken (granulare vs. offene 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 für das LLM verfügbar machen.
- Einfache Tools mit nur einem Zweck verwenden: Tools mit einem begrenzten und spezifischen Anwendungsbereich entwickeln. Stellen Sie beispielsweise ein Tool bereit, das nur eine bestimmte Art von Nutzereinstellung liest, anstatt eines generischen Tools, das offene Parameter für den Zugriff auf mehrere Datenquellen akzeptiert. Vermeiden Sie es, leistungsstarke APIs auf Systemebene wie
Runtime.getRuntime().exec()für ein LLM verfügbar zu machen, indem Sie dem Modell erlauben, den Befehl oder die Argumente zu definieren.
Leistung 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. Eine Aktion, die von einem LLM ausgeführt wird, muss eine direkte Reaktion auf einen bestimmten Nutzerbefehl sein.
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 eingeht, 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 breite Berechtigungen für die Interaktion mit anderen Systemen oder Funktionen hat, sodass es dazu gebracht werden kann, schädliche Aktionen auszuführen. Dies kann zu unbefugtem Datenzugriff, Systemkompromittierung, 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 Vorgänge mit hoher Auswirkung ist eine Genehmigung durch den Nutzer erforderlich.