الوحدة 5: اختبار اختراق التطبيقات (Web & Mobile Penetration Testing)

منهجية، أدوات، أمثلة، ممارسات عملية، وتوثيق النتائج.

1 — الوصف العام

تركز هذه الوحدة على منهجية اختبار اختراق تطبيقات الويب والتطبيقات المحمولة (Web & Mobile Pentesting). تشرح كيف يتم التخطيط للاختبار، جمع المعلومات، البحث عن الثغرات، استغلالها (داخل بيئات مختبرية مرخّصة)، وما بعد الاستغلال، ثم توثيق النتائج بشكل مهني. ستتعلم أيضًا الفروقات والتقنيات الخاصة بتطبيقات الويب مقابل تطبيقات الجوال، وكيفية استخدام أدوات احترافية (مثل Burp Suite, OWASP ZAP, MobSF, Frida) لإجراء اختبارات فعالة وآمنة.

ملحوظة مهمة: جميع التقنيات والأمثلة الواردة في هذه الوحدة يجب تطبيقها فقط داخل بيئات مُصرَّح بها (مختبرات تدريبية مثل Juice Shop, DVWA, WebGoat, تطبيقات تجريبية محلية، أو أنظمة تملك تفويضًا كتابيًا لاختبارها). لا تطبِّقها على أنظمة الآخرين دون إذن صريح.

2 — الأهداف التعليمية

بنهاية هذه الوحدة سيكون المتدرّب قادرًا على:

  • وصف منهجية اختبار اختراق للتطبيقات واتباعها (pre-engagement → scoping → exploitation → reporting).
  • إجراء استطلاعٍ ومَسحٍ آمن وفعّال لجمع معلومات عن تطبيق ويب أو تطبيق جوال.
  • اكتشاف نقاط الضعف الشائعة في تطبيقات الويب والتطبيقات المحمولة باستخدام أدوات آلية وطرق يدوية.
  • تنفيذ استغلالات تجريبية آمنة (PoC) داخل بيئة مختبرية وشرح أثر الثغرة.
  • إعداد تقرير تقني وملخّص تنفيذي يضم توصيات تصحيحية وترتيب أولويات.
  • فهم الفروقات العملية بين اختبار تطبيقات الويب واختبار تطبيقات الجوال (الهجمات الخاصة بالمنصة، تخزين البيانات، تحليل الحزم، تجاوز التوثيق أو SSL pinning).

3 — منهجية اختبار الاختراق (خطوات عامة ومفصلة)

3.1 مرحلة ما قبل البدء (Pre-engagement & Scoping)

  • تحديد نطاق الاختبار (الـ scope): قائمة الـ URLs، نطاقات، وحدود الاختبار، أجهزة/واجهات APIs، منصات الجوال (Android/iOS).
  • شروط الإذن: الحصول على اتفاقية اختبار مكتوبة (Rules of Engagement) تتضمن مواعيد، استثناءات، طريقة الإبلاغ عن القضايا الحرجة فوراً.
  • اختيار منهجية: OWASP WSTG، PTES، NIST SP 800-115 كمراجع.

3.2 جمع المعلومات (Reconnaissance / Intelligence)

Passive Recon (مصادر مفتوحة OSINT):

  • جمع نطاقات، سجلات DNS وعناوين IP، شهادات SSL/TLS (crt.sh)، معلومات WHOIS، صفحات الموظفين، روابط GitHub, leak data.

Active Recon:

  • مسح البورتات (nmap)، فحص الخدمات، جمع رؤوس HTTP، فحص خريطة الموقع (robots.txt, sitemap.xml)، فحص التقنيات المستخدمة (Wappalyzer).
أدوات: Nmap, Amass, Subfinder, theHarvester, WhatWeb, Wappalyzer, crt.sh.

3.3 التحليل والبحث عن نقاط الإدخال (Mapping & Attack Surface Analysis)

  • تحديد نقاط الإدخال: forms, APIs, file upload endpoints, JSON endpoints, mobile endpoints, deep links.
  • رسم خرائط للتدفق الوظيفي (login → reset → upload → download).
  • تحديد الثغرات المحتملة اعتمادًا على سطح الهجوم.

