
Sicherer, vereinheitlichter, leistungsstarker und erweiterbarer Rust Android Analyzer
Sicher, Einheitlich, Leistungsstark und Erweiterbar – Rust Android Analyzer
SUPER ist ein Kommandozeilentool, das unter Windows, macOS X und Linux verwendet werden kann und .apk-Dateien auf Schwachstellen untersucht. Dazu entpackt es APKs und wendet eine Reihe von Regeln an, um diese Schwachstellen zu erkennen.
Aber warum einen neuen Analysator erstellen? Reichen MobSF, Qark, Androbugs … nicht aus? Nun, wir finden, dass es nicht ausreicht. Alle haben zwei Hauptprobleme, die wir beheben wollten: Sie sind in Java oder Python geschrieben und nicht leicht erweiterbar. Sie sind nicht für Unternehmen gedacht, die direkt in der Android-Analyse arbeiten, und stellen diese Art von Funktionalität nicht an erste Stelle.
Unser Ansatz löst diese Probleme auf verschiedene Weise: Zuerst haben wir uns für Rust als Programmiersprache entschieden. Die von der Mozilla Foundation offen entwickelte Sprache bietet uns viele Möglichkeiten, mit regulären Ausdrücken, Dateien usw. zu arbeiten, und vor allem ermöglicht sie uns, eine sichere Software zu erstellen, die nicht von JVM oder JIT-Compilern abhängt. Mit Rust sind Stapelüberläufe, Segmentierungsfehler usw. direkt nicht möglich, was bei einer sicherheitsorientierten Anwendung sinnvoll ist. Und es gibt uns auch genug Leistung, um effiziente Analysen durchzuführen und sie bei hohem Volumen automatisieren zu können. Dies ermöglichen die Zero-Cost-Abstraktionen von Rust, die uns eine Effizienz bieten, die nur mit C/C++ vergleichbar ist.
Und zweitens haben wir uns entschieden, die Software zu 100 % erweiterbar zu machen: Alle Regeln
sind in einer rules.json-Datei zentralisiert, und jedes Unternehmen oder jeder Tester kann eigene
Regeln erstellen, um das zu analysieren, was benötigt wird. Es ist auch modular aufgebaut, sodass
neue Entwicklungen einfach neue Funktionalitäten hinzufügen können. Schließlich ermöglicht ein
Templatesystem für Ergebnisberichte den Benutzern, den Bericht zu personalisieren.
Es bietet auch großartige Tools zur Code-Review direkt im HTML-Bericht, sodass jeder mit Syntaxhervorhebung den generierten Code durchsuchen kann, um eine noch bessere Schwachstellenanalyse zu ermöglichen.
Wir haben einige Binärdateien auf der Download-Seite für Windows (8.1+), Linux und macOS X veröffentlicht. Derzeit gibt es nur 64-Bit-Pakete. Wenn Sie SUPER auf einem 32-Bit-System verwenden müssen, müssen Sie SUPER aus dem Quellcode kompilieren. Dazu müssen Sie Rust mit rustup.rs installieren.
Hinweis: Es wird Java 1.7+ benötigt, um ausgeführt zu werden.
SUPER ist sehr einfach zu bedienen. Laden Sie einfach die gewünschte .apk in den Ordner downloads herunter (erstellen Sie diesen Ordner bei Bedarf) und verwenden Sie den Namen als Argument beim Ausführen des Programms. Nach der Ausführung erscheint ein detaillierter Bericht im Ordner results mit dem Namen der Anwendung. Es stehen verschiedene Verwendungsoptionen zur Verfügung:
USAGE:
super [FLAGS] [OPTIONS] <package>
FLAGS:
--bench Zeigt Benchmarks für die Analyse an
--force Erzwingt, dass der Prüfer alles von Anfang an erledigt
-h, --help Zeigt Hilfeinformationen an
--html Erzeugt die Ergebnisse im HTML-Format
--json Erzeugt die Ergebnisse im JSON-Format
--open Öffnet den Bericht nach Fertigstellung im Browser
-q, --quiet Leiser Prüfer, der nichts auf stdout ausgibt
-a, --test-all Testet alle .apk-Dateien im downloads-Verzeichnis
-V, --version Zeigt Versionsinformationen an
-v, --verbose Der Prüfer spricht mehr als nötig
OPTIONS:
--dex2jar <dex2jar> Wo die JAR-Dateien gespeichert werden
--dist <dist> Ordner, in den die Distributionsdateien extrahiert werden
--downloads <downloads> Ordner, in dem die Downloads gespeichert sind
--jd-cmd <jd-cmd> Pfad zur jd-cmd-Datei
--min-criticality <min_criticality> Legt eine minimale Kritikalität für die Analyse fest (Critical, High, Medium, Low)
--results <results> Ordner, in dem die Ergebnisse gespeichert werden
--rules <rules> Pfad zu einer JSON-Regeldatei
--template <template> Pfad zu einer Ergebnisvorlagendatei
-t, --threads <threads> Anzahl der zu verwendenden Threads, standardmäßig wird ein Thread pro logischem CPU-Kern verwendet
ARGS:
<package> Das Paketstring der zu testenden Anwendung
Jeder ist eingeladen, zu SUPER beizutragen. Bitte lesen Sie die Richtlinien für Beiträge zu SUPER für Anweisungen zum Vorgehen.
Dieses Programm ist freie Software: Sie können es unter den Bedingungen der GNU General Public License, wie von der Free Software Foundation veröffentlicht, entweder Version 3 der Lizenz oder (nach Ihrer Wahl) jeder späteren Version weiterverbreiten und/oder modifizieren.