هذا الالتزام موجود في:
2026-07-27 22:12:00 +03:00
الأصل fec5a12c36
التزام 38d3735f21
12 ملفات معدلة مع 449 إضافات و0 حذوفات

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/
```
ستظهر لوحة التحكم وتعرض جميع التنبيهات التي اكتشفها النظام.