add the main file structure requirements

هذا الالتزام موجود في:
2026-07-26 22:46:15 +03:00
التزام 8bde42182e
20 ملفات معدلة مع 4613 إضافات و0 حذوفات

عرض الملف

@@ -0,0 +1,357 @@
# استراتيجية النسخ الاحتياطي والاستعادة - Ghaymah Backup & Recovery
## مع RPO/RTO وقاعدة 3-2-1
---
## 1. فهم RPO و RTO
### تعريفات أساسية
```
┌─────────────────────────────────────────────────────────────────────┐
│ │
│ آخر نسخة الحادثة استعادة الخدمة │
│ احتياطية ↓ ↓ │
│ ↓ ↓ ↓ │
│ ─────●───────────────●────────────────────●─────────────→ الوقت │
│ │ │ │ │
│ │←──── RPO ────→│←────── RTO ───────→│ │
│ │ │ │ │
│ البيانات التي وقت وقت العودة │
│ قد تُفقد الحادثة للعمل │
│ │
└─────────────────────────────────────────────────────────────────────┘
```
| المصطلح | التعريف | مثال |
|---------|---------|------|
| **RPO** (Recovery Point Objective) | أقصى كمية بيانات يمكن خسارتها | RPO = 1 ساعة → نسخ احتياطي كل ساعة |
| **RTO** (Recovery Time Objective) | أقصى وقت للعودة للعمل | RTO = 4 ساعات → يجب استعادة الخدمة خلال 4 ساعات |
---
## 2. قاعدة 3-2-1 للنسخ الاحتياطي
```
┌─────────────────────────────────────────────────────────────────────┐
│ قاعدة 3-2-1 │
├─────────────────────────────────────────────────────────────────────┤
│ │
│ 3⃣ ثلاث نسخ من البيانات │
│ ├── النسخة الأصلية (Production) │
│ ├── النسخة الاحتياطية الأولى (Local Backup) │
│ └── النسخة الاحتياطية الثانية (Remote Backup) │
│ │
│ 2⃣ نوعان مختلفان من وسائط التخزين │
│ ├── Block Storage (SSD) │
│ └── Object Storage (S3-compatible) │
│ │
│ 1⃣ نسخة واحدة على الأقل خارج الموقع (Offsite) │
│ └── منطقة جغرافية مختلفة أو مزود سحابي آخر │
│ │
└─────────────────────────────────────────────────────────────────────┘
```
---
## 3. تطبيق الاستراتيجية على غيمة
### البنية المقترحة
```
┌─────────────────────────────────────────────────────────────────────┐
│ غيمة Cloud │
├─────────────────────────────────────────────────────────────────────┤
│ │
│ ┌─────────────────┐ │
│ │ Production │ ← النسخة الأصلية (1) │
│ │ Block Storage │ │
│ │ (me-riyadh-1) │ │
│ └────────┬────────┘ │
│ │ │
│ │ نسخ كل ساعة │
│ ▼ │
│ ┌─────────────────┐ │
│ │ Local Backup │ ← النسخة الاحتياطية (2) - وسيط مختلف │
│ │ Object Storage │ │
│ │ (me-riyadh-1) │ │
│ └────────┬────────┘ │
│ │ │
│ │ نسخ يومي │
│ ▼ │
│ ┌─────────────────┐ │
│ │ Offsite Backup │ ← النسخة الخارجية (3) - موقع مختلف │
│ │ Object Storage │ │
│ │ (me-jeddah-1) │ │
│ └─────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────────┘
```
### تكوين النسخ الاحتياطي
```yaml
# backup-config.yaml
backup_strategy:
name: "3-2-1 Backup Strategy"
# النسخة الأصلية
production:
type: block-storage
location: me-riyadh-1
volume: prod-data
# النسخة الاحتياطية المحلية
local_backup:
type: object-storage
location: me-riyadh-1
bucket: backups-local
schedule:
frequency: hourly
retention: 72 # 72 ساعة = 3 أيام
encryption: AES-256
# النسخة الخارجية
offsite_backup:
type: object-storage
location: me-jeddah-1 # منطقة مختلفة
bucket: backups-offsite
schedule:
frequency: daily
time: "02:00"
retention: 30 # 30 يوم
encryption: AES-256
# أهداف الاستعادة
objectives:
rpo: 1h # أقصى خسارة = ساعة واحدة
rto: 4h # أقصى وقت استعادة = 4 ساعات
```
---
## 4. تنفيذ النسخ الاحتياطي على غيمة
### أ. إنشاء Buckets للنسخ الاحتياطي
```bash
# إنشاء bucket محلي
ghaymah storage bucket create backups-local \
--region me-riyadh-1 \
--encryption AES-256 \
--versioning enabled
# إنشاء bucket خارجي
ghaymah storage bucket create backups-offsite \
--region me-jeddah-1 \
--encryption AES-256 \
--versioning enabled
```
### ب. إعداد جدول النسخ الاحتياطي
```bash
# نسخ احتياطي كل ساعة (محلي)
ghaymah backup schedule create \
--name hourly-local \
--source prod-data \
--destination backups-local \
--frequency hourly \
--retention 72h
# نسخ احتياطي يومي (خارجي)
ghaymah backup schedule create \
--name daily-offsite \
--source prod-data \
--destination backups-offsite \
--frequency daily \
--time "02:00" \
--retention 30d
```
### ج. سكربت النسخ الاحتياطي
```bash
#!/bin/bash
# backup-script.sh - سكربت النسخ الاحتياطي التلقائي
set -e
TIMESTAMP=$(date +%Y%m%d_%H%M%S)
SOURCE_VOLUME="prod-data"
LOCAL_BUCKET="backups-local"
OFFSITE_BUCKET="backups-offsite"
echo "[$TIMESTAMP] بدء النسخ الاحتياطي..."
# 1. إنشاء snapshot من Block Storage
echo "إنشاء snapshot..."
SNAPSHOT_ID=$(ghaymah storage snapshot create \
--volume $SOURCE_VOLUME \
--name "backup-$TIMESTAMP" \
--output json | jq -r '.id')
echo "تم إنشاء snapshot: $SNAPSHOT_ID"
# 2. نسخ إلى Object Storage المحلي
echo "نسخ إلى التخزين المحلي..."
ghaymah storage copy \
--source "snapshot:$SNAPSHOT_ID" \
--destination "s3://$LOCAL_BUCKET/backup-$TIMESTAMP.tar.gz" \
--compress \
--encrypt
# 3. نسخ إلى Object Storage الخارجي (يومياً فقط)
HOUR=$(date +%H)
if [ "$HOUR" == "02" ]; then
echo "نسخ إلى التخزين الخارجي..."
ghaymah storage copy \
--source "s3://$LOCAL_BUCKET/backup-$TIMESTAMP.tar.gz" \
--destination "s3://$OFFSITE_BUCKET/backup-$TIMESTAMP.tar.gz"
fi
# 4. تنظيف النسخ القديمة
echo "تنظيف النسخ القديمة..."
ghaymah backup cleanup \
--bucket $LOCAL_BUCKET \
--older-than 72h
ghaymah backup cleanup \
--bucket $OFFSITE_BUCKET \
--older-than 30d
# 5. التحقق من النسخة
echo "التحقق من سلامة النسخة..."
ghaymah backup verify \
--backup "s3://$LOCAL_BUCKET/backup-$TIMESTAMP.tar.gz"
echo "[$TIMESTAMP] اكتمل النسخ الاحتياطي بنجاح ✓"
```
---
## 5. إجراءات الاستعادة
### سيناريو: استعادة بعد Ransomware
```bash
#!/bin/bash
# restore-script.sh - سكربت الاستعادة
echo "🔄 بدء عملية الاستعادة..."
# 1. تحديد آخر نسخة سليمة
echo "البحث عن آخر نسخة سليمة..."
LATEST_BACKUP=$(ghaymah backup list \
--bucket backups-local \
--status verified \
--limit 1 \
--output json | jq -r '.[0].name')
echo "آخر نسخة سليمة: $LATEST_BACKUP"
# 2. إنشاء volume جديد للاستعادة
echo "إنشاء volume جديد..."
ghaymah storage volume create \
--name restored-data \
--size 100GB \
--type ssd
# 3. استعادة البيانات
echo "استعادة البيانات..."
ghaymah backup restore \
--source "s3://backups-local/$LATEST_BACKUP" \
--destination restored-data \
--verify
# 4. التحقق من البيانات
echo "التحقق من البيانات المستعادة..."
ghaymah storage verify --volume restored-data
# 5. تبديل الـ volumes
echo "تبديل إلى البيانات المستعادة..."
ghaymah storage swap \
--old prod-data \
--new restored-data
echo "✅ اكتملت الاستعادة بنجاح!"
```
---
## 6. جدول RPO/RTO حسب نوع البيانات
| نوع البيانات | RPO | RTO | تكرار النسخ | الاحتفاظ |
|--------------|-----|-----|-------------|----------|
| **قواعد البيانات** | 15 دقيقة | 1 ساعة | كل 15 دقيقة | 7 أيام |
| **ملفات التطبيق** | 1 ساعة | 2 ساعة | كل ساعة | 30 يوم |
| **سجلات النظام** | 4 ساعات | 8 ساعات | كل 4 ساعات | 90 يوم |
| **الأرشيف** | 24 ساعة | 24 ساعة | يومي | سنة |
---
## 7. اختبار الاستعادة الدوري
### جدول الاختبار
| الاختبار | التكرار | المسؤول |
|----------|---------|---------|
| استعادة ملف واحد | أسبوعي | DevOps |
| استعادة قاعدة بيانات | شهري | DBA |
| استعادة كاملة (DR) | ربع سنوي | فريق الأمن |
### سكربت اختبار الاستعادة
```bash
#!/bin/bash
# test-restore.sh - اختبار الاستعادة
echo "🧪 بدء اختبار الاستعادة..."
# إنشاء بيئة اختبار
ghaymah project create restore-test --temporary
# استعادة من آخر نسخة
ghaymah backup restore \
--source backups-local/latest \
--destination restore-test \
--verify
# اختبار البيانات
ghaymah test run \
--project restore-test \
--suite data-integrity
# تنظيف
ghaymah project delete restore-test --force
echo "✅ اختبار الاستعادة ناجح!"
```
---
## 8. ملخص الاستراتيجية
```
┌─────────────────────────────────────────────────────────────────────┐
│ ملخص استراتيجية 3-2-1 │
├─────────────────────────────────────────────────────────────────────┤
│ │
│ 📦 3 نسخ: │
│ • Production (Block Storage - Riyadh) │
│ • Local Backup (Object Storage - Riyadh) │
│ • Offsite Backup (Object Storage - Jeddah) │
│ │
│ 💾 2 وسيط: │
│ • Block Storage (SSD) │
│ • Object Storage (S3) │
│ │
│ 🌍 1 خارج الموقع: │
│ • منطقة جدة (me-jeddah-1) │
│ │
│ ⏱️ الأهداف: │
│ • RPO: 1 ساعة (أقصى خسارة بيانات) │
│ • RTO: 4 ساعات (أقصى وقت توقف) │
│ │
└─────────────────────────────────────────────────────────────────────┘
```

