# تحليل Timeline لهجوم Brute Force على API Login ## السيناريو هجوم brute force ناجح على API login أدى إلى تسريب بيانات. --- ## 1. تحليل الهجوم خطوة بخطوة | الوقت | المرحلة | الحدث | التفاصيل الفنية | |-------|---------|-------|-----------------| | T+0 | الاستطلاع | المهاجم يكتشف التطبيق | فحص `app.ghaymah.systems` واكتشاف API endpoints | | T+2min | جمع المعلومات | تحديد نقطة الدخول | اكتشاف `/api/login` يقبل POST requests | | T+3min | التحضير | تجهيز الأدوات | إعداد قائمة كلمات مرور شائعة + أداة Hydra/Burp | | T+5min | بدء الهجوم | إطلاق Brute Force | بدء إرسال طلبات متكررة على `/api/login` | | T+10min | التصعيد | زيادة المحاولات | 1000+ طلب POST بكلمات مرور مختلفة | | T+15min | استمرار | لا يوجد حظر | عدم وجود Rate Limiting سمح بالاستمرار | | T+20min | النجاح | تخمين كلمة المرور | نجاح الدخول بـ `admin:admin123` | | T+21min | الوصول | الحصول على Token | استلام JWT token صالح | | T+25min | الاستكشاف | فحص الصلاحيات | اكتشاف `/api/users` و `/api/export` | | T+30min | التسريب | سحب البيانات | تحميل بيانات المستخدمين | | T+35min | الاكتشاف | تنبيه أمني | فريق الأمن يلاحظ نشاط غير طبيعي | | T+40min | الاحتواء | بدء الاستجابة | حظر IP + إلغاء tokens | --- ## 2. المؤشرات التي كان يجب اكتشافها (IOCs) ### مؤشرات في الـ Logs: ``` # نمط الهجوم في access.log 192.168.1.100 - - [26/Jul/2026:14:05:01] "POST /api/login HTTP/1.1" 401 45 192.168.1.100 - - [26/Jul/2026:14:05:01] "POST /api/login HTTP/1.1" 401 45 192.168.1.100 - - [26/Jul/2026:14:05:02] "POST /api/login HTTP/1.1" 401 45 # ... مئات المحاولات من نفس IP 192.168.1.100 - - [26/Jul/2026:14:20:15] "POST /api/login HTTP/1.1" 200 512 192.168.1.100 - - [26/Jul/2026:14:25:30] "GET /api/users HTTP/1.1" 200 15234 ``` ### العلامات الحمراء: 1. **عدد طلبات غير طبيعي**: 100+ طلب/دقيقة من IP واحد 2. **نمط متكرر**: نفس الـ endpoint مع status 401 3. **User-Agent مشبوه**: أدوات مثل `python-requests` أو `curl` 4. **توقيت منتظم**: طلبات كل 100ms (آلي وليس بشري) --- ## 3. الثغرات التي استُغلت | الثغرة | الوصف | التأثير | |--------|-------|---------| | عدم وجود Rate Limiting | لا يوجد حد لعدد المحاولات | سمح بآلاف المحاولات | | كلمة مرور ضعيفة | `admin123` سهلة التخمين | نجاح الهجوم | | عدم وجود Account Lockout | الحساب لم يُقفل بعد محاولات فاشلة | استمرار الهجوم | | عدم وجود CAPTCHA | لا يوجد تحقق بشري | أتمتة الهجوم | | عدم وجود MFA | طبقة حماية واحدة فقط | الوصول بكلمة المرور فقط | | صلاحيات واسعة | حساب admin يصل لكل البيانات | تسريب كامل |