
Androidアプリの機械学習マルウェア分析フレームワーク。 ☢☢️
DroidDeTectiveは、潜在的なマルウェア関連の動作と構成についてAndroidアプリケーション(APK)を分析するためのPythonツールです。アプリケーション(APKファイル)へのパスが提供されると、DROID探偵は、アプリケーションが悪意のある場合の予測(MLモデルを使用)を行います。ドロイド探偵の特徴と品質は次のとおりです。
AndroidManifest.xmlファイルで指定されている〜330の許可のどれが分析されます。 ?AndroidManifest.xmlファイルで使用されている標準および独自の権限の数を分析します。 ?すべてのDROIDDETECTITION依存関係は、手動で、または要件ファイルを介してインストールできます。
pip install -r REQUIREMENTS.txtDroidDeTectiveは、Windows 10とUbuntu 18.0 LTSの両方でテストされています。
DROIDDETECTIVEは、次のようなコマンドラインパラメーターとしてAPKをPythonファイルに提供することにより実行できます。
python DroidDetective.py myAndroidApp.apk
apk_malware.modelファイルが存在しない場合、ツールは最初にモデルをトレーニングし、 malwareと呼ばれるプロジェクトのルートにあるフォルダーとnormalと呼ばれる別のフォルダーの両方のAPKのトレーニングセットが必要になります。正常に実行されると、モデルが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 ,
}DroidDeTectiveは、潜在的なマルウェア関連の動作についてAndroidアプリケーション(APK)を分析するためのPythonツールです。これは、Android App Storeで利用可能な既知のマルウェアAPKと標準的なAPKの両方から派生した情報に関するランダムフォレスト分類器をトレーニングすることで機能します。このツールは事前に訓練されていますが、モデルはいつでも新しいデータセットで再訓練できます。
このモデルは現在、APKS AndroidManifest.xmlファイルからのアクセス許可を機能セットとして使用しています。これは、各標準のAndroid許可の辞書を作成し、APKに許可が存在する場合に機能を1に設定することで機能します。同様に、マニフェストで使用されている権限の量と、マニフェストで見つかった不明確な権限の量のために機能が追加されています。
事前に訓練されたモデルは、ASHISDBのリポジトリからの約14のマルウェアファミリ(それぞれ1つ以上のAPKファイルを備えた)からトレーニングされ、Google Playストアから約100の通常のアプリケーションがありました。
以下は、このMLモデルの統計を示しています。
Accuracy: 0.9310344827586207
Recall: 0.9166666666666666
Precision: 0.9166666666666666
F-Measure: 0.9166666666666666
このモデルで使用されているマルウェアを識別するために、このモデルで使用される最高の最大加重機能(つまり、Android Permissions)を以下に見ることができます。
"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