
تحليل ثغرات Android CVE-2024-0044، 43093، 23706 وبيئة مختبر PoC
| الاسم الكامل | Keyvan Arasteh |
|---|---|
| GitHub | @keyvanarasteh |
| البريد الإلكتروني | [email protected] |
| keyvanarasteh | |
| الموقع الإلكتروني | qline.tech |
| الاسم الكامل | Baha Furkan Yıldız |
|---|---|
| رقم الطالب | 2520****1009 |
| اسم المادة | اختبار الاختراق |
|---|---|
| رمز المادة | BGT006 |
تم تطوير هذا المشروع كمشروع نهائي لمادة "اختبار الاختراق" (BGT006) في برنامج تكنولوجيا أمن المعلومات بجامعة إستينية. في نطاق المشروع، تم فحص 3 ثغرات أمنية حديثة مختلفة (CVE-2024-0044، CVE-2024-43093، CVE-2024-23706) التي تؤثر على نظام أندرويد البيئي بعمق، وتم إعداد بيئة معملية معزولة وتحليلها باستخدام منهجية التحقيق السيبراني.
غالبًا ما تقتصر تحليلات أمان أندرويد التقليدية على التوثيق النظري أو الصور الثابتة فقط. يجمع هذا المشروع بين دورة الهجوم والدفاع باستخدام كودات قابلة للتشغيل لحل المشاكل الأساسية التالية:
exploit_sim.py) مع كاشف تتبع السجلات للفريق الأزرق (detector.py) من البداية إلى النهاية، ويقدم إثبات مفهوم (PoC) كامل للهجوم والدفاع.تمت إضافة مشغلات PoC تعمل بأمر واحد (run_poc.bat / run_poc.sh) ليتمكن المستخدم الذي يستنسخ المشروع من تشغيله ورؤية المخرجات في ثوانٍ. تحاكي هذه السكريات خطوات استغلال الفريق الأحمر وتجعل كاشف الفريق الأزرق يُنشئ إنذارات ويكتب في ملف reports/detection_results.json. للحصول على خطوات التشغيل التفصيلية، يمكنك الرجوع إلى قسم التثبيت والتشغيل.
تم دمج وكيل تحليل السجلات الطرفية src/detector.py المطور ضمن المشروع مع لوحة NetVanguard المركزية لمراقبة الحالات الشاذة والإنذارات التي تم تطويرها كمشروع نصفي. تم نقل توقيعات الثغرات الحرجة الناشئة على المحاكي إلى محرك NetVanguard الخلفي عبر الشبكة، مما يحاكي بنية المراقبة المركزية (SIEM).
وكيل الكشف عن الثغرات (src/detector.py) هو محرك خفيف (lightweight) لمراقبة سجلات النقاط الطرفية مصمم لاكتشاف أنشطة الاستغلال التي تتم على جهاز أندرويد.
adb connect ويراقب سجلات الجهاز مباشرة.adb logcat | python src/detector.py..log) سطرًا بسطر بشكل ديناميكي.DETECTION_KEYWORDS في ملف .env.SIGSEGV)، أخطاء تثبيت الحزمة (SIGABRT) وتعطل التطبيقات الآمنة (Process has died)، يُنشئ [TEHLIKE - ALARM] فورًا في المحطة الطرفية والسجلات.Android-rce-analizi/
├── .github/
│ └── workflows/
│ └── detector_test.yml # GitHub Actions (CI/CD) تكوين الاختبار التلقائي
├── .gitattributes # تكوين إحصائيات لغة GitHub وسمات الملفات
├── README.md # الوثيقة الرئيسية للمشروع
├── ROADMAP.md # خارطة طريق المشروع (المرحلة 0-5)
├── start_dashboard.bat # مشغل لوحة الويب لنظام Windows
├── start_dashboard.sh # مشغل لوحة الويب لنظام macOS/Linux
├── run_poc.bat # محاكي PoC بنقرة واحدة لنظام Windows
├── run_poc.sh # محاكي PoC بنقرة واحدة لنظام macOS/Linux
├── .gitignore # الملفات المستثناة من تتبع Git
├── .env.example # قالب متغيرات البيئة
├── Dockerfile # تكوين Docker
├── docker-compose.yml # تكوين الحاويات المتعددة
├── LICENSE # ملف الترخيص
├── mitigation/ # ملفات تخفيف الثغرات والتصحيح (patch)
│ ├── cve_2024_0044_patch.diff
│ ├── cve_2024_23706_mitigation.md
│ └── cve_2024_43093_mitigation.md
├── src/ # الكودات المصدرية
│ ├── detector.py # وكيل تحليل السجلات الطرفية (محرك الكشف الفوري)
│ ├── exploit_sim.py # محاكي استغلال الثغرات للفريق الأحمر (Red Team)
│ └── test_detector.py # اختبارات وحدة تلقائية مكتوبة للوكيل
├── reports/ # تقارير المسح والكشف المحاكاة
│ ├── nessus_scan.csv # مخرجات مسح ثغرات Nessus المحاكاة
│ └── detection_results.json # مخرجات السجل التي يسجلها محرك الكشف فوراً
├── web/ # واجهة لوحة الويب
│ ├── index.html # ملف HTML الرئيسي للوحة
│ ├── css/style.css # أنماط الواجهة
│ └── js/main.js # ديناميكيات الواجهة ومحاكي المحطة الطرفية
├── docs/ # التوثيق
│ ├── assets/ # ملفات الصور والوسائط (بما في ذلك GIF التوضيحي)
│ ├── modules/ # وثائق الوحدات
│ ├── references/ # المصادر المرجعية
│ └── research/ # وثائق البحث المتعمق
│ ├── 01_zafiyet_analizi.md
│ ├── 02_teknik_mekanizma.md
│ ├── 03_saldirgan_perspektifi.md
│ ├── cve_2024_23706.md
│ ├── cve_2024_43093.md
│ ├── detector_test_output.md # مخرجات تقرير الاختبار
│ └── final_rapor.md # التقرير النهائي لتسليم المادة
└── honeypot/ # ملفات بيئة honeypot (دليل تثبيت المحاكي)
تم تناول تحليل الثغرات ومحاكاة الدفاع ضمن نطاق المشروع من خلال دورة أمن سيبراني تتكون من 4 مراحل أساسية:
graph TD
A["1. تحليل الثغرة والفحص الثابت"] --> B["2. إعداد البيئة المعملية المعزولة"]
B --> C["3. محاكاة الاستغلال والتسجيل الديناميكي"]
C --> D["4. الارتباط ولوحة التحكم المرئية"]
SIGSEGV) بواسطة وكيل كشف الثغرات src/detector.py عن طريق التصفية.web/ بعد إثرائها بمصفوفات المخاطر والرسوم البيانية لسلسلة الهجوم ومحاكاة المحطة الطرفية المباشرة التي يمكن للإداريين والمحللين فهمها.# 1. استنساخ المستودع والانتقال إلى الدليل
git clone https://github.com/bfurkanyildiz/Android-rce-analizi.git
cd Android-rce-analizi
# 2. تحضير متغيرات البيئة (سيتم استخدام الإعدادات الافتراضية بدون .env)
cp .env.example .env
لاختبار آلية الهجوم والكشف من البداية إلى النهاية دون الحاجة إلى أي تثبيت أو إعداد محاكي:
run_poc.bat
bash run_poc.sh
لالتقاط logcat فوري أثناء تشغيل محاكي أندرويد:
# تشغيل الوكيل (يبدأ في الاستماع للسجلات المباشرة عبر ADB)
python src/detector.py
# من محطة طرفية أخرى، قم بتشغيل محاكي الهجوم
python src/exploit_sim.py
لتشغيل جميع التبعيات في حاوية Docker معزولة:
docker-compose up -d
لاختبار جودة البرامج ومعايير CI/CD:
python -m unittest src/test_detector.py
يمكن لأي مستخدم يستنسخ المشروع (git clone) تشغيل واجهة الويب الغنية التي تحتوي على تقارير التحليل ومحاكاة المحطة الطرفية بسهولة على جهازه المحلي.
لعرض الواجهة، يمكنك استخدام إحدى الطرق التالية:
لتشغيل خادم HTTP المحلي في الخلفية وفتح الواجهة تلقائيًا في متصفحك الافتراضي، قم بتشغيل الأمر المناسب لنظام التشغيل لديك:
start_dashboard.bat في الدليل الرئيسي للمشروع، أو تشغيله من المحطة الطرفية بالأمر التالي:
start_dashboard.bat
bash start_dashboard.sh
chmod +x start_dashboard.sh
./start_dashboard.sh
للتشغيل مباشرة دون الحاجة إلى أي خادم محلي:
web/.index.html لفتحه مباشرة في متصفحك.إذا كنت ترغب في تشغيل خادم Python يدويًا:
python -m http.server 8080
ثم انتقل في متصفحك إلى http://localhost:8080/web/index.html.
تتم إدارة مشروعنا وفقًا لمبادئ هندسة البرمجيات المتوافقة مع معايير الأمن السيبراني (DevSecOps). عند كل عملية دفع (push) أو طلب سحب (pull request) إلى المستودع، ينفذ GitHub Actions مسار العمل التالي (pipeline):
ubuntu-latest و windows-latest للتحقق من التوافق عبر المنصات.flake8.bandit (تم وضع علامة # nosec على جميع حالات الإيجابيات الكاذبة وفقًا لمعايير الأمن السيبراني).exploit_sim.py | detector.py لمحاكاة دورة الاستغلال والكشف من البداية إلى النهاية.detection_results.json الذي تم إنشاؤه نتيجة PoC الناجح تلقائيًا كملف مضغوط (zip) إلى مخرجات Actions.
هذا المشروع مخصص للأغراض الأكاديمية والتعليمية فقط. يتم إجراء جميع الاختبارات في بيئة معملية خاضعة للرقابة، على أجهزة افتراضية معزولة. أي محاولة هجوم على أجهزة حقيقية أو أنظمة تابعة لجهات خارجية غير قانونية وتقع خارج نطاق هذا المشروع.
هذا المشروع مرخص بموجب رخصة جنو العمومية العامة الإصدار 3.0.
| الساعات المعتمدة |
| 3 AKTS |
| المتطلبات الأساسية | أساسيات الشبكات، واجهة سطر الأوامر لينكس |
| الفصل الدراسي | ربيع 2025-2026 |
| كود CVE | نوع الثغرة | درجة CVSSv3 | المكون المتأثر | متجه الهجوم |
|---|
| CVE-2024-0044 | Run-as UID Bypass (LPE & RCE) | 8.8 (عالي) | Android System Server | محلي (ADB / تطبيق ضار) |
| CVE-2024-43093 | SQLite & DocumentProvider Bypass | 7.8 (عالي) | Android SQLite Library | محلي (الوصول إلى الوسائط/الملفات) |
| CVE-2024-23706 | Package Manager Bypass | 7.8 (عالي) | Android Package Manager | محلي (تثبيت التطبيقات) |
| التقنية | الغرض من الاستخدام |
|---|
| Python 3.x | محرك الكشف، محاكاة الهجوم |
| Android SDK / ADB | إدارة المحاكي، الاتصال بالجهاز |
| Docker | حاوية بيئة معملية معزولة |
| Flask | لوحة المراقبة عبر الويب |
| Logcat | تحليل سجلات نظام أندرويد |