Statische Analyse mobiler Anwendungen



Eine der Phasen des Testens einer mobilen Anwendung ist eine statische Analyse. Statische Analyse der Anwendung ist die Analyse der Anwendung ohne Ausführung von Anwendungsfunktionen. Das für mich bequemste Open-Source-Framework ist MobSF. Wen kümmert es, willkommen bei Katze.

MobSF führt eine statische Analyse von Anwendungen durch: Android, Apple iOS und Windows Phone sowie eine dynamische Analyse: nur Android-Anwendungen. Ich werde Ihnen im nächsten Artikel über MobSF erklären, wie Sie dynamische Analysen durchführen. Eine ausführlichere Beschreibung und Installationsanleitung finden Sie hier .

Nach der Installation von MobSF führen wir die folgende Batch-Datei aus, um den Server zu starten (ich habe für mich selbst geschrieben, daher Laufwerk D).

d: cd .\MobSF\ python .\manage.py runserver 

Als nächstes müssen Sie zur Adresse http [:] // 127.0.0.1:8000 gehen und die Hauptseite wird geöffnet (Abb. 1). Hier gibt es nicht viel Funktionales:

  • Datei-Upload;
  • Berichte über vergangene Scans anzeigen;
  • Wechseln Sie zur API-Dokumentation
  • Übergang zum Github-Projekt.


Abb. 1. Die Hauptseite

Nachdem die Datei heruntergeladen und analysiert wurde, wird eine Seite mit dem Analyseergebnis angezeigt (Abb. 2). Auf der linken Seite befindet sich ein Menü, mit dem Sie schnell über die Seite springen können (das Ergebnis ist einfach umfangreich). Welche nützlichen Informationen enthält dieser Screenshot:

  • Anwendungs-Hash-Menge
  • Unterstützte Android-Betriebssystemversionen
  • Die Anzahl und Art der Komponenten (exportiert oder nicht exportiert) ist wichtig, da exportierte Komponenten zu kritischen Sicherheitslücken führen können.
  • die Möglichkeit, Java- und Smali-Dateien anzuzeigen und herunterzuladen, die mit anderen Tools oder manuell analysiert werden können;
  • Zeigen Sie die Manifestdatei zur Analyse an.


Abb. 2. Das Ergebnis der Analyse

Wir gehen weiter. In Abb. Abbildung 3 zeigt die Zertifikatinformationen, mit denen die Anwendung signiert wurde.


Abb. 3. Zertifikatsinformationen

Im Folgenden wird die Analyse der Berechtigungen beschrieben, die in der Datei AndroidManifest.xml beschrieben sind (Abb. 4). MobSF analysiert die Berechtigungen der Anwendung, ermittelt ihren Status auf Kritikalität und Beschreibung der Berechtigungen. Hier müssen Sie die Architektur des Android-Betriebssystems für die tatsächliche Kritikalität der Anwendung verstehen.


Abb. 4. Analyse der Android-Berechtigungen

Die Registerkarte Sicherheitsanalyse -> Code-Analyse (Abb. 5) zeigt das Ergebnis der Java-Code-Analyse durch einen statischen Analysator, der potenzielle Schwachstellen identifiziert, deren Schweregrad ermittelt und die Dateien ermittelt, in denen diese Art von Schwachstelle gefunden wurde. In vielerlei Hinsicht sind diese Ergebnisse falsch positiv, aber Sie müssen dies noch einmal überprüfen.


Abb. 5. Code-Analyse

Die nächste Registerkarte (Abb. 6) ist die Analyse von Dateien im Dienst virustotal.com. In diesem Fall wurde die Datei nicht als infiziert erkannt.


Abb. 6. Dateianalyse

Auf der Registerkarte URLs (Abbildung 7) wird eine Liste der URLs, IP-Adressen und Dateien angezeigt, in denen sie gespeichert oder aufgerufen werden. In diesem Abschnitt wird analysiert, wohin die Anwendung Daten sendet oder wo sie Informationen speichert.


Abb. 7. Tab-URLs

Die Registerkarte „Strings“ (Abb. 8) analysiert die Textdateien im Verzeichnis res. Bei der Analyse der Anwendung können diese Dateien fest codierte Konten und andere vertrauliche Daten enthalten. Obwohl in meiner Erinnerung dies nicht war.


Abb. 8. Analyse von Textdateien

Auf der Registerkarte „Komponenten“ (Abb. 9) wird eine vollständige Liste der Komponenten (Aktivität, Dienst, Inhaltsanbieter und Empfang), importierter Bibliotheken und Dateien angezeigt, ohne eine Erweiterung zu definieren.


Abb. 9. Liste der Komponenten

Zusätzlich kann die Quellcode-Analyse mit dem statischen Analysator des VCG-Scanners durchgeführt werden. VCG benötigt Quellcode. Der Quellcode kann über die Schaltfläche Java-Code herunterladen heruntergeladen werden (Abb. 10). Die Datei wird in ein ZIP-Archiv heruntergeladen. Als nächstes müssen Sie den Ordner mit Dateien aus dem Archiv extrahieren (Abb. 11).


Abb. 10. Herunterladen des Quellcodes


Abb. 11. Extrahieren des Quellcodes

Das Scannen des Quellcodes erfolgt wie folgt:

  1. Wählen Sie auf der Registerkarte "Einstellungen" "Java" aus - Abbildung 12.
  2. Wählen Sie auf der Registerkarte "Datei" die Option "Neues Zielverzeichnis" aus - Abbildung 13.
  3. Wählen Sie auf der Registerkarte "Scannen" die Option "Vollständiger Scan" - Abbildung 14.


Abb. 12. Auswahl des Quellcodes


Abb. 13. Hochladen eines Verzeichnisses mit Dateien


Abb. 14. Starten Sie den Scan

Nach Abschluss des Scans zeigt der Scanner die Namen der Sicherheitsanfälligkeit, ihre Kritikalität, eine kurze Beschreibung und die Stelle im Quellcode an (Abb. 15). Sie können eine vollständige Liste der Schwachstellen abrufen und diese nach ihrer Kritikalität sortieren (Abb. 16).


Abb. 15. Beschreibung der Sicherheitslücken


Abb. 16. Die vollständige Liste der Sicherheitslücken

Fazit

Die statische Analyse der Anwendung und des Quellcodes liefert grundlegende Konzepte zur Architektur der Anwendung und zu potenziellen Angriffsvektoren. Nach der von ByteCode verwendeten Methodik beginnt von ihm die Analyse aller Anwendungen des Kunden, der zum Pentest gekommen ist.

Source: https://habr.com/ru/post/de429252/


All Articles