
Android 앱을위한 머신 러닝 맬웨어 분석 프레임 워크. ☢️
DroidDetection은 잠재적 맬웨어 관련 동작 및 구성을위한 Android 애플리케이션 (APK)을 분석하기위한 파이썬 도구입니다. 응용 프로그램 경로 (APK 파일) Droid Detective로가는 경로가 제공되는 경우 응용 프로그램이 악의적 인 경우 예측 (ML 모델 사용)을 예측합니다. 드로이드 형사의 특징과 자질은 다음과 같습니다.
AndroidManifest.xml 파일에 지정됩니다. ?AndroidManifest.xml 파일에 사용되는 표준 및 독점 권한 수를 분석합니다. ?모든 droiddetective 종속성은 수동으로 또는 요구 사항 파일을 통해 설치할 수 있습니다.
pip install -r REQUIREMENTS.txtDroiddetection은 Windows 10 및 Ubuntu 18.0 LTS에서 테스트되었습니다.
DroidDetection은 APK와 함께 Python 파일을 다음과 같은 명령 줄 매개 변수로 제공하여 실행할 수 있습니다.
python DroidDetective.py myAndroidApp.apk
apk_malware.model 파일이없는 경우 툴링은 먼저 모델을 훈련시키고 프로젝트의 malware 에있는 폴더의 두 폴더에서 APK의 교육 세트가 필요하며 다른 하나라는 normal 필요합니다. 성공적으로 실행되면 모델이 APK가 악의적이거나 양성임을 식별 한 경우 결과가 CLI에 인쇄됩니다. 이 출력의 예는 다음과 같습니다.
>> Analysed file 'com.android.camera2.apk', identified as not malware.
결과를 저장하기 위해 JSON 파일로 DroidDetective.py 에 추가 매개 변수를 제공 할 수 있습니다. 이 JSON 파일이 이미 존재하면이 실행 결과는 JSON 파일에 추가됩니다.
python DroidDetective.py myAndroidApp.apk output.json
이 출력 JSON의 예는 다음과 같습니다.
{
"com.android.camera2" : false ,
}DroidDetection은 잠재적 맬웨어 관련 동작을위한 Android 애플리케이션 (APK)을 분석하기위한 파이썬 도구입니다. 이것은 Android App Store에서 사용할 수있는 알려진 맬웨어 APK 및 표준 APK 모두에서 파생 된 정보에 대한 임의의 산림 분류기를 교육하여 작동합니다. 이 툴링은 미리 훈련되지만, 모델은 언제든지 새로운 데이터 세트에서 재조정 될 수 있습니다.
이 모델은 현재 APKS AndroidManifest.xml 파일의 권한을 기능 세트로 사용합니다. 이는 각 표준 Android 권한의 사전을 생성하고 APK에 권한이있는 경우 기능을 1 로 설정하여 작동합니다. 마찬가지로, 매니페스트에 사용되는 권한의 양과 매니페스트에서 발견 된 미확인 권한의 양에 대한 기능이 추가됩니다.
미리 훈련 된 모델은 ASHISDB의 저장소에서 위치한 약 14 개의 맬웨어 패밀리 (각각 하나 이상의 APK 파일)와 Google Play 스토어에서 약 100 개의 일반 애플리케이션을 교육했습니다.
아래는이 ML 모델의 통계를 나타냅니다.
Accuracy: 0.9310344827586207
Recall: 0.9166666666666666
Precision: 0.9166666666666666
F-Measure: 0.9166666666666666
맬웨어 식별을 위해이 모델에서 사용하는 최고 10 가지 가중 기능 (예 : Android 권한)은 다음과 같습니다.
"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 일반 공개 라이센스 v3.0