
Android ऐप्स के लिए एक मशीन लर्निंग मैलवेयर विश्लेषण ढांचा।
🕵️ एंड्रॉइड ऐप्स के लिए एक मशीन लर्निंग मैलवेयर विश्लेषण ढांचा। ☢️
DroidDetective एक Python उपकरण है जो एंड्रॉइड अनुप्रयोगों (APK) का संभावित मैलवेयर संबंधित व्यवहार और कॉन्फ़िगरेशन के लिए विश्लेषण करता है। जब किसी एप्लिकेशन (APK फ़ाइल) का पथ प्रदान किया जाता है, तो Droid Detective अपने ML मॉडल का उपयोग करके यह भविष्यवाणी करेगा कि एप्लिकेशन दुर्भावनापूर्ण है या नहीं। Droid Detective की विशेषताएं और गुण निम्नलिखित हैं:
AndroidManifest.xml फ़ाइल में ~330 अनुमतियों में से कौन सी निर्दिष्ट हैं। 🙅AndroidManifest.xml फ़ाइल में उपयोग में आने वाली मानक और मालिकाना अनुमतियों की संख्या का विश्लेषण करना। 🧮DroidDetective की सभी निर्भरताएँ मैन्युअल रूप से या आवश्यकताओं फ़ाइल के माध्यम से स्थापित की जा सकती हैं, इस प्रकार:
pip install -r REQUIREMENTS.txt
DroidDetective का परीक्षण Windows 10 और Ubuntu 18.0 LTS दोनों पर किया गया है।
DroidDetective को Python फ़ाइल में APK को कमांड लाइन पैरामीटर के रूप में प्रदान करके चलाया जा सकता है, जैसे:
python DroidDetective.py myAndroidApp.apk
यदि apk_malware.model फ़ाइल मौजूद नहीं है, तो उपकरण पहले मॉडल को प्रशिक्षित करेगा और उसे प्रोजेक्ट की जड़ में malware नामक फ़ोल्डर और normal नामक दूसरे फ़ोल्डर में APK के प्रशिक्षण सेट की आवश्यकता होगी। सफलतापूर्वक चलने के बाद CLI पर एक परिणाम मुद्रित होगा कि मॉडल ने APK को दुर्भावनापूर्ण या सुरक्षित पहचाना है या नहीं। इस आउटपुट का एक उदाहरण नीचे देखा जा सकता है:
>> Analysed file 'com.android.camera2.apk', identified as not malware.
परिणामों को सहेजने के लिए DroidDetective.py को एक अतिरिक्त पैरामीटर के रूप में Json फ़ाइल प्रदान की जा सकती है। यदि यह Json फ़ाइल पहले से मौजूद है, तो इस रन के परिणाम Json फ़ाइल में जोड़ दिए जाएंगे।
python DroidDetective.py myAndroidApp.apk output.json
इस आउटपुट Json का एक उदाहरण इस प्रकार है:
{
"com.android.camera2": false,
}
DroidDetective Android अनुप्रयोगों (APK) का संभावित मैलवेयर संबंधित व्यवहार के लिए विश्लेषण करने का एक Python उपकरण है। यह ज्ञात मैलवेयर APK और Android ऐप स्टोर पर उपलब्ध मानक APK दोनों से प्राप्त जानकारी पर Random Forest क्लासिफायर को प्रशिक्षित करके काम करता है। यह उपकरण पूर्व-प्रशिक्षित आता है, हालांकि, मॉडल को किसी भी समय नए डेटासेट पर पुनः प्रशिक्षित किया जा सकता है। ⚙️
यह मॉडल वर्तमान में एक APK की AndroidManifest.xml फ़ाइल से अनुमतियों को फीचर सेट के रूप में उपयोग करता है। यह प्रत्येक मानक Android अनुमति का एक शब्दकोश बनाकर और यदि अनुमति APK में मौजूद है तो फीचर को 1 पर सेट करके काम करता है। इसी तरह, मेनिफेस्ट में उपयोग में आने वाली अनुमतियों की संख्या और मेनिफेस्ट में पाई गई अज्ञात अनुमतियों की संख्या के लिए एक फीचर जोड़ा जाता है।
पूर्व-प्रशिक्षित मॉडल को लगभग 14 मैलवेयर परिवारों (प्रत्येक में एक या अधिक APK फ़ाइलें), जो ashisdb के रिपॉजिटरी से प्राप्त किए गए, और Google Play Store से प्राप्त लगभग 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