
mobileAudit v3.2.0
تطبيق Django يقوم بإجراء SAST وتحليل البرامج الضارة لملفات APK الخاصة بأندرويد
تدقيق الأجهزة المحمولة

MobileAudit - تحليل SAST والبرامج الضارة لتطبيقات Android APK
تطبيق ويب Django لإجراء التحليل الثابت وكشف المحتوى الضار داخل ملفات APK لنظام Android. يستخرج المشروع بيانات تعريف التطبيق، ويفحص الكود المصدري للضعف، ويجمع النتائج (نتائج SAST، أفضل الممارسات، معلومات الشهادة، السلاسل النصية، قواعد البيانات، الملفات، VirusTotal، وغيرها) في لوحة تحكم وواجهة برمجة تطبيقات قابلة للتصفح.
وثائق DeepWiki: https://deepwiki.com/mpast/mobileAudit
- المكونات
- صور Docker الأساسية
- الميزات الرئيسية
- الأنماط
- النماذج
- التثبيت
- واجهة برمجة التطبيقات الإصدار 1
- TLS
- متغيرات البيئة

في كل عملية فحص، ستتوفر المعلومات التالية:
- معلومات وتحليل APK: معلومات التطبيق، معلومات الأمان، المكونات، معلومات الشهادة، السلاسل النصية، قواعد البيانات، الملفات
- نتائج SAST مصنفة حسب CWE وتخطيط Mobile Top 10
- محرك أنماط مع قواعد قابلة للتبديل
- فحص نطاقات البرامج الضارة ضد MalwareDB وMaltrail
- البحث في VirusTotal (API v3) والرفع الاختياري (معطل افتراضيًا)
- تكامل DefectDojo (API v2) (اختياري) لتصدير النتائج
- واجهة برمجة تطبيقات مع Swagger وReDoc، مع مصادقة قائمة على الرموز
- تصدير تقارير الفحص إلى PDF
- النتائج قابلة للتحرير مع فرز النتائج الإيجابية الخاطئة

لسهولة الوصول، يوجد شريط جانبي في الصفحة اليسرى من الفحص:

المكونات

- db: PostgreSQL 3.11.5
- nginx: Nginx 1.23.3
- rabbitmq: RabbitMQ 3.11.5
- worker: Celery 5.2.2
- web: تطبيق Mobile Audit (Django 3.2.16)
صور Docker الأساسية
الصورة مبنية على python buster. رابط صورة Docker Hub
| الصورة | الوسوم | الأساس |
|---|---|---|
| mpast/mobile_audit | 3.0.0 | python:3.9.16-buster |
| mpast/mobile_audit | 2.2.1 | python:3.9.7-buster |
| mpast/mobile_audit | 1.3.8 | python:3.9.4-buster |
| mpast/mobile_audit | 1.0.0 | python:3.9.0-buster |
الميزات الرئيسية
- يعمل في Docker لسهولة النشر القابل للتكرار
- يستخرج ويعرض معلومات APK مفصلة
- قواعد SAST التي تتوافق مع CWE ومخاطر Mobile Top 10
- كشف مؤشرات البرامج الضارة (MalwareDB / Maltrail)
- نقاط تكامل لـ VirusTotal وDefectDojo (اختياري)
- تصدير نتائج الفحص إلى PDF
- مصادقة المستخدمين، إدارتهم، وواجهة برمجة تطبيقات قائمة على الرموز
- وثائق Swagger وReDoc
- تهيئة Nginx جاهزة لـ TLS للإنتاج
مخطط / قائمة الرغبات
- تكامل LDAP
- تصدير إلى Markdown / CSV
- تحسينات إعادة تحميل الصفحة الديناميكية (قيد العمل)
الأنماط
- يتضمن التطبيق محرك قواعد/أنماط يكتشف الثغرات المحتملة والمقتطفات الضارة داخل ملفات APK.
- الأنماط قابلة للتكوين ويمكن تمكينها/تعطيلها من واجهة المستخدم
/patterns. - ملاحظة: بعض الأنماط المضمنة مشتقة من مشروع apkleaks: https://github.com/dwisiswant0/apkleaks

