
محلل أندرويد Rust آمن، موحد، قوي وقابل للتوسعة
محلل أندرويد Rust آمن، موحد، قوي وقابل للتوسيع
SUPER هو تطبيق سطر أوامر يمكن استخدامه في ويندوز، ماك أو إس إكس ولينكس، يحلل ملفات .apk بحثًا عن الثغرات الأمنية. يقوم بذلك عن طريق فك ضغط ملفات APK وتطبيق سلسلة من القواعد لاكتشاف تلك الثغرات.
لكن، لماذا إنشاء محلل جديد؟ أليس MobSF وQark وAndrobugs كافية؟ حسنًا، نعتقد أنها ليست كافية. جميعها تعاني من مشكلتين رئيسيتين أردنا إصلاحهما: إنها مكتوبة بلغة Java أو Python وليست قابلة للتوسيع بسهولة. وهي غير مصممة لتُستخدم مباشرة من قبل الشركات العاملة في تحليل Android، ولا تضع هذا النوع من الوظائف في المقام الأول.
طريقتنا تحل تلك المشكلات بطرق مختلفة: أولاً قررنا استخدام Rust كلغة برمجة. اللغة التي طورتها مؤسسة Mozilla علنًا تمنحنا الكثير من الأدوات للعمل مع التعبيرات النمطية والملفات وغيرها، والأهم من ذلك، أنها تمكننا من إنشاء برنامج آمن لا يعتمد على مترجمات JVM أو JIT. مع Rust، تجاوزات المكدس وأخطاء التقسيم وغيرها غير ممكنة مباشرة، مما يجعل الأمر منطقيًا في تطبيق يركز على الأمان. كما يمنحنا قوة كافية لإجراء تحليل فعال، مما يعطينا خيار أتمتته بكميات كبيرة. هذا ناتج عن تجريدات التكلفة الصفرية في Rust، والتي تمنحنا كفاءة لا تضاهى إلا بـ C/C++.
وثانيًا، قررنا جعل البرنامج قابل للتوسيع بنسبة 100%: جميع القواعد مركزة في ملف rules.json، ويمكن لكل شركة أو مختبِر إنشاء قواعده الخاصة لتحليل ما يحتاجه. كما أنه معياري، بحيث يمكن للتطورات الجديدة إضافة وظائف جديدة بسهولة. أخيرًا، نظام قوالب لتقارير النتائج يمنح المستخدمين القدرة على تخصيص التقرير.
كما يوفر أدوات مراجعة كود رائعة، مباشرة في تقرير HTML، بحيث يمكن لأي شخص البحث في الكود المُنشأ مع إبراز الصيغة لتحليل أفضل للثغرات.
لقد أصدرنا بعض الملفات الثنائية في صفحة التحميل لويندوز (8.1+)، لينكس، وماك أو إس إكس. لدينا فقط حزم 64-بت في الوقت الحالي. إذا كنت بحاجة لاستخدام SUPER في نظام 32-بت، ستحتاج إلى تجميع SUPER من المصدر. لذلك، ستحتاج إلى تثبيت Rust باستخدام rustup.rs.
ملاحظة: يتطلب 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 للحصول على تعليمات حول كيفية المتابعة.
هذا البرنامج هو برنامج حر: يمكنك إعادة توزيعه و/أو تعديله بموجب شروط رخصة جنو العمومية العامة كما نشرتها مؤسسة البرمجيات الحرة، إما الإصدار 3 من الرخصة، أو (حسب اختيارك) أي إصدار لاحق.