4th task
هذا الالتزام موجود في:
78
miniSIEM/README.md
Normal file
78
miniSIEM/README.md
Normal file
@@ -0,0 +1,78 @@
|
||||
# هيكل المشروع
|
||||
|
||||
- **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**.
|
||||
|
||||
---
|
||||
|
||||
- **Alerts Database / File**
|
||||
- عند اكتشاف حدث مشبوه، يتم إنشاء Alert يحتوي على:
|
||||
- الوقت
|
||||
- عنوان IP
|
||||
- نوع الهجوم
|
||||
- مستوى الخطورة (Low / Medium / High)
|
||||
- تُحفظ التنبيهات في ملف `alerts.json` (أو قاعدة بيانات في الأنظمة الأكبر) ليتم عرضها لاحقاً.
|
||||
|
||||
---
|
||||
|
||||
- **Dashboard (HTML / CSS / JavaScript)**
|
||||
- واجهة رسومية تعرض التنبيهات التي اكتشفها النظام.
|
||||
- تعرض معلومات مثل:
|
||||
- عناوين IP المشبوهة.
|
||||
- نوع الهجوم.
|
||||
- مستوى الخطورة.
|
||||
- وقت اكتشاف الحدث.
|
||||
- يتم تحديث البيانات من ملف `alerts.json` الذي ينتجه برنامج Python.
|
||||
|
||||
---
|
||||
|
||||
# تشغيل المشروع
|
||||
|
||||
1. شغّل برنامج تحليل السجلات:
|
||||
|
||||
```bash
|
||||
python siem.py
|
||||
```
|
||||
|
||||
سيقوم البرنامج بقراءة ملفات الـ Logs وتحليلها وإنشاء ملف `alerts.json`.
|
||||
|
||||
2. بعد ذلك شغّل خادم HTTP لعرض لوحة التحكم:
|
||||
|
||||
```bash
|
||||
python -m http.server 8000
|
||||
```
|
||||
|
||||
3. افتح المتصفح وانتقل إلى:
|
||||
|
||||
```text
|
||||
http://localhost:8000/dashboard/
|
||||
```
|
||||
|
||||
ستظهر لوحة التحكم وتعرض جميع التنبيهات التي اكتشفها النظام.
|
||||
المرجع في مشكلة جديدة
حظر مستخدم