
Un cadre d'analyse de logiciels malveillants d'apprentissage automatique pour les applications Android. ☢️
DroidDetective est un outil Python pour analyser les applications Android (APK) pour le comportement et les configurations potentiels liés aux logiciels malveillants. Lorsqu'il est fourni avec un chemin vers une application (fichier APK), Droid Detective fera une prédiction (en utilisant son modèle ML) si l'application est malveillante. Les caractéristiques et les qualités de Droid Detective comprennent:
AndroidManifest.xml de l'application. ?AndroidManifest.xml de l'application. ?Toutes les dépendances étectives droid peuvent être installées manuellement ou via le fichier d'exigences, avec
pip install -r REQUIREMENTS.txtDroidDetective a été testé sur Windows 10 et Ubuntu 18.0 LTS.
DroidDetective peut être exécuté en fournissant le fichier Python avec un paramètre APK en tant que ligne de commande, tels que:
python DroidDetective.py myAndroidApp.apk
Si un fichier apk_malware.model n'est pas présent, l'outillage entraînera d'abord le modèle et nécessitera un ensemble de formation APK dans un dossier à la racine du projet appelé malware et un autre appelé normal . Une fois exécuté avec succès, un résultat sera imprimé sur la CLI si le modèle a identifié l'APK comme malveillant ou bénin. Un exemple de cette sortie peut être vu ci-dessous:
>> Analysed file 'com.android.camera2.apk', identified as not malware.
Un paramètre supplémentaire peut être fourni à DroidDetective.py en tant que fichier JSON pour enregistrer les résultats. Si ce fichier JSON existe déjà, les résultats de cette exécution seront annexés au fichier JSON.
python DroidDetective.py myAndroidApp.apk output.json
Un exemple de cette sortie JSON est le suivant:
{
"com.android.camera2" : false ,
}DroidDetective est un outil Python pour analyser les applications Android (APK) pour un comportement potentiel lié aux logiciels malveillants. Cela fonctionne en formant un classificateur de forêt aléatoire sur les informations dérivées à la fois des APK de logiciels malveillants connus et des APK standard disponibles sur l'Android App Store. Cet outillage est pré-formé, cependant, le modèle peut être recommandé sur un nouvel ensemble de données à tout moment.
Ce modèle utilise actuellement les autorisations d'un fichier APKS AndroidManifest.xml en tant que jeu de fonctionnalités. Cela fonctionne en créant un dictionnaire de chaque autorisation Android standard et en définissant la fonctionnalité sur 1 si l'autorisation est présente dans l'APK. De même, une fonctionnalité est ajoutée pour le montant des autorisations utilisées dans le manifeste et pour le montant des autorisations non identifiées trouvées dans le manifeste.
Le modèle pré-formé a été formé sur environ 14 familles de logiciels malveillants (chacun avec un ou plusieurs fichiers APK), situé du référentiel d'Ashisdb et environ 100 applications normales situées à partir du Google Play Store.
L'intérêt ci-dessous désigne les statistiques de ce modèle ML:
Accuracy: 0.9310344827586207
Recall: 0.9166666666666666
Precision: 0.9166666666666666
F-Measure: 0.9166666666666666
Les 10 principales fonctionnalités les plus pondérées (c.-à-d. Les autorisations Android) utilisées par ce modèle, pour identifier les logiciels malveillants, peuvent être vues ci-dessous:
"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
Licence publique générale GNU V3.0