GitHub findet mit offenem KI-Agenten 24 Android-Lücken

Kevin Stubbings, Forscher bei GitHub Security Lab, hat am 28. September beschrieben, wie sein Team mit dem hauseigenen Open-Source-KI-Sicherheitsagenten Android-Apps auditiert und dabei insgesamt 24 Sicherheitslücken gefunden und gemeldet hat. Das eingesetzte Tool heißt seclab-taskflow-agent, im Kern eine Reihe von in YAML geschriebenen "Taskflows", die ein großes Sprachmodell Schritt für Schritt anleiten: Code lesen, Einstiegspunkte klassifizieren, Probleme finden, Proof-of-Concepts schreiben.

Diese Taskflows wurden bisher für allgemeine Code-Audits eingesetzt und wurden für diesen Einsatz auf Mobilgeräte zugeschnitten. Neu hinzugekommen sind die beiden Dateien gather_mobile_entry_point_info.yaml und classify_application_local.yaml, die die Einstiegspunkte einer App erfassen beziehungsweise Sicherheitslücken kategorisieren.

So läuft der Ablauf

Laut dem Artikel führen Nutzer ein Audit-Skript in GitHub Codespaces aus, warten einige Minuten, bis die Umgebung initialisiert ist, und lassen den Agenten dann laufen. Bei einem mittelgroßen Repository dauert das etwa ein bis zwei Stunden. Die Ergebnisse landen in einer SQLite-Datenbank: Wer die Tabelle audit_results öffnet und nach markierten Einträgen in der Spalte has_vulnerability filtert, sieht die Stellen, die der Agent als problematisch einstuft.

Die vom Taskflow abgedeckten Schwachstellentypen drehen sich um bekannte Dauerbrenner unter Android: Confused-Deputy-Probleme und unsichere Broadcasts rund um Intents, App-übergreifendes Scripting in WebViews, gegenüber Webseiten offengelegte JavaScript-Bridges, Path Traversal, fehlerhafte Deep-Link-Auflösung sowie das Leaken von Cookies und Login-Tokens. Laut Artikel deckt die Klassifizierung insgesamt 12 CWE-Kategorien ab.

Zwei ausführlich beschriebene Fälle

OsmAnd, eine Open-Source-Karten- und Navigations-App mit über 10 Millionen Downloads. Der Agent fand im Einstellungs-Import-Prozess drei Probleme, darunter eines, mit dem eine bösartige App auf demselben Smartphone – ohne jegliche Berechtigung anzufordern – über an einen Intent angehängte Parameter still und heimlich Konfigurationen importieren und so Standort und Routen des Nutzers verfolgen kann.

Die Android-App von Wikipedia: Der Agent entdeckte eine fehlerhafte Deep-Link-Auflösung. Ein Angreifer kann einen bösartigen Link erstellen, der Nutzer auf eine gefälschte Seite lockt, darüber an Cookies gelangt und am Ende den Account übernimmt sowie ein langlebiges Login-Token erbeutet.

Stubbings schreibt, das Team sei überrascht gewesen, wie genau das Modell das Verhalten sicherheitsrelevanter APIs in verschiedensten Programmiersprachen verstehe – selbst wenn ihm kein Quellcode in eben dieser Sprache vorlag. Der vom Agenten geschriebene Proof-of-Concept-Code habe zudem oft nur minimale Anpassungen benötigt, um lauffähig zu sein.

"LLMs are good at finding vulnerabilities but struggle at estimating severity."

Große Sprachmodelle sind gut darin, Schwachstellen zu finden, tun sich aber schwer damit, deren Schweregrad richtig einzuschätzen.

Was der Agent nicht kann

Über die Grenzen des Ansatzes schreibt der Artikel offen. Das Modell meldet häufig Probleme geringer Kritikalität, selbst wenn der Prompt ausdrücklich darum bittet, solche nicht zu melden. Bei Schwachstellen mit bereits vorhandenen Mitigationen schätzt es den tatsächlichen Schaden falsch ein. Komplexe Datenfluss-Priorisierungsprobleme erkennt es gar nicht erst. Um einen verlässlichen Proof-of-Concept zu bekommen, sind oft mehrere Durchläufe nötig, teils mit angeschlossenem Debugger oder zusätzlichen Prompts. Die Schlussfolgerung: Jeder Fund muss von Forschern mit Mobile-Security-Expertise manuell nachgeprüft werden.

Bei den Kosten braucht man für den Betrieb eine GitHub-Copilot-Lizenz, abgerechnet über Premium-Modellanfragen. Der Artikel weist darauf hin, dass große Repositories viele Tool-Aufrufe erzeugen und entsprechend viele Tokens verbrauchen; welches konkrete Modell eingesetzt wird, bleibt unerwähnt.

Für Entwickler in China

Taskflows und Skripte sind auf GitHub quelloffen verfügbar, sodass Teams in China sie anpassen und für die eigenen Android-Apps nutzen könnten. Die Hürden liegen bei der Copilot-Lizenz und dem Zugriff auf ausländische Modelle. Der Taskflow selbst besteht nur aus in YAML geschriebenen Prompts und Ablaufsteuerung, sodass sich theoretisch auch heimische Modelle einsetzen ließen – wie gut das funktioniert, dazu gibt es bislang keine öffentlichen Vergleichsdaten.

Die Fragmentierung von Android macht solche Werkzeuge auf dem chinesischen Markt besonders nützlich. WebViews und JavaScript-Bridges in den App-Stores, Mini-Programm-Containern und Super-Apps der verschiedenen Smartphone-Hersteller fallen genau in die von dieser Liste abgedeckten Schwachstellentypen. GitHub plant als Nächstes, die Taskflows auf Web- und Desktop-Anwendungen auszuweiten und für Community-Beiträge zu öffnen.

Quellen: offizieller GitHub-Blog, CocoLoop, Open-Source-Repository von GitHub Security Lab; Anzahl der Sicherheitslücken, OsmAnd-Downloadzahlen und Dauer eines einzelnen Audits entsprechen den Angaben im GitHub-Blog.