3.4 الفحص الآلي واليدوي (Scanning & Manual Testing)

Automated Scans (DAST, SCA):

  • Burp Scanner, OWASP ZAP، Nikto، Dependency-Check للمكتبات.

Static Analysis (SAST):

  • فحص الكود المصدري (إن توفر) عبر SonarQube، Bandit (Python)، ESLint security plugins.

Manual Testing:

  • اختبار نقاط الإدخال، جلسات، Cookies، Authorization checks، Business Logic Flaws.

3.5 الاستغلال (Exploitation — in-lab PoC only)

  • تنفيذ PoC لثغرات قابلة للاستغلال داخل بيئة مرخّصة: SQLi، XSS، CSRF، File Upload، Auth Bypass، IDOR، SSRF، Remote Code Execution (RCE) في حال توافر.
  • لا تنفذ استغلالًا قد يعرّض البنية التحتية للخطر إلا بعد موافقة واضحة—اعمل دائمًا على اختبار آمن مع نسخ احتياطية.

3.6 ما بعد الاستغلال (Post-Exploitation)

  • تحليل أثر الاختراق: استخراج IOCs، تقييم الوصول (privilege escalation)، القدرة على التحرك الجانبي (lateral movement) — ضمن شبكة مختبرية.
  • جمع الأدلة الجنائية (forensics basics): logs، snapshots، نحفظ سجلاتنا (chain of custody في بيئة تعليمية).

3.7 التنظيف (Cleanup)

  • إزالة أي أدوات أو ملفات رفعتها أثناء الاختبار.
  • إعادة الأنظمة إلى الحالة الأصلية أو حسب اتفاقية الاختبار.

3.8 التقرير وإعادة الاختبار (Reporting & Retest)

  • إعداد تقرير فني + ملخّص تنفيذي يتضمن مستوى الخطورة (CVSS إن أمكن)، خطوات PoC، توصيات التصحيح، ونصائح عملية للمنع.
  • إجراء اختبار إعادة (retest) للتأكد من تطبيق الإصلاحات.

4 — فرق Web vs Mobile: نقاط تركيز خاصة بكل نوع

4.1 تطبيقات الويب — نقاط شائعة للبحث عنها

  • التحقق من المدخلات (Input Validation) — SQLi, XSS, Command Injection.
  • التحكم في الوصول (Auth & Authorization) — Broken Access Control, IDOR, Privilege Escalation.
  • الجلسات (Sessions) — سرقة/اختراق الجلسات، عدم تعيين Secure/HttpOnly/SameSite.
  • الملفات المرفوعة (File Uploads) — التحقق من النوع، حفظ خارج webroot، فحص الاكواد.
  • CSRF — حماية عبر tokens والـ SameSite cookies.
  • Business Logic Flaws — أسعار، ميزانيات، معاملات مكررة.
  • APIs — تحقق من authorization, rate-limiting, input validation على endpoints.
  • Server-side Misconfigurations — رؤوس الأمان، معلومات خطأ، exposed admin endpoints.

4.2 تطبيقات الجوال — نقاط شائعة ومميزة

  • التخزين غير الآمن (Insecure Data Storage): حفظ البيانات الحساسة في SharedPreferences (Android) أو NSUserDefaults (iOS) دون تشفير.
  • الاتصالات غير الآمنة (Insecure Network Communication): غياب TLS، TLS ضعيف، أو عدم تطبيق certificate pinning.
  • كشف المفاتيح والسرية داخل التطبيق: وجود مفاتيح API/سرية داخل الكود أو الموارد.
  • التحقق من توقيع التطبيق (Code Tampering / Replication): امكانية تفكيك APK وقراءة الكود بمساعدة JADX/Apktool.
  • الإذن الخاطئ (Insecure Platform Usage): سوء استخدام صلاحيات النظام.
  • الربط العميق (Deep Links) وIntents غير الآمنة.
أدوات خاصة: MobSF, Frida, Objection, JADX, APKTool, Charles/mitmproxy to intercept traffic.

5 — أدوات رئيسية مع وصف موجز وأمثلة أوامر

