3.2 KiB
3.2 KiB
هيكل المشروع
- Log Sources
- تمثل مصادر السجلات (Logs) التي يجمع منها النظام البيانات.
- في هذا المشروع سيتم استخدام 3 ملفات
.logوهمية لتجربة النظام ومحاكاة بيئة حقيقية، ويمكن توليدها بسهولة باستخدام ChatGPT. - أمثلة على المصادر:
auth.log: محاولات تسجيل الدخول.nginx.log: طلبات خادم الويب.app.log: أخطاء التطبيق.
- Log Collector (Python)
- مسؤول عن قراءة السجلات من جميع المصادر بشكل دوري.
- يجمع كل سجل (Log Entry) ويمرره إلى مرحلة التحليل دون إجراء أي قرار أمني بنفسه.
- Parser + Detection Rules
- يقوم الـ Parser بتحليل كل Log واستخراج المعلومات المهمة مثل:
- عنوان IP
- الوقت
- نوع الحدث
- الرسالة
- بعد ذلك يتم تطبيق مجموعة من قواعد الكشف (Detection Rules) لتحديد ما إذا كان الحدث طبيعياً أو مشبوهاً.
- أمثلة على القواعد:
- أكثر من 5 محاولات تسجيل دخول فاشلة خلال دقيقة واحدة → Brute Force.
- طلب يحتوي على كلمات مثل
UNION SELECTأو' OR 1=1→ SQL Injection. - محاولة الوصول إلى
/adminأو ملفات حساسة بشكل متكرر → Directory Enumeration. - إرسال مرفق بريد إلكتروني بامتداد
.exeأو.bat→ احتمال Malware. - عدد كبير من الطلبات من نفس عنوان IP خلال فترة قصيرة → Suspicious Activity.
- يقوم الـ Parser بتحليل كل Log واستخراج المعلومات المهمة مثل:
- Alerts Database / File
- عند اكتشاف حدث مشبوه، يتم إنشاء Alert يحتوي على:
- الوقت
- عنوان IP
- نوع الهجوم
- مستوى الخطورة (Low / Medium / High)
- تُحفظ التنبيهات في ملف
alerts.json(أو قاعدة بيانات في الأنظمة الأكبر) ليتم عرضها لاحقاً.
- عند اكتشاف حدث مشبوه، يتم إنشاء Alert يحتوي على:
- Dashboard (HTML / CSS / JavaScript)
- واجهة رسومية تعرض التنبيهات التي اكتشفها النظام.
- تعرض معلومات مثل:
- عناوين IP المشبوهة.
- نوع الهجوم.
- مستوى الخطورة.
- وقت اكتشاف الحدث.
- يتم تحديث البيانات من ملف
alerts.jsonالذي ينتجه برنامج Python.
تشغيل المشروع
- شغّل برنامج تحليل السجلات:
python siem.py
سيقوم البرنامج بقراءة ملفات الـ Logs وتحليلها وإنشاء ملف alerts.json.
- بعد ذلك شغّل خادم HTTP لعرض لوحة التحكم:
python -m http.server 8000
- افتح المتصفح وانتقل إلى:
http://localhost:8000/dashboard/
ستظهر لوحة التحكم وتعرض جميع التنبيهات التي اكتشفها النظام.