31 أسطر
3.8 KiB
Markdown
31 أسطر
3.8 KiB
Markdown
# SIEM Deployment Strategy on Ghaymah Cloud
|
|
|
|
## 0. اختبار محلي قبل النشر (Local Testing Note)
|
|
`dashboard.html` بيستخدم `fetch()` لقراءة `alerts.json`، وده **مش هيشتغل لو فتحت الملف مباشرة بدبل كليك** (`file://`) بسبب سياسة الـ CORS في المتصفحات الحديثة. للتجربة محلياً قبل الرفع:
|
|
```bash
|
|
python3 analyzer.py # يولّد alerts.json
|
|
python3 -m http.server 8000 # يشغّل الملفين على HTTP بدل file://
|
|
```
|
|
ثم فتح `http://localhost:8000/dashboard.html`. بعد النشر على غيمة، NGINX هيحل المشكلة دي تلقائياً لأنه بيقدّم الملفات عبر HTTP فعلياً (تفاصيل في القسم 3).
|
|
|
|
## 1. Storage Architecture (هيكلية التخزين)
|
|
نظراً لأن سجلات النظام (Logs) تتضخم بسرعة، لا يجب تخزينها على القرص الأساسي للخادم (OS Disk).
|
|
- **الخطوة:** سيتم إنشاء `Block Storage Volume` بحجم مناسب (مثلاً 500GB) من لوحة تحكم "غيمة".
|
|
- **التجهيز:** سيتم ربط (Attach) البلوك بالسيرفر وعمل Mount له في مسار مخصص، وليكن `/var/log/ghaymah_siem/`.
|
|
- **الميزة:** هذا يضمن عدم توقف السيرفر عن العمل إذا امتلأت مساحة السجلات (Disk Full)، ويسمح بأخذ نسخ احتياطية للـ Volume بشكل مستقل.
|
|
- **التشفير:** يتم تفعيل تشفير الـ Block Storage نفسه (Encryption at Rest)، ويُفضّل أن تكون النسخ الاحتياطية للـ Volume غير قابلة للحذف (Immutable) لمدة محددة، لضمان بقاء الأدلة الجنائية (Forensic Evidence) سليمة حتى في حال اختراق السيرفر نفسه.
|
|
|
|
## 2. Automation & Execution (التشغيل التلقائي)
|
|
- سيتم تشغيل `analyzer.py` كـ `Cron Job` يعمل كل دقيقة، مع تمرير مسارات ملفات الـ Logs الحقيقية على الـ Block Storage كـ arguments:
|
|
```bash
|
|
* * * * * /usr/bin/python3 /opt/siem/analyzer.py /var/log/ghaymah_siem/web.log /var/log/ghaymah_siem/auth.log /var/log/ghaymah_siem/db.log
|
|
```
|
|
- السكريبت بيحتفظ بموقع آخر سطر اتقرا لكل ملف في `analyzer_state.json`، فكل تشغيل بيعالج **الأسطر الجديدة بس** — ده مهم جداً لأن الـ Logs بتتزايد باستمرار، ولو كل تشغيل أعاد قراءة الملف كامل، الـ CPU هتتحمّل فوق طاقتها والـ Alerts هتتكرر لنفس الحدث.
|
|
- السكريبت بيحدّث `alerts.json` بشكل دوري، والداشبورد بيعمل Auto-Refresh كل 30 ثانية.
|
|
|
|
## 3. Dashboard Hosting (استضافة الواجهة)
|
|
- سيتم استخدام `NGINX` كـ Web Server خفيف لاستضافة `dashboard.html` و `alerts.json` (وده بيحل مشكلة الـ CORS في القسم 0 تلقائياً لأن الاستضافة بقت عبر HTTP وليس فتح ملف محلي).
|
|
- سيتم توجيه NGINX لقراءة الواجهة وملف الـ JSON من المسار المعزول على الـ Block Storage.
|
|
- سيتم تأمين مسار الداشبورد باستخدام Basic Authentication و HTTPS (شهادة Let's Encrypt) لضمان عدم وصول أي شخص غير مصرح له لبيانات التنبيهات الأمنية.
|
|
- **تكامل مع Rate Limiting:** بما إن الداشبورد بيعرض بيانات حساسة عن هجمات فعلية، يُنصح بتطبيق نفس مبدأ Rate Limiting المستخدم في تأمين الـ API (راجع تقرير الـ Postmortem) على مسار تسجيل الدخول لصفحة الداشبورد نفسها.
|