سأذكر الأدوات الشائعة مع أمثلة استعمال مبسطة (كلها للتدريب ضمن مختبر فقط).

5.1 أدوات الاستطلاع والمسح

  • nmap — مسح البورتات:
    
    nmap -sC -sV -oA scan_results target.com
                                
  • Amass / Subfinder — اكتشاف النطاقات الفرعية:
    
    subfinder -d example.com -o subs.txt
    amass enum -d example.com -o amass.txt
                                

5.2 أدوات الويب والاختبار الديناميكي

  • Burp Suite (Community/Pro) — اعتراض وتعديل الطلبات، استخدام Proxy، repeater, intruder.
    
    # استخدم Burp Proxy لالتقاط طلب تسجيل الدخول ثم تحليل الـ tokens والـ cookies.
                                
  • OWASP ZAP — مسح ديناميكي مفتوح المصدر.
    
    # Auto Scan عبر واجهة الرسوم أو API.
                                

5.3 أدوات حقن قواعد البيانات / استغلال SQLi

  • sqlmap — فحص نقاط الضعف في SQL:
    
    sqlmap -u "http://target.com/page.php?id=1" --batch --level=3
    # (في بيئة مختبرية فقط)
                                

5.4 فحص الكود الثابت والمكونات

  • SonarQube (SAST)، Dependency-Check (SCA) لفحص المكتبات الضعيفة.

5.5 أدوات تحليل التطبيقات المحمولة

  • MobSF — تحليل APK/IPA سطحي/دوري (static / dynamic).
  • Frida — أداة ديناميكية للتعديل على تنفيذ التطبيق أثناء التشغيل (bypass pinning، hook functions).
  • Objection — أداة للعمل مع تطبيقات Android/iOS تستعمل Frida في الخلفية.
  • jadx / jadx-gui و apktool — لفك تجميع APK وتحليل الكود.

5.6 أدوات مساعدة إضافية

  • dirb / gobuster / wfuzz — fuzzing لإيجاد مسارات مخفية.
  • Nikto — فحص خوادم الويب عن إعدادات ضعيفة.
  • Burp Extensions — مثل Active Scan++، Autorize، SQLiPy.

6 — أمثلة عملية (مبسطة، تعليمية)

كل الأمثلة التالية لأغراض تعليمية داخل مختبر مرخّص.

6.1 مثال: اكتشاف واستغلال SQL Injection (مبسّط)

العلامة: صفحة تعرض نتائج اعتمادًا على id في URL: ?id=10.

اختبار يدوي: إدخال ' OR '1'='1 في حقل أو باراميتر لمعرفة إن كان التطبيق يعرض نتائج غير متوقعة.

التصحيح: استخدام prepared statements / parameterized queries.

تصحيح (مثال Python sqlite):


# خطأ (تعرض لتجميع السلسلة)
# cursor.execute(f"SELECT * FROM products WHERE id = {product_id}")

# صحيح
cursor.execute("SELECT * FROM products WHERE id = ?", (product_id,))
                        

6.2 مثال: منع XSS

العلامة: إدخال المستخدم يظهر لاحقًا داخل صفحة HTML دون ترميز.

التصحيح: إخراج جميع القيم باستخدام HTML encoding أو مكتبات الإطار (framework sanitizers)، واستخدام CSP.

مثال (PHP):


echo htmlspecialchars($user_input, ENT_QUOTES | ENT_SUBSTITUTE, 'UTF-8');
                        

6.3 مثال: تجاوز مصادقة في تطبيق جوال (conceptual)

كشف مفتاح API مخزّن في الكود أو ملف المصدر يؤدي إلى تشغيل endpoint خاص.

تصحيح: لا تخزن المفاتيح في الكود، استخدم KeyStore/Keychain أو KMS وسرّية التحويلات.

6.4 مثال: تجاوز TLS/Certificate Pinning باستخدام Frida (مخطط)

استخدم Frida لحقن سكربت يعطّل دوال التحقق من الشهادة داخل التطبيق أثناء التشغيل في بيئة اختبارية.

(أمثلة السكربتات متاحة عبر مصادر تعليمية؛ تُستخدم في مختبر للتعلّم فقط.)