عرض الملف

@@ -0,0 +1,189 @@
# خطة طوارئ لحادثة Ransomware
## السيناريو: جميع ملفات Block Storage على غيمة تم تشفيرها برسالة فدية
---
## ⏱️ أول 60 دقيقة - خطة الاستجابة الطارئة
### الدقائق 0-5: الاكتشاف والتأكيد
```
┌─────────────────────────────────────────────────────────────┐
│ 🚨 تأكيد الحادثة │
├─────────────────────────────────────────────────────────────┤
│ □ التحقق من رسالة الفدية │
│ □ تحديد نطاق التشفير (أي volumes متأثرة؟) │
│ □ توثيق الوقت الدقيق للاكتشاف │
│ □ أخذ screenshots للأدلة │
└─────────────────────────────────────────────────────────────┘
```
**الإجراءات:**
1. **لا تدفع الفدية** - لا ضمان لاسترجاع البيانات
2. **لا تحذف رسالة الفدية** - قد تحتوي على معلومات مفيدة
3. **وثّق كل شيء** - screenshots، أوقات، ملاحظات
### الدقائق 5-15: العزل الفوري
```bash
# 1. فصل الأنظمة المتأثرة عن الشبكة
# من لوحة تحكم غيمة:
ghaymah network isolate --project affected-project
# 2. إيقاف جميع الحاويات المتأثرة
ghaymah containers stop --all --project affected-project
# 3. منع الوصول الخارجي
ghaymah firewall deny --all-inbound --project affected-project
```
**قائمة العزل:**
- [ ] فصل Block Storage المتأثر
- [ ] إيقاف التطبيقات المتصلة
- [ ] حظر جميع الاتصالات الواردة
- [ ] تعطيل حسابات المستخدمين المشبوهة
- [ ] فصل أي أنظمة متصلة بنفس الشبكة
### الدقائق 15-30: تقييم الضرر
```
┌─────────────────────────────────────────────────────────────┐
│ 📊 تقييم النطاق │
├─────────────────────────────────────────────────────────────┤
│ │
│ الأسئلة المطلوب الإجابة عليها: │
│ │
│ 1. ما هي الـ Volumes المتأثرة؟ │
│ □ Block Storage الرئيسي │
│ □ قواعد البيانات │
│ □ النسخ الاحتياطية │
│ │
│ 2. هل النسخ الاحتياطية سليمة؟ │
│ □ فحص آخر نسخة احتياطية │
│ □ التحقق من عدم تشفيرها │
│ │
│ 3. كيف دخل المهاجم؟ │
│ □ مراجعة سجلات الدخول │
│ □ فحص الثغرات المحتملة │
│ │
└─────────────────────────────────────────────────────────────┘
```
**أوامر الفحص:**
```bash
# فحص حالة الـ Volumes
ghaymah storage list --status
# فحص النسخ الاحتياطية
ghaymah backup list --project affected-project
# مراجعة سجلات الدخول
ghaymah logs auth --since "24h" --project affected-project
```
### الدقائق 30-45: التواصل والإبلاغ
**جهات الاتصال الفورية:**
| الجهة | الإجراء | الأولوية |
|-------|---------|----------|
| فريق الأمن الداخلي | إبلاغ فوري | 🔴 حرج |
| دعم غيمة | فتح تذكرة طوارئ | 🔴 حرج |
| الإدارة العليا | إبلاغ مختصر | 🟡 عالي |
| الفريق القانوني | استشارة | 🟡 عالي |
| الجهات الرقابية | إبلاغ (إذا مطلوب قانونياً) | 🟡 عالي |
**نموذج الإبلاغ:**
```
الموضوع: [طوارئ] حادثة Ransomware - [اسم المشروع]
الوقت: [التاريخ والوقت]
النطاق: [الأنظمة المتأثرة]
الحالة: [قيد الاحتواء]
الإجراءات المتخذة:
1. عزل الأنظمة المتأثرة
2. إيقاف الخدمات
3. بدء التحقيق
الخطوات التالية:
1. تقييم النسخ الاحتياطية
2. تحديد نقطة الدخول
3. بدء الاستعادة
```
### الدقائق 45-60: بدء الاستعادة
```bash
# 1. التحقق من سلامة النسخ الاحتياطية
ghaymah backup verify --latest --project affected-project
# 2. إنشاء بيئة استعادة معزولة
ghaymah project create recovery-environment --isolated
# 3. استعادة من آخر نسخة سليمة
ghaymah backup restore \
--backup-id [BACKUP_ID] \
--to recovery-environment \
--verify
```
---
## 📋 قائمة التحقق الشاملة (أول 60 دقيقة)
### المرحلة 1: الاكتشاف (0-5 دقائق)
- [ ] تأكيد أن الحادثة حقيقية وليست إنذار كاذب
- [ ] توثيق رسالة الفدية (screenshot)
- [ ] تسجيل الوقت الدقيق
- [ ] إبلاغ قائد الاستجابة للحوادث
### المرحلة 2: العزل (5-15 دقيقة)
- [ ] فصل الأنظمة المتأثرة عن الشبكة
- [ ] إيقاف جميع الحاويات والخدمات
- [ ] حظر الاتصالات الخارجية
- [ ] تعطيل الحسابات المشبوهة
- [ ] فصل VPN/API connections
### المرحلة 3: التقييم (15-30 دقيقة)
- [ ] تحديد جميع الـ Volumes المتأثرة
- [ ] فحص حالة النسخ الاحتياطية
- [ ] مراجعة سجلات الدخول
- [ ] تحديد نقطة الدخول المحتملة
- [ ] تقدير حجم البيانات المتأثرة
### المرحلة 4: التواصل (30-45 دقيقة)
- [ ] إبلاغ فريق الأمن
- [ ] فتح تذكرة طوارئ مع غيمة
- [ ] إبلاغ الإدارة
- [ ] استشارة الفريق القانوني
- [ ] تحضير بيان للعملاء (إذا لزم)
### المرحلة 5: الاستعادة (45-60 دقيقة)
- [ ] التحقق من سلامة النسخ الاحتياطية
- [ ] إنشاء بيئة استعادة معزولة
- [ ] بدء استعادة البيانات الحرجة
- [ ] اختبار البيانات المستعادة
- [ ] توثيق جميع الإجراءات
---
## ⚠️ ما يجب تجنبه
| ❌ لا تفعل | ✅ افعل بدلاً |
|-----------|--------------|
| دفع الفدية | استخدم النسخ الاحتياطية |
| حذف الملفات المشفرة | احتفظ بها للتحليل |
| إعادة تشغيل الأنظمة | اعزلها أولاً |
| تجاهل الحادثة | وثّق كل شيء |
| العمل بمفردك | أشرك الفريق |
---
## 📞 أرقام الطوارئ
```
دعم غيمة (طوارئ): support@ghaymah.systems
فريق الأمن الداخلي: [رقم الهاتف]
قائد الاستجابة للحوادث: [رقم الهاتف]
```

