Forensische Analyse um nach Anzeichen einer Infektion in Smartphones zu suchen

Android und iOS Geräte sind normalerweise nicht so oft von Angriffen betroffen, wie z.B. ein Windows PC, trotzdem häufen sich die Meldungen von Angriffen in den letzten Jahren deutlich.

Die 4 größten Bedrohungen für Smartphones sind:

Sicherheitsbedrohungen mobiler Anwendungen
Anwendungsbasierte Bedrohungen treten auf, wenn Benutzer Apps herunterladen, die z.B. Daten von Smartphone abziehen. Typische Beispiele sind Spyware und Malware, die Informationen vom Android oder iOS Smartphone stehlen, ohne dass man es merken.

Webbasierte mobile Sicherheitsbedrohungen
Webbasierte Bedrohungen treten auf, wenn Benutzer mit dem Smartphone-Browser Websites besuchen, die im Frontend in Ordnung erscheinen, in Wirklichkeit jedoch automatisch schädliche Inhalte auf das Smartphone herunterladen oder Daten vom Smartphone abziehen.

Sicherheitsbedrohungen für mobile Netzwerke
Netzwerkbasierte Bedrohungen sind besonders häufig und riskant, da Cyberkriminelle unverschlüsselte Daten stehlen können ohne dass auf dem Smartphone eine Spyware ausgeführt wird. Bedrohungen aus dem Netzwerk können z.B. während der Nutzung von öffentlichen WLAN-Netzwerken auftreten.

Physische Sicherheitsbedrohungen für Mobilgeräte
Physische Bedrohungen für mobile Geräte beziehen sich auf den Verlust oder den Diebstahl eines Smartphones. Sobald Hacker direkten Zugriff auf die Hardware haben können sie auf gespeicherten Daten zugreifen

Sicherheitsbedrohungen durch Anwendungen identifizieren

Mit dem Mobile Verification Toolkit (MVT) hat man ein Tool zur Hand, mit dem eine forensische Analyse von Android- und iOS-Geräten möglich ist, um Spuren von Kompromittierungen des Smartphones zu identifizieren.

Das Open Source Tool kann unter https://github.com/mvt-project/mvt heruntergeladen und unter Linux, Windows oder auf dem MacOS Rechner installiert werden. Danach ist es möglich, mit dem forensisches Tool nach Anzeichen einer Infektion in Smartphones zu suchen.

Schritt 1: Installation von libusb

Als Voraussetzung für MVT muss die libusb installiert werden, die man auf dem Mac mit dem Befehl „brew install python3 libusb“ installiert wird. Eine Anleitung für eine Installation auf dem Windoes oder Linux PC kann man unter https://mvt.readthedocs.io/en/latest/install.html finden.

Die Installation dauert recht lange, vor allem, wenn Homebrew erst mal alles möglich aktualisieren muss.

brew install python3 libusb

......

Nach der Installation der libusb geht es mit „pip install mvt“ weiter. Damit wird MVT auf dem Computer installiert.

pip install mvt

..........

Successfully installed adb-shell-0.4.0 biplist-1.0.3 charset-normalizer-2.0.3 click-8.0.1 colorama-0.4.4 commonmark-0.9.1 cryptography-3.4.7 iOSbackup-0.9.912 libusb1-1.9.3 mvt-1.0.13 pyasn1-0.4.8 pycryptodome-3.10.1 requests-2.26.0 rich-10.6.0 rsa-4.7.2 simplejson-3.17.3 tld-0.12.6 tqdm-4.61.2

Nach der erfolgreichen Installation sind die beiden Dienstprogramme mvt-ios und mvt-android installiert. Zum Prüfen der Installation kann man einfach mvt-ios oder mvt-android im Terminal Fenster ausführen. Das Ergebnis sollte dann wie folgt aussehen:

mvt-android
Usage: mvt-android [OPTIONS] COMMAND [ARGS]...

Options:
  --help  Show this message and exit.

Commands:
  check-adb      Check an Android device over adb
  check-backup   Check an Android Backup
  download-apks  Download all or non-safelisted installed APKs installed...

Forensische Analyse über adb durchführen