7 — تمارين ومشاريع مختبرية مقترحة

مستوى مبتدئ

  • إعداد بيئة مختبرية محلية: OWASP Juice Shop أو DVWA داخل حاويات Docker.
  • إجراء مسح ديناميكي بأداة ZAP أو Burp (Proxy) لتحديد XSS وSQLi، ثم توثيق النتائج.

مستوى متوسط

  • اختيار تطبيق ويب بسيط وكتابة تقرير يتضمن 5 ثغرات على الأقل (PoC داخل المختبر) مع توصيات الإصلاح.
  • إعداد تطبيق Android بسيط (تسجيل دخول) ثم تحليل الـ APK باستخدام MobSF وjadx لتحديد بيانات مخزنة غير آمنة.

مستوى متقدّم

  • إجراء اختبار اختراق متكامل لتطبيق ويب + API + تطبيق جوال (ضمن نطاق مرخّص)، وتنفيذ تقرير تفصيلي يشمل CVSS، أولوية الإصلاح، وخطة إعادة التحقق.
  • تنفيذ اختبار bypass لـ certificate pinning (بموافقة) باستخدام Frida/Objection وشرح كيفية إصلاحه عبر certificate pinning صحيح أو قنوات آمنة.

8 — نموذج تقرير مختصر (Structure)

الصفحة الأولى — ملخص تنفيذي

  • ملخّص النتائج (مخاطر عالية/متوسطة/منخفضة)، تأثير الأعمال، توصيات سريعة.

القسم الفني — لكل ثغرة

  • عنوان الثغرة (مثلاً: SQL Injection في /products?id=).
  • الوصف الفني.
  • مستوى الخطورة (CVSS v3).
  • PoC (خطوات مكرَّرة داخل المختبر).
  • أثر الاستغلال (سرقة بيانات، RCE، إلخ).
  • التوصيات (خطوات الإصلاح).
  • الأدوات والخرائط (logs، snapshots).

الختام

  • ملخص الإجراءات المتفق عليها للمعالجة والزمن المتوقع لإعادة الاختبار.

9 — تقييم الوحدة (اقتراح تقييم)

  • 50% — مهمة عملية: (تحليل تطبيق مختبري + تقرير فني كامل).
  • 30% — امتحان عملي: داخل مختبر (أداء اختبار معين، استخراج PoC).
  • 15% — واجب نظري: (أسئلة عن منهجيات وأدوات وسيناريوهات).
  • 5% — مشاركة ومراعاة أخلاقيات الاختبار.

10 — مصادر وروابط أثرائية (مهمة للتعلّم والتطبيق)

📚 مقالات ودلائل
🛠 أدوات عملية
  • لا تُجري اختبارًا خارج نطاق التفويض الصريح.
  • التزم بالـ Rules of Engagement وعقود NDA إن وُجدت.
  • سجّل كل خطواتك واحتفظ بسجلات واضحة (logs) ونسخ احتياطية.
  • أي اكتشافات حساسة يجب إبلاغها فورًا وفق بروتوكول الإبلاغ المتَّفق عليه.

12 — تقدير زمني مقترح لتدريس الوحدة (لـ 20 ساعة من المحتوى)

  • المحاضرات النظرية: 4 ساعات (منهجية، نموذج التهديد، الفروقات Web vs Mobile).
  • عروض الأدوات العملية (Burp, ZAP, MobSF, Frida): 6 ساعات.
  • مختبرات عملية (Juice Shop, DVWA, APK analysis): 8 ساعات.
  • نقاش/مراجعة تقارير/تمارين نهائية: 2 ساعة.

خاتمة الوحدة

هذه الوحدة الخامسة تمنح المتدرّب مزيجًا متوازنًا بين النظرية والجانب العملي: منهجية واضحة، أدوات عملية، أمثلة قابلة للتجربة داخل مختبر مرخَّص، وإطارًا لإعداد تقارير احترافية. بعد إتقانها، يكون المتدرّب مُجهزًا لإجراء اختبارات تطبيقية آمنة وتقديم نتائج تقنية قابلة للتنفيذ لتحسين أمان التطبيقات.