الملفات
ghaymah-exam-yamin_zeadneh-…/miniSIEM

هيكل المشروع

  • 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=1SQL Injection.
      • محاولة الوصول إلى /admin أو ملفات حساسة بشكل متكرر → Directory Enumeration.
      • إرسال مرفق بريد إلكتروني بامتداد .exe أو .batاحتمال Malware.
      • عدد كبير من الطلبات من نفس عنوان IP خلال فترة قصيرة → Suspicious Activity.

  • Alerts Database / File
    • عند اكتشاف حدث مشبوه، يتم إنشاء Alert يحتوي على:
      • الوقت
      • عنوان IP
      • نوع الهجوم
      • مستوى الخطورة (Low / Medium / High)
    • تُحفظ التنبيهات في ملف alerts.json (أو قاعدة بيانات في الأنظمة الأكبر) ليتم عرضها لاحقاً.

  • Dashboard (HTML / CSS / JavaScript)
    • واجهة رسومية تعرض التنبيهات التي اكتشفها النظام.
    • تعرض معلومات مثل:
      • عناوين IP المشبوهة.
      • نوع الهجوم.
      • مستوى الخطورة.
      • وقت اكتشاف الحدث.
    • يتم تحديث البيانات من ملف alerts.json الذي ينتجه برنامج Python.

تشغيل المشروع

  1. شغّل برنامج تحليل السجلات:
python siem.py

سيقوم البرنامج بقراءة ملفات الـ Logs وتحليلها وإنشاء ملف alerts.json.

  1. بعد ذلك شغّل خادم HTTP لعرض لوحة التحكم:
python -m http.server 8000
  1. افتح المتصفح وانتقل إلى:
http://localhost:8000/dashboard/

ستظهر لوحة التحكم وتعرض جميع التنبيهات التي اكتشفها النظام.