DroidDetective is a Python tool for analysing Android applications (APKs) for potential malware related behaviour and configurations. When provided with a path to an application (APK file) Droid Detective will make a prediction (using it’s ML model) of if the application is malicious. Features and qualities of Droid Detective include:
AndroidManifest.xml
file. AndroidManifest.xml
file. All DroidDetective dependencies can be installed manually or via the requirements file, with
pip install -r REQUIREMENTS.txt
DroidDetective has been tested on both Windows 10 and Ubuntu 18.0 LTS.
DroidDetective can be run by providing the Python file with an APK as a command line parameter, such as:
python DroidDetective.py myAndroidApp.apk
If an apk_malware.model
file is not present, then the tooling will first train the model and will require a training set of APKs in both a folder at the root of the project called malware
and another called normal
. Once run successfully a result will be printed onto the CLI on if the model has identified the APK to be malicious or benign. An example of this output can be seen below:
Analysed file ‘com.android.camera2.apk’, identified as not malware.
An additional parameter can be provided to DroidDetective.py
as a Json file to save the results to. If this Json file already exists the results of this run will be appended to the Json file.
python DroidDetective.py myAndroidApp.apk output.json
DroidDetective is a Python tool for analyzing Android applications (APKs) for potential malware related behaviour. This works by training a Random Forest classifier on information derived from both known malware APKs and standard APKs available on the Android app store. This tooling comes pre-trained, however, the model can be re-trained on a new dataset at any time.
This model currently uses permissions from an APKs AndroidManifest.xml
file as a feature set. This works by creating a dictionary of each standard Android permission and setting the feature to 1
if the permission is present in the APK. Similarly, a feature is added for the amount of permissions in use in the manifest and for the amount of unidentified permissions found in the manifest.
The pre-trained model was trained off approximately 14 malware families (each with one or more APK files), located from ashisdb’s repository, and approximately 100 normal applications located from the Google Play Store.
The below denotes the statistics for this ML model:
Accuracy: 0.9310344827586207
Recall: 0.9166666666666666
Precision: 0.9166666666666666
F-Measure: 0.9166666666666666
The top 10 highest weighted features (i.e. Android permissions) used by this model, for identifying malware, can be seen below:
“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
Kali Linux 2024.4, the final release of 2024, brings a wide range of updates and…
This Go program applies a lifetime patch to PowerShell to disable ETW (Event Tracing for…
GPOHunter is a comprehensive tool designed to analyze and identify security misconfigurations in Active Directory…
Across small-to-medium enterprises (SMEs) and managed service providers (MSPs), the top priority for cybersecurity leaders…
The free and open-source security platform SecHub, provides a central API to test software with…
Don't worry if there are any bugs in the tool, we will try to fix…