KI-Modelle aus Apps extrahieren: Ein Blick hinter die Fassade

5. Januar 2025
ℹ️Hinweis zur Quelle

Dieser Blogartikel wurde automatisch erstellt (und übersetzt). Er basiert auf dem folgenden Original, das ich für die Veröffentlichung auf diesem Blog ausgewählt habe:
You wouldn’t download an AI – by Altay Akkus – Altay’s Blog.

KI-Modelle aus Apps extrahieren: Ein Blick hinter die Fassade

Die allgegenwärtige Präsenz von Künstlicher Intelligenz (KI) ist unbestreitbar, insbesondere dank der Investitionen großer Konzerne in Forschung, Daten und Modelltraining. Ein Trend ist die Integration von KI-Modellen direkt in mobile Geräte. Diese Vorgehensweise ist ideal für Anwendungen, die schnelle Inferenz und Offline-Zugriff benötigen, wie z.B. Echtzeit-Fotofilter oder Objekterkennung.

Da alles, was auf einem Gerät läuft, auch von diesem zugänglich ist, ergibt sich eine interessante Möglichkeit für Neugierige, genauer hinzuschauen.

Die 'sprechende Kamera' als Fallbeispiel

Microsofts Seeing AI App, eine "sprechende Kamera" für sehbehinderte Menschen, ist ein nützliches Beispiel. Sie beschreibt Objekte, Dokumente und sogar Währungen hörbar. Besonders hervorzuheben ist die Währungserkennung, die über 17 Währungen und 225 Banknoten erkennt und somit eine unabhängige Identifizierung von Geld ermöglicht.

Der Weg zum extrahierten Modell

Android-Apps werden als APK-Dateien (Android Package Kit) verteilt. Diese Archive enthalten alles, was die App zum Ausführen benötigt, einschließlich der KI-Modelle.

Um den Inhalt einer APK-Datei zu analysieren, kann man sie mit apktool dekompilieren und in einen Ordner entpacken. Im Ordner assets findet sich oft eine Datei, die das KI-Modell enthält. Im Fall von Seeing AI war dies die Datei currency mit einer Größe von 16MB, sowie die Datei currency-labels.txt.

Verschlüsselung als Hindernis

Die Datei currency konnte zunächst nicht identifiziert werden und wies eine hohe Entropie auf, was auf eine Verschlüsselung hindeutet. Anstatt die Entschlüsselungsmethode der App aufwendig zu reverse-engineeren, gibt es jedoch einen direkteren Weg.

TensorFlow Lite und Frida als Schlüssel

KI-Modelle werden letztendlich in eine Neural Inference Engine geladen. Auf Android-Geräten ist TensorFlow Lite weit verbreitet. Die Analyse der dekompilierten APK-Datei bestätigte, dass com.microsoft.seeingai TensorFlow Lite verwendet.

Das Tool Frida ermöglicht es, sich an laufende Prozesse anzuhängen und deren Verhalten dynamisch zu verändern. In Kombination mit Objection, einem CLI-Tool mit vorgefertigten Frida-Skripten, lassen sich Methodenaufrufe verfolgen und verändern.

Konkret wurde der Aufruf von .createModelWithBuffer(java.nio.ByteBuffer, long) in der Klasse org.tensorflow.lite.NativeInterpreterWrapper überwacht. Dieser Aufruf beinhaltet wahrscheinlich das unverschlüsselte *.tflite Modell. Durch das Überschreiben der Methode konnte das Modell auf die Festplatte geschrieben werden.

Verifizierung des Modells

Das extrahierte currency.tflite Modell konnte mit Netron, einem webbasierten Visualisierungstool für neuronale Netze, erfolgreich geöffnet und analysiert werden. Dies bestätigte die erfolgreiche Extraktion des vollständigen TensorFlow Lite Modells mit allen Gewichten und Bias.

Generalisierung des Angriffs

Da das Skript durch Hooking von TensorFlow Lite Modelle extrahiert, kann dieser Ansatz potenziell auf jede App angewendet werden, die TensorFlow Lite nutzt. Auch andere Apps wie Adobe Scan könnten somit angreifbar sein.

Rechtliche und ethische Aspekte

Es ist wichtig zu beachten, dass KI-Modelle in der Regel als geistiges Eigentum betrachtet werden. Die unbefugte Nutzung oder Veränderung extrahierter Modelle kann rechtliche Konsequenzen haben. Die im Artikel beschriebenen Techniken sollten daher nur zu Forschungs- und Bildungszwecken eingesetzt werden.

Es stellt sich die Frage, inwieweit die Vorteile der Offline-KI die potenziellen Risiken durch die Extraktion der Modelle rechtfertigen. Die Verantwortung für einen ethisch korrekten Umgang mit diesen Technologien liegt bei den Entwicklern und Anwendern.


Die Kommentare sind geschlossen.