
مختبر تدريب عملي لأمن أندرويد من OWASP يضم 78 وحدة MASVS/MASTG تقرن تطبيقات مصابة وآمنة وتطبيقات مهاجم لتوضيح نقاط الضعف في الهواتف المحمولة وإصلاحاتها.
مشروع OWASP رسمي — مختبر تدريب أمني عملي على OWASP MASVS/MASTG لمطوري أندرويد ومختبري الاختراق — بنية المرآة: ثغرة ↔ آمن ↔ مهاجم
ماستر كلاس أمن أندرويد هو مشروع OWASP رسمي مصمم ببنية المرآة (Mirror Architecture) لتعليم مطوري أندرويد وباحثي الأمن بالضبط كيف تبدو الثغرات الأمنية وبالضبط كيفية إصلاحها باستخدام ممارسات تطوير أندرويد الحديثة.
بدلاً من البحث عن الأخطاء في قواعد أكواد Java القديمة، يستخدم هذا المشروع أحدث مجموعة تقنيات (Kotlin، Jetpack Compose، MVVM، Material 3) وهو مبني حول نظام "Package-by-Feature" القابل للتوسع بشكل هائل.
🌐 بوابة مشروع OWASP والتوثيق:
- صفحة مشروع OWASP: https://owasp.org/projects/android-security-masterclass
- بوابة التوثيق: https://owasp.github.io/Android-Security-Masterclass/
- الورقة البيضاء ومصفوفة الربط للوحدات الـ 78: متاحة في بوابة التوثيق.
graph TD
COMMON("🧱 :common<br/>Shared Data · Theme<br/>Dashboard Metadata")
subgraph FEATURES ["📦 Package-by-Feature (78 Isolated MASWE Modules)"]
direction LR
M1(":features:maswe0001<br/>Private Storage")
M2(":features:maswe0002<br/>External Storage")
M5(":features:maswe0005<br/>Logging Leaks")
MDOT("...<br/>... ")
M78(":features:maswe0078<br/>Privacy")
end
VULN("❌ :app-vulnerable<br/>Thin Shell Orchestrator")
SEC("✅ :app-secure<br/>Thin Shell Orchestrator")
ATK("😈 :app-attacker<br/>Simulated Malware")
COMMON --> FEATURES
FEATURES -- "Insecure Implementation" --> VULN
FEATURES -- "Hardened Implementation" --> SEC
VULN -. "Active Exploit<br/>IPC / Logcat" .-> ATK
classDef common fill:#4A90D9,stroke:#2C5F8A,color:#fff,stroke-width:2px,font-weight:bold
classDef feat fill:#F39C12,stroke:#D35400,color:#fff,stroke-width:2px,font-weight:bold
classDef vuln fill:#E74C3C,stroke:#C0392B,color:#fff,stroke-width:2px,font-weight:bold
classDef secure fill:#27AE60,stroke:#1E8449,color:#fff,stroke-width:2px,font-weight:bold
classDef attacker fill:#8E44AD,stroke:#6C3483,color:#fff,stroke-width:2px,font-weight:bold
class COMMON common
class M1,M2,M5,MDOT,M78 feat
class VULN vuln
class SEC secure
class ATK attackerيستخدم المشروع بنية فائقة الوحدات (Hyper-Modular) تمتد عبر أكثر من 80 وحدة إجمالاً:
MasterclassData عالي الدقةعلى عكس المشاريع التعليمية الأخرى التي تستخدم بيانات تافهة ("admin:password")، تستخدم محاكاة التسريب لدينا حمولات بمستوى اللوائح التنظيمية:
💡 نصيحة: يمكنك عرض كل هذه البيانات المحاكاة مباشرةً على جهازك بالنقر على زر "Data Vault" في لوحة التحكم الخاصة بالتطبيق غير الآمن أو الآمن.
قمنا بربط معيار OWASP MASVS بالكامل في 78 وحدة متميزة عبر 8 مجالات:
الوحدات التالية تم تنفيذ منطق أعمالها، وبنية MVI، واختبارات الوحدة، ومحاكاة الهجوم/الدفاع بشكل كامل:
-assumenosideeffects) وأغلفة SecureLog.adb backup أو النسخ الاحتياطي السحابي على Google Drive. يتم تحصينه عبر android:allowBackup="false"، وdataExtractionRules، وfullBackupContent.(راجع docs/mapping_matrix.md على موقع MkDocs للحصول على التفصيل الكامل للمتجهات الـ 78).
app-vulnerable أو app-secure وانشره على محاكي.Build Variants واختر debug. شغّل التطبيق وتحقق من Logcat. سترى التسريبات في التطبيق غير الآمن.release. سيبدأ تصغير R8 (ProGuard) بالعمل. في app-secure، سيتم تجريد جميع السجلات الحرجة بالكامل!:app-attacker)لمشاهدة العواقب الحقيقية لهذه الثغرات، ثبّت وحدة :app-attacker إلى جانب :app-vulnerable على نفس الجهاز.
graph LR
subgraph VICTIM ["❌ :app-vulnerable"]
direction TB
LOG("📋 Log.d sends PII<br/>to system Logcat")
FP("📂 FileProvider<br/>exported paths")
end
subgraph MALWARE ["😈 :app-attacker"]
direction TB
LE("🔍 LogcatExploitScreen<br/>reads all logs")
ER("📥 ExploitReceiverScreen<br/>steals files via URI")
end
LOG -- "READ_LOGS permission" --> LE
FP -- "content:// URI interception" --> ER
classDef victim fill:#E74C3C,stroke:#C0392B,color:#fff,stroke-width:2px
classDef malware fill:#8E44AD,stroke:#6C3483,color:#fff,stroke-width:2px
class LOG,FP victim
class LE,ER malwareمنح إذن READ_LOGS (لـ MASWE-0005):
بشكل افتراضي، لا يسمح أندرويد للتطبيقات بقراءة سجلات النظام. لإظهار كيف يمكن لتطبيق ضار قراءة السجلات إذا مُنح الإذن (أو على الأجهزة المُروّتة/الأقدم)، يجب منح هذا الإذن يدوياً عبر ADB:
adb shell pm grant com.hasantuncay.mobsec.attacker android.permission.READ_LOGS
ملاحظة للأجهزة الفعلية: إذا كنت تختبر على MIUI، أو ColorOS، أو ما شابه، يجب عليك الانتقال إلى Developer Options وتمكين "USB debugging (Security settings)" للسماح لـ ADB بمنح الأذونات.
تم إنشاء هذا المشروع بدقة لأغراض تعليمية. الثغرات الموضحة في وحدة :app-vulnerable حقيقية وخطيرة. لا تستخدم الكود من وحدة :app-vulnerable في بيئات الإنتاج. ارجع دائماً إلى وحدة :app-secure للحصول على أفضل الممارسات.
نرحب بمساهمات المجتمع! يرجى قراءة دليل المساهمة الشامل قبل فتح طلب سحب (Pull Request). يغطي فلسفة مشروعنا (بنية المرآة Package-by-Feature)، ومعايير الترميز، والعملية خطوة بخطوة لتوليد وتنفيذ المنطق داخل وحدات :features:masweXXXX.
قائد المشروع:
المجتمع والدعم:
| طبقة الوحدة | الدور | الحالة |
|---|
:common | الأساس. يحتوي على مولّد الحمولات عالي الدقة MasterclassData، وبيانات لوحة التحكم الوصفية، وسمة واجهة المستخدم الأساسية، ومكونات التنقل العامة. | الأساس ✅ |
:features:masweXXXX | 78 وحدة Gradle معزولة بالكامل (من 0001 إلى 0078). تحتوي كل وحدة على كلٍّ من المنطق غير الآمن والمنطق الآمن لثغرة محددة واحدة، مما يمنع تماماً تسرب الكود بين الوحدات. | تم توليد 78 وحدة ✅ |
:app-vulnerable | تطبيق منسّق "Thin Shell". يربط معاً مكونات واجهة المستخدم غير الآمنة من جميع وحدات الميزات الـ 78 لإظهار النتيجة الفعلية لانتهاكات OWASP. | نشط ✅ |
:app-secure | تطبيق منسّق "Thin Shell". يربط معاً التطبيقات الآمنة باستخدام المعايير الحديثة (Jetpack Security، Tink، SQLCipher، ProGuard). | نشط ✅ |
:app-attacker | تطبيق ضار محاكى من طرف ثالث. يوضح استغلالات IPC المباشرة عبر عملية ثانوية تعمل بشكل متزامن على الجهاز. | نشط ✅ |