3.3 KiB
3.3 KiB
تحليل 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
العلامات الحمراء:
- عدد طلبات غير طبيعي: 100+ طلب/دقيقة من IP واحد
- نمط متكرر: نفس الـ endpoint مع status 401
- User-Agent مشبوه: أدوات مثل
python-requestsأوcurl - توقيت منتظم: طلبات كل 100ms (آلي وليس بشري)
3. الثغرات التي استُغلت
| الثغرة | الوصف | التأثير |
|---|---|---|
| عدم وجود Rate Limiting | لا يوجد حد لعدد المحاولات | سمح بآلاف المحاولات |
| كلمة مرور ضعيفة | admin123 سهلة التخمين |
نجاح الهجوم |
| عدم وجود Account Lockout | الحساب لم يُقفل بعد محاولات فاشلة | استمرار الهجوم |
| عدم وجود CAPTCHA | لا يوجد تحقق بشري | أتمتة الهجوم |
| عدم وجود MFA | طبقة حماية واحدة فقط | الوصول بكلمة المرور فقط |
| صلاحيات واسعة | حساب admin يصل لكل البيانات | تسريب كامل |