Am einfachsten ist es wohl, mvt-android über adb auszuführen. Dann benötigt man kein Backup und es wird direkt das Handy überprüft. Dafür muss das Smartphone aber über USB verbunden sein und das USB-Debugging über adb muss aktiviert sein. (https://www.droidwiki.org/wiki/USB-Debugging)

Wenn die Verbindung erfolgreich hergestellt ist, kann man das an folgender Benachrichtigung erkennen.

USB Debugging über adb aktiviert.

Mit den Befehl „mvt-android check-adb“ kann man nun die forensische Analyse des Android-Smartphones starten.

❯ mvt-android check-adb
16:54:50 INFO     [mvt.android.cli] Checking Android through adb bridge                                                                                                             
         INFO     [mvt.android.modules.adb.chrome_history] Running module ChromeHistory...                                                                                          
         ERROR    [mvt.android.modules.adb.chrome_history] Error in running extraction from module ChromeHistory: The Android device does not seem to have a `su` binary. Cannot run
                  this module.                                                                                                                                                      
                  Traceback (most recent call last):                                                                                                                                
                    File "/usr/local/lib/python3.9/site-packages/mvt/common/module.py", line 147, in run_module                                                                     
                      module.run()                                                                                                                                                  
                    File "/usr/local/lib/python3.9/site-packages/mvt/android/modules/adb/chrome_history.py", line 69, in run                                                        
                      self._adb_process_file(os.path.join("/", CHROME_HISTORY_PATH),                                                                                                
                    File "/usr/local/lib/python3.9/site-packages/mvt/android/modules/adb/base.py", line 168, in _adb_process_file                                                   
                      self._adb_root_or_die()                                                                                                                                       
                    File "/usr/local/lib/python3.9/site-packages/mvt/android/modules/adb/base.py", line 107, in _adb_root_or_die                                                    
                      raise Exception("The Android device does not seem to have a `su` binary. Cannot run this module.")                                                            
                  Exception: The Android device does not seem to have a `su` binary. Cannot run this module.                                                                        
         INFO     [mvt.android.modules.adb.sms] Running module SMS...                                                                                                               
         ERROR    [mvt.android.modules.adb.sms] The Android device does not seem to have a `su` binary. Cannot run this module.                                                     
         INFO     [mvt.android.modules.adb.whatsapp] Running module Whatsapp...                                                                                                     
         ERROR    [mvt.android.modules.adb.whatsapp] The Android device does not seem to have a `su` binary. Cannot run this module.                                                
         INFO     [mvt.android.modules.adb.processes] Running module Processes...                                                                                                   
         INFO     [mvt.android.modules.adb.processes] Extracted records on a total of 1 processes                                                                                   
         INFO     [mvt.android.modules.adb.dumpsys_batterystats] Running module DumpsysBatterystats...                                                                              
16:54:51 INFO     [mvt.android.modules.adb.dumpsys_procstats] Running module DumpsysProcstats...                                                                                    
         INFO     [mvt.android.modules.adb.dumpsys_packages] Running module DumpsysPackages...                                                                                      
16:54:54 INFO     [mvt.android.modules.adb.packages] Running module Packages...                                                                                                     
16:55:09 INFO     [mvt.android.modules.adb.packages] Extracted at total of 298 installed package names                                                                              
         INFO     [mvt.android.modules.adb.rootbinaries] Running module RootBinaries...            

Leider werden einige Module wie z.B. ChromeHistory, SMS und WhatsApp mit dem Fehler „The Android device does not seem to have a `su` binary. Cannot run this module.“ abgebrochen. Aber immerhin hat MVT 298 installierte Packages gefunden.

Mit dem Befehl „mvt-android download-apks –output apks/ –all-checks“ werden dann alle apk-Dateien auf den Computer kopiert und alle verfügbaren Checks durchgeführt. Dieser Vorgang dauert eine Weile, vor allem wenn man sehr viele Apps installiert hat.

Die Auswertung sieht dann (wenigstens auf meinem Handy) ganz gut aus. Es wurden keine infizierten Apps gefunden und nur eine App hat ein negatives Rating von -2.

com.jentsch.off     │ apks/apks/com.jentsch.off_base_1.apk           │ no      │ yes     -2     

Da ich die App aber selbst programmiert habe, weiß ich dass sie harmlos ist, auch wenn sie Device-Admin Rechte benötigt, was wohl ein Grund für die schlechte Bewertung ist.

Fazit

So weit so gut. Alles hat wie erwartet gut funktioniert. Es gab keine größeren Probleme oder andere Überraschungen. Allerdings hat das Tool leider nicht hinter sich aufgeräumt, so dass ich nun 6.3 GB APK Dateien auf meiner Festplatte liegen habe. Die muss ich nun von hand löschen. Die größten Dateien waren übrigens com.supercell.clashofclans_base.apk mit 132MB und com.nianticlabs.pokemongo_split_config.arm64_v8a.apk mit 216MB. Spannend währe noch mal ein Test mit einer APK Datei die wirklich infiziert ist. Leider habe ich keine solche APK Datei zur hand, mit der ich das mal testen könnte.