
Ein maschinelles Lernen Malware -Analyse -Framework für Android -Apps. ☢️
DroidDeTective ist ein Python -Tool zur Analyse von Android -Anwendungen (APKs) für potenzielle Verhaltensweisen und Konfigurationen von Malware. Wenn ein Pfad zu einer Anwendungsdatei (APK -Datei) zur Verfügung gestellt wird, macht Droid -Detektiv eine Vorhersage (unter Verwendung des ML -Modells), wenn die Anwendung böswillig ist. Zu den Merkmalen und Qualitäten des Droidendetektivs gehören:
AndroidManifest.xml -Datei der Anwendung angegeben sind. ?AndroidManifest.xml -Datei der Anwendung verwendet werden. ?Alle DroidDetective -Abhängigkeiten können manuell oder über die Anforderungsdatei mit installiert werden
pip install -r REQUIREMENTS.txtDroidDeTective wurde sowohl unter Windows 10 als auch unter Ubuntu 18,0 LTS getestet.
DroidDeTective kann ausgeführt werden, indem die Python -Datei mit einem APK als Befehlszeilenparameter bereitgestellt wird, z. B.:
python DroidDetective.py myAndroidApp.apk
Wenn keine apk_malware.model -Datei vorhanden ist, trainiert das Tooling zuerst das Modell und benötigt einen Trainingssatz von APKs in einem Ordner in der Stammwurzel des Projekts, das als malware bezeichnet wird, und einem anderen namens normal . Sobald ein erfolgreiches Ergebnis erfolgreich ist, wird ein Ergebnis auf die CLI gedruckt, wenn das Modell identifiziert hat, dass die APK böswillig oder gutartig ist. Ein Beispiel für diese Ausgabe ist unten zu sehen:
>> Analysed file 'com.android.camera2.apk', identified as not malware.
Ein zusätzlicher Parameter kann DroidDetective.py als JSON -Datei zur Speicherung der Ergebnisse zur Verfügung gestellt werden. Wenn diese JSON -Datei bereits vorhanden ist, werden die Ergebnisse dieses Laufs an die JSON -Datei beigefügt.
python DroidDetective.py myAndroidApp.apk output.json
Ein Beispiel für diese Ausgabe JSON ist wie folgt:
{
"com.android.camera2" : false ,
}DroidDeTective ist ein Python -Tool zur Analyse von Android -Anwendungen (APKs) für potenzielles Verhalten von Malware. Dies erfolgt durch Schulung eines zufälligen Waldklassifikators zu Informationen, die sowohl von bekannten Malware -APKs als auch von Standard -APKs, die im Android App Store verfügbar sind, abgeleitet werden. Diese Tools erfolgt vorüberzugebracht. Das Modell kann jedoch jederzeit auf einen neuen Datensatz ausgestattet werden.
Dieses Modell verwendet derzeit Berechtigungen von APKs AndroidManifest.xml -Datei als Funktionssatz. Dies erstellt ein Wörterbuch für jede Standard -Android -Berechtigung und setzt die Funktion auf 1 , wenn die Berechtigung in der APK vorhanden ist. In ähnlicher Weise wird ein Merkmal für die Höhe der im Manifest verwendeten Berechtigungen und für die Höhe der im Manifest gefundenen nicht identifizierten Berechtigungen hinzugefügt.
Das vorgebreitete Modell wurde aus dem AshisDB-Repository und ungefähr 100 normalen Anwendungen aus dem Google Play Store aus dem AshisDB-Repository ausgebildet, das von AshisDBs Repository und ungefähr 100 normale Anwendungen aus dem AshisDB entspricht.
Die folgende bezeichnet die Statistiken für dieses ML -Modell:
Accuracy: 0.9310344827586207
Recall: 0.9166666666666666
Precision: 0.9166666666666666
F-Measure: 0.9166666666666666
Die zehn am höchsten gewichteten Merkmale (dh Android -Berechtigungen), die von diesem Modell zur Identifizierung von Malware verwendet werden, finden Sie nachstehend:
"android.permission.SYSTEM_ALERT_WINDOW": 0.019091367939223395,
"android.permission.ACCESS_NETWORK_STATE": 0.021001765263234648,
"android.permission.ACCESS_WIFI_STATE": 0.02198962579120518,
"android.permission.RECEIVE_BOOT_COMPLETED": 0.026398914436102188,
"android.permission.GET_TASKS": 0.03595458598076517,
"android.permission.WAKE_LOCK": 0.03908212881520419,
"android.permission.WRITE_SMS": 0.057041576632290585,
"android.permission.INTERNET": 0.08816028225034145,
"android.permission.WRITE_EXTERNAL_STORAGE": 0.09835914154294739,
"other_permission": 0.10189463965313218,
"num_of_permissions": 0.12392224814084198
GNU General Public Lizenz v3.0