
सुरक्षित, एकीकृत, शक्तिशाली और विस्तार योग्य Rust Android विश्लेषक
सुरक्षित, एकीकृत, शक्तिशाली और विस्तार योग्य Rust Android विश्लेषक
SUPER एक कमांड-लाइन एप्लिकेशन है जिसका उपयोग Windows, MacOS X और Linux में किया जा सकता है। यह .apk फ़ाइलों में कमज़ोरियों की खोज के लिए उनका विश्लेषण करता है। यह APK को डीकंप्रेस करके और उन कमज़ोरियों का पता लगाने के लिए नियमों की एक श्रृंखला लागू करके ऐसा करता है।
लेकिन, एक नया विश्लेषक क्यों बनाएं? क्या MobSF, Qark, Androbugs… पर्याप्त नहीं हैं? खैर, हमें लगता है कि ये पर्याप्त नहीं हैं। इन सभी में दो मुख्य समस्याएं हैं जिन्हें हम ठीक करना चाहते थे: ये Java या Python में लिखे गए हैं और ये आसानी से विस्तार योग्य नहीं हैं। ये व्यवसायों द्वारा सीधे Android विश्लेषण में काम करने के लिए अभिप्रेत नहीं हैं, और इस तरह की कार्यक्षमता को प्राथमिकता नहीं देते हैं।
हमारा दृष्टिकोण इन समस्याओं को अलग-अलग तरीकों से हल करता है: हमने सबसे पहले अपनी प्रोग्रामिंग भाषा के रूप में Rust का उपयोग करने का निर्णय लिया। Mozilla Foundation द्वारा खुले तौर पर विकसित यह भाषा हमें रेगुलर एक्सप्रेशन, फ़ाइलों आदि के साथ काम करने के लिए बहुत सारी उपयोगिताएँ प्रदान करती है और, सबसे महत्वपूर्ण बात, यह हमें एक सुरक्षित सॉफ़्टवेयर बनाने में सक्षम बनाती है जो JVM या JIT कंपाइलरों पर निर्भर नहीं करता है। Rust के साथ, स्टैक ओवरफ़्लो, सेगमेंटेशन फॉल्ट आदि सीधे संभव नहीं हैं, जो एक सुरक्षा-केंद्रित एप्लिकेशन में समझ में आता है। और यह हमें कुशल विश्लेषण करने के लिए पर्याप्त शक्ति भी देता है, जिससे हमें इसे बड़ी मात्रा में स्वचालित करने का विकल्प मिलता है। यह Rust के शून्य-लागत अमूर्तन द्वारा प्रदान किया गया है, जो हमें केवल C/C++ के बराबर दक्षता देता है।
और दूसरी बात, हमने सॉफ़्टवेयर को 100% विस्तार योग्य बनाने का निर्णय लिया: सभी नियम एक rules.json फ़ाइल में केंद्रित हैं, और प्रत्येक कंपनी या परीक्षक अपनी ज़रूरत के अनुसार विश्लेषण करने के लिए अपने स्वयं के नियम बना सकते हैं। यह मॉड्यूलर भी है, ताकि नए विकास आसानी से नई कार्यक्षमता जोड़ सकें। अंत में, परिणाम रिपोर्ट के लिए एक टेम्पलेटिंग सिस्टम उपयोगकर्ताओं को रिपोर्ट को वैयक्तिकृत करने की क्षमता देता है।
यह HTML रिपोर्ट में सीधे उत्कृष्ट कोड समीक्षा उपकरण भी प्रदान करता है, ताकि कोई भी सिंटैक्स हाइलाइटिंग के साथ जनरेटेड कोड के माध्यम से और भी बेहतर कमज़ोरी विश्लेषण के लिए खोज कर सके।
हमने डाउनलोड पेज पर Windows (8.1+), Linux और MacOS X के लिए कुछ बाइनरी जारी की हैं। अभी हमारे पास केवल 64-बिट पैकेज हैं। यदि आपको 32-बिट सिस्टम में SUPER का उपयोग करने की आवश्यकता है, तो आपको स्रोत से SUPER संकलित करना होगा। उसके लिए, आपको rustup.rs के साथ Rust स्थापित करना होगा।
नोट: इसे चलाने के लिए Java 1.7+ की आवश्यकता है।
SUPER का उपयोग करना बहुत आसान है। बस वांछित .apk को downloads फ़ोल्डर में डाउनलोड करें (यदि आवश्यक हो तो वह फ़ोल्डर बनाएं) और प्रोग्राम चलाते समय नाम को एक तर्क के रूप में उपयोग करें। निष्पादन के बाद, results फ़ोल्डर में उस एप्लिकेशन नाम के साथ एक विस्तृत रिपोर्ट दिखाई देगी। कुछ उपयोग विकल्प उपलब्ध हैं:
USAGE:
super [FLAGS] [OPTIONS] <package>
FLAGS:
--bench Show benchmarks for the analysis
--force If you'd like to force the auditor to do everything from the beginning
-h, --help Prints help information
--html Generates the reults in HTML format
--json Generates the reults in JSON format
--open Open the report in a browser once it is complete
-q, --quiet If you'd like a zen auditor that won't output anything in stdout
-a, --test-all Test all .apk files in the downloads directory
-V, --version Prints version information
-v, --verbose If you'd like the auditor to talk more than necessary
OPTIONS:
--dex2jar <dex2jar> Where to store the jar files
--dist <dist> Folder where distribution files will be extracted
--downloads <downloads> Folder where the downloads are stored
--jd-cmd <jd-cmd> Path to the jd-cmd file
--min-criticality <min_criticality> Set a minimum criticality to analyze (Critical, High, Medium, Low)
--results <results> Folder where to store the results
--rules <rules> Path to a JSON rules file
--template <template> Path to a results template file
-t, --threads <threads> Number of threads to use, by default it will use one thread per logical CPU core
ARGS:
<package> The package string of the application to test
सभी का SUPER में योगदान करने के लिए स्वागत है। कृपया आगे बढ़ने के निर्देशों के लिए SUPER योगदान दिशानिर्देश देखें।
यह प्रोग्राम मुफ़्त सॉफ़्टवेयर है: आप इसे GNU जनरल पब्लिक लाइसेंस की शर्तों के तहत पुनर्वितरित और/या संशोधित कर सकते हैं, जैसा कि फ्री सॉफ्टवेयर फाउंडेशन द्वारा प्रकाशित किया गया है; लाइसेंस का संस्करण 3, या (आपकी पसंद पर) कोई बाद का संस्करण।