
إطار عمل لتحليل البرامج الضارة باستخدام التعلم الآلي لتطبيقات أندرويد.
🕵️ إطار عمل لتحليل البرامج الضارة بتعلم الآلة لتطبيقات أندرويد. ☢️
DroidDetective هي أداة بلغة بايثون لتحليل تطبيقات أندرويد (APKs) للكشف عن السلوكيات والإعدادات المتعلقة بالبرامج الضارة المحتملة. عند تقديم مسار إلى تطبيق (ملف APK)، يقوم Droid Detective بالتنبؤ (باستخدام نموذج تعلم الآلة الخاص به) ما إذا كان التطبيق ضارًا أم لا. تشمل ميزات وخصائص Droid Detective ما يلي:
AndroidManifest.xml الخاص بالتطبيق. 🙅AndroidManifest.xml للتطبيق. 🧮يمكن تثبيت جميع تبعيات DroidDetective يدويًا أو عبر ملف المتطلبات، باستخدام الأمر:
pip install -r REQUIREMENTS.txt
تم اختبار DroidDetective على كل من Windows 10 و Ubuntu 18.0 LTS.
يمكن تشغيل DroidDetective عن طريق تقديم ملف APK كمعامل سطر أوامر لملف بايثون، على النحو التالي:
python DroidDetective.py myAndroidApp.apk
إذا لم يكن ملف apk_malware.model موجودًا، فستقوم الأداة أولاً بتدريب النموذج وستحتاج إلى مجموعة تدريب من ملفات APK في مجلد يسمى malware وآخر يسمى normal في جذر المشروع. بعد التشغيل بنجاح، ستتم طباعة نتيجة على CLI حول ما إذا كان النموذج قد حدد التطبيق على أنه ضار أو حميد. مثال على هذا الإخراج يمكن رؤيته أدناه:
>> تم تحليل الملف 'com.android.camera2.apk'، تم التعرف عليه كغير ضار.
يمكن تقديم معامل إضافي لملف DroidDetective.py كملف Json لحفظ النتائج. إذا كان ملف Json موجودًا بالفعل، فسيتم إلحاق نتائج هذا التشغيل بملف Json.
python DroidDetective.py myAndroidApp.apk output.json
مثال على ملف Json الناتج هو كما يلي:
{
"com.android.camera2": false,
}
DroidDetective هي أداة بلغة بايثون لتحليل تطبيقات أندرويد (APKs) للسلوكيات المتعلقة بالبرامج الضارة المحتملة. يعمل ذلك عن طريق تدريب مصنف Random Forest على معلومات مستخلصة من كل من تطبيقات APK الضارة المعروفة وتطبيقات APK القياسية المتاحة على متجر تطبيقات أندرويد. تأتي هذه الأداة مدربة مسبقًا، ومع ذلك يمكن إعادة تدريب النموذج على مجموعة بيانات جديدة في أي وقت. ⚙️
يستخدم هذا النموذج حاليًا الصلاحيات من ملف AndroidManifest.xml لتطبيقات APK كمجموعة ميزات. يعمل ذلك عن طريق إنشاء قاموس لكل صلاحية أندرويد قياسية وتعيين الميزة إلى 1 إذا كانت الصلاحية موجودة في APK. وبالمثل، تتم إضافة ميزة لعدد الصلاحيات المستخدمة في البيان وعدد الصلاحيات غير المعروفة الموجودة في البيان.
تم تدريب النموذج المدرب مسبقًا على حوالي 14 عائلة من البرامج الضارة (كل منها يحتوي على ملف APK واحد أو أكثر)، مأخوذة من مستودع ashisdb، وحوالي 100 تطبيق عادي مأخوذ من متجر Google Play.
يوضح أدناه إحصائيات نموذج تعلم الآلة هذا:
الدقة (Accuracy): 0.9310344827586207
الاستدعاء (Recall): 0.9166666666666666
الدقة (Precision): 0.9166666666666666
مقياس F (F-Measure): 0.9166666666666666
أعلى 10 ميزات مرجحة (أي صلاحيات أندرويد) المستخدمة من قبل هذا النموذج لتحديد البرامج الضارة يمكن رؤيتها أدناه:
"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