النماذج
يحتوي التطبيق على نماذج منشأة لكل من كيانات معلومات الفحص لتمكين إنشاء العلاقات والحصول على أفضل الاستنتاجات لكل تطبيق APK.

لعرض مخطط النموذج الكامل، انتقل إلى النماذج
التثبيت
باستخدام Docker-compose:
ملف docker-compose.yml المقدم يتيح لك تشغيل التطبيق محليًا في بيئة التطوير.
لبناء الصورة المحلية وإذا كانت هناك تغييرات في Dockerfile الخاص بالتطبيق المحلي، يمكنك بناء الصورة باستخدام:
docker-compose build
ثم لتشغيل الحاوية، نفذ:
docker-compose up
اختياري: التشغيل في الوضع المنفصل (بدون رؤية السجلات)
docker-compose up -d
بمجرد تشغيل التطبيق، يمكنك اختباره عن طريق الانتقال إلى: http://localhost:8888/ للوصول إلى لوحة التحكم.

أيضًا، هناك إصدار TLS باستخدام docker-compose.prod.yaml يعمل على المنفذ 443
لاستخدامه، نفذ
docker-compose -f docker-compose.prod.yaml up
ثم يمكنك اختبار التطبيق عن طريق الانتقال إلى: https://localhost/ للوصول إلى لوحة التحكم.
لمزيد من المعلومات، راجع TLS
لإيقاف وإزالة الحاويات، نفذ
docker-compose down
واجهة برمجة التطبيقات الإصدار 1
تكامل واجهة برمجة تطبيقات REST مع Swagger وReDoc.
الاستخدام
- نقطة النهاية للمصادقة والحصول على الرمز:
/api/v1/auth-token/

- بمجرد المصادقة، استخدم الرأس في جميع الطلبات:
Authorization: Token <ApiKey>
Swagger

ReDoc

نقاط النهاية
- عرض JSON لمواصفات API في
/swagger.json - عرض YAML لمواصفات API في
/swagger.yaml - عرض swagger-ui لمواصفات API في
/swagger/ - عرض ReDoc لمواصفات API في
/redoc/
TLS
المتطلبات الأساسية
- أضف الشهادات في
nginx/ssl - لإنشاء شهادة موقعة ذاتيًا:
openssl req -x509 -nodes -days 1 -newkey rsa:4096 -subj "/C=ES/ST=Madrid/L=Madrid/O=Example/OU=IT/CN=localhost" -keyout nginx/ssl/nginx.key -out nginx/ssl/nginx.crt
تهيئة Nginx
- TLS - المنفذ 443:
nginx/app_tls.conf - القياسي - المنفذ 8888:
nginx/app.conf
تهيئة Docker
افتراضيًا، يوجد مجلد في docker-compose.yml مع التهيئة للمنفذ 8888 المتاح
- ./nginx/app.conf:/etc/nginx/conf.d/app.conf
في بيئة الإنتاج استخدم docker-compose.prod.yaml مع المنفذ 443
- ./nginx/app_tls.conf:/etc/nginx/conf.d/app_tls.conf
متغيرات البيئة
جميع متغيرات البيئة موجودة في ملف .env، ويوجد ملف .env.example يحتوي على جميع المتغيرات المطلوبة. كما تم تجميعها في app/config/settings.py.
الحد الأدنى المقترح لتعديلات .env للتطوير المحلي
- قم بتعيين SECRET_KEY وبيانات اعتماد قاعدة البيانات وبيانات اعتماد المستخدم المسؤول.
- اترك VirusTotal / DefectDojo معطلين ما لم يكن لديك مفاتيح API صالحة وخدمات متاحة.
المساهمة
إذا كنت ترغب في المساهمة، راجع المساهمة