عرض الملف

@@ -0,0 +1,558 @@
# خطة وقاية شاملة لمنع تكرار هجوم Ransomware
---
## 1. نظرة عامة
```
┌─────────────────────────────────────────────────────────────────────┐
│ طبقات الحماية من Ransomware │
├─────────────────────────────────────────────────────────────────────┤
│ │
│ ┌─────────────────────────────────────────────────────────────┐ │
│ │ طبقة 1: الوقاية │ │
│ │ (منع الدخول - Access Prevention) │ │
│ └─────────────────────────────────────────────────────────────┘ │
│ ↓ │
│ ┌─────────────────────────────────────────────────────────────┐ │
│ │ طبقة 2: الكشف │ │
│ │ (اكتشاف مبكر - Early Detection) │ │
│ └─────────────────────────────────────────────────────────────┘ │
│ ↓ │
│ ┌─────────────────────────────────────────────────────────────┐ │
│ │ طبقة 3: الاحتواء │ │
│ │ (تقليل الضرر - Damage Limitation) │ │
│ └─────────────────────────────────────────────────────────────┘ │
│ ↓ │
│ ┌─────────────────────────────────────────────────────────────┐ │
│ │ طبقة 4: الاستعادة │ │
│ │ (العودة للعمل - Recovery) │ │
│ └─────────────────────────────────────────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────────┘
```
---
## 2. طبقة الوقاية (Prevention)
### أ. إدارة الهوية والوصول (IAM)
```yaml
# سياسة IAM صارمة
iam_policy:
# مبدأ أقل صلاحية
principle: least_privilege
# المصادقة متعددة العوامل
mfa:
required: true
methods:
- authenticator_app
- hardware_key
enforce_for:
- all_admin_accounts
- api_access
- ssh_access
# سياسة كلمات المرور
password_policy:
min_length: 14
require_uppercase: true
require_lowercase: true
require_numbers: true
require_symbols: true
max_age_days: 90
prevent_reuse: 12
# مراجعة الصلاحيات
access_review:
frequency: monthly
auto_revoke_inactive: 30d
```
**التنفيذ على غيمة:**
```bash
# تفعيل MFA لجميع المستخدمين
ghaymah iam policy update \
--require-mfa true \
--apply-to all-users
# إنشاء أدوار محددة
ghaymah iam role create \
--name developer \
--permissions "read:code,write:code,read:logs" \
--deny "admin:*,delete:*"
ghaymah iam role create \
--name operator \
--permissions "read:*,restart:services" \
--deny "delete:*,modify:iam"
```
### ب. أمان الشبكة
```yaml
# Network Security Configuration
network_security:
# جدار الحماية
firewall:
default_policy: deny
allowed_inbound:
- port: 443
source: "0.0.0.0/0"
protocol: tcp
- port: 22
source: "10.0.0.0/8" # VPN فقط
protocol: tcp
# تقسيم الشبكة
segmentation:
- name: production
cidr: "10.1.0.0/16"
access: restricted
- name: backup
cidr: "10.2.0.0/16"
access: isolated # معزولة تماماً
- name: management
cidr: "10.3.0.0/16"
access: admin_only
# VPN إجباري للإدارة
vpn:
required_for: admin_access
type: wireguard
mfa: required
```
**Network Policies:**
```yaml
# kubernetes network policy
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: isolate-backup-storage
spec:
podSelector:
matchLabels:
app: backup-storage
policyTypes:
- Ingress
- Egress
ingress:
- from:
- podSelector:
matchLabels:
role: backup-agent
ports:
- port: 443
egress: [] # لا اتصال خارجي
```
### ج. أمان النقاط الطرفية (Endpoint Security)
```yaml
endpoint_security:
# مكافح الفيروسات
antivirus:
enabled: true
real_time_scan: true
scheduled_scan: daily
# كشف التهديدات
edr:
enabled: true
behavioral_analysis: true
ransomware_protection: true
# التحديثات التلقائية
patching:
auto_update: true
critical_patches: immediate
regular_patches: weekly
reboot_window: "02:00-04:00"
```
---
## 3. طبقة الكشف (Detection)
### أ. نظام SIEM والمراقبة
```yaml
# تكوين المراقبة
monitoring:
# مصادر السجلات
log_sources:
- nginx_access
- nginx_error
- auth_logs
- app_logs
- system_logs
- audit_logs
# قواعد الكشف
detection_rules:
- name: mass_file_encryption
description: كشف تشفير ملفات جماعي
condition: |
file_operations.encrypt > 100
AND time_window < 5m
severity: critical
action: alert_and_isolate
- name: suspicious_process
description: عملية مشبوهة
condition: |
process.name IN ['vssadmin', 'wmic', 'bcdedit']
OR process.command CONTAINS 'shadow'
severity: high
action: alert
- name: unusual_network_activity
description: نشاط شبكة غير طبيعي
condition: |
outbound_connections > baseline * 3
OR connection_to_tor = true
severity: high
action: alert
```
### ب. تنبيهات Prometheus
```yaml
# prometheus-alerts.yaml
groups:
- name: ransomware_detection
rules:
- alert: MassFileModification
expr: |
rate(file_modifications_total[5m]) > 1000
for: 1m
labels:
severity: critical
annotations:
summary: "🚨 كشف تعديل ملفات جماعي"
description: "أكثر من 1000 ملف تم تعديله في 5 دقائق"
action: "عزل النظام فوراً"
- alert: SuspiciousFileExtension
expr: |
increase(files_with_extension{ext=~".*encrypted.*|.*locked.*|.*crypto.*"}[5m]) > 10
for: 0m
labels:
severity: critical
annotations:
summary: "🔒 كشف امتدادات ملفات مشبوهة"
description: "ملفات بامتدادات ransomware معروفة"
- alert: BackupDeletionAttempt
expr: |
backup_deletion_attempts > 0
for: 0m
labels:
severity: critical
annotations:
summary: "⚠️ محاولة حذف النسخ الاحتياطية"
description: "كشف محاولة حذف النسخ الاحتياطية"
```
### ج. File Integrity Monitoring (FIM)
```yaml
# تكوين مراقبة سلامة الملفات
fim_config:
monitored_paths:
- path: /etc
recursive: true
alert_on: [create, modify, delete]
- path: /var/www
recursive: true
alert_on: [modify, delete]
- path: /home
recursive: true
alert_on: [mass_modify] # أكثر من 100 ملف
baseline:
update_frequency: daily
time: "03:00"
exclusions:
- "*.log"
- "*.tmp"
- "/var/cache/*"
```
---
## 4. طبقة الاحتواء (Containment)
### أ. العزل التلقائي
```python
# auto_isolate.py - سكربت العزل التلقائي
import subprocess
import requests
from datetime import datetime
def isolate_system(reason: str):
"""عزل النظام تلقائياً عند كشف تهديد"""
timestamp = datetime.now().isoformat()
# 1. قطع الاتصال بالشبكة
subprocess.run([
"ghaymah", "network", "isolate",
"--project", "production",
"--reason", reason
])
# 2. إيقاف الخدمات غير الحرجة
subprocess.run([
"ghaymah", "services", "stop",
"--exclude", "backup,monitoring",
"--project", "production"
])
# 3. تفعيل وضع القراءة فقط للتخزين
subprocess.run([
"ghaymah", "storage", "readonly",
"--volume", "prod-data",
"--enable"
])
# 4. إرسال تنبيه
send_alert({
"type": "system_isolated",
"reason": reason,
"timestamp": timestamp,
"severity": "critical"
})
# 5. بدء النسخ الاحتياطي الطارئ
subprocess.run([
"ghaymah", "backup", "create",
"--emergency",
"--source", "prod-data",
"--destination", "emergency-backups"
])
def send_alert(alert: dict):
"""إرسال تنبيه للفريق"""
webhook_url = os.environ.get("ALERT_WEBHOOK")
requests.post(webhook_url, json=alert)
```
### ب. Immutable Backups (نسخ احتياطية غير قابلة للتعديل)
```yaml
# تكوين النسخ الاحتياطية غير القابلة للتعديل
immutable_backup:
enabled: true
# فترة عدم القابلية للتعديل
retention_lock:
min_days: 7
max_days: 365
# حماية من الحذف
deletion_protection:
enabled: true
require_mfa: true
require_approval: 2 # موافقة شخصين
cooling_period: 72h # فترة انتظار قبل الحذف
# التشفير
encryption:
algorithm: AES-256-GCM
key_management: customer_managed
key_rotation: 90d
```
**التنفيذ:**
```bash
# إنشاء bucket مع حماية WORM
ghaymah storage bucket create secure-backups \
--worm-enabled \
--retention-days 30 \
--deletion-protection \
--require-mfa-delete
```
---
## 5. طبقة الاستعادة (Recovery)
### أ. خطة استمرارية الأعمال
```yaml
business_continuity:
# أولوية الاستعادة
recovery_priority:
tier_1: # أول 4 ساعات
- name: "قاعدة البيانات الرئيسية"
rto: 1h
- name: "API الأساسي"
rto: 2h
tier_2: # 4-8 ساعات
- name: "واجهة المستخدم"
rto: 4h
- name: "خدمات الدفع"
rto: 4h
tier_3: # 8-24 ساعة
- name: "التقارير"
rto: 12h
- name: "الأرشيف"
rto: 24h
# موقع الاستعادة البديل
dr_site:
location: me-jeddah-1
sync_frequency: hourly
failover_time: 30m
```
### ب. Runbook الاستعادة
```markdown
## Runbook: استعادة من Ransomware
### المتطلبات المسبقة
- [ ] تأكيد عزل الأنظمة المتأثرة
- [ ] تحديد آخر نسخة احتياطية سليمة
- [ ] تجهيز بيئة الاستعادة
### خطوات الاستعادة
1. **إنشاء بيئة نظيفة**
```bash
ghaymah project create recovery-env --from-template secure-base
```
2. **استعادة قاعدة البيانات**
```bash
ghaymah backup restore \
--source secure-backups/db-latest \
--destination recovery-env/database \
--verify
```
3. **استعادة الملفات**
```bash
ghaymah backup restore \
--source secure-backups/files-latest \
--destination recovery-env/storage \
--verify
```
4. **اختبار الخدمات**
```bash
ghaymah test run --suite smoke-test --project recovery-env
```
5. **تبديل DNS**
```bash
ghaymah dns update \
--domain app.example.com \
--target recovery-env
```
```
---
## 6. التدريب والتوعية
### برنامج التدريب
| الفئة | التدريب | التكرار |
|-------|---------|---------|
| جميع الموظفين | التوعية بالتصيد | ربع سنوي |
| فريق IT | الاستجابة للحوادث | شهري |
| المطورين | البرمجة الآمنة | ربع سنوي |
| الإدارة | إدارة الأزمات | نصف سنوي |
### محاكاة الهجمات
```yaml
# جدول تمارين المحاكاة
simulation_exercises:
- name: "تمرين Ransomware"
frequency: quarterly
scope: full_organization
objectives:
- اختبار خطة الاستجابة
- قياس وقت الاكتشاف
- اختبار الاستعادة
- name: "اختبار التصيد"
frequency: monthly
scope: random_sample
objectives:
- قياس الوعي
- تحديد نقاط الضعف
```
---
## 7. ملخص خطة الوقاية
```
┌─────────────────────────────────────────────────────────────────────┐
│ ملخص خطة الوقاية الشاملة │
├─────────────────────────────────────────────────────────────────────┤
│ │
│ 🛡️ الوقاية: │
│ ✓ MFA إجباري لجميع الحسابات │
│ ✓ تقسيم الشبكة وعزل النسخ الاحتياطية │
│ ✓ تحديثات أمنية تلقائية │
│ ✓ سياسة أقل صلاحية │
│ │
│ 🔍 الكشف: │
│ ✓ SIEM مع قواعد كشف Ransomware │
│ ✓ مراقبة سلامة الملفات (FIM) │
│ ✓ تنبيهات فورية │
│ │
│ 🚧 الاحتواء: │
│ ✓ عزل تلقائي عند الكشف │
│ ✓ نسخ احتياطية غير قابلة للتعديل (WORM) │
│ ✓ وضع القراءة فقط للتخزين │
│ │
│ 🔄 الاستعادة: │
│ ✓ قاعدة 3-2-1 للنسخ الاحتياطي │
│ ✓ RPO: 1 ساعة | RTO: 4 ساعات │
│ ✓ اختبار استعادة دوري │
│ │
│ 📚 التدريب: │
│ ✓ توعية ربع سنوية │
│ ✓ محاكاة هجمات │
│ ✓ تمارين استجابة للحوادث │
│ │
└─────────────────────────────────────────────────────────────────────┘
```
---
## 8. قائمة التحقق النهائية
### أسبوعياً
- ✅ مراجعة تنبيهات SIEM
- ✅ التحقق من نجاح النسخ الاحتياطي
- ✅ فحص تحديثات الأمان
### شهرياً
- ✅ اختبار استعادة عشوائي
- ✅ مراجعة صلاحيات المستخدمين
- ✅ تحديث قواعد الكشف
### ربع سنوياً
- ✅ تمرين محاكاة Ransomware
- ✅ مراجعة خطة الاستجابة
- ✅ تدريب الموظفين
### سنوياً
- ✅ تدقيق أمني شامل
- ✅ تحديث خطة استمرارية الأعمال
- ✅ مراجعة العقود مع المزودين