الملفات

18 KiB

خطة وقاية شاملة لمنع تكرار هجوم Ransomware


1. نظرة عامة

┌─────────────────────────────────────────────────────────────────────┐
│                    طبقات الحماية من Ransomware                      │
├─────────────────────────────────────────────────────────────────────┤
│                                                                     │
│  ┌─────────────────────────────────────────────────────────────┐    │
│  │                    طبقة 1: الوقاية                          │    │
│  │         (منع الدخول - Access Prevention)                    │    │
│  └─────────────────────────────────────────────────────────────┘    │
│                              ↓                                      │
│  ┌─────────────────────────────────────────────────────────────┐    │
│  │                    طبقة 2: الكشف                            │    │
│  │         (اكتشاف مبكر - Early Detection)                     │    │
│  └─────────────────────────────────────────────────────────────┘    │
│                              ↓                                      │
│  ┌─────────────────────────────────────────────────────────────┐    │
│  │                    طبقة 3: الاحتواء                          │    │
│  │         (تقليل الضرر - Damage Limitation)                   │    │
│  └─────────────────────────────────────────────────────────────┘    │
│                              ↓                                      │
│  ┌─────────────────────────────────────────────────────────────┐    │
│  │                    طبقة 4: الاستعادة                         │    │
│  │         (العودة للعمل - Recovery)                           │    │
│  └─────────────────────────────────────────────────────────────┘    │
│                                                                     │
└─────────────────────────────────────────────────────────────────────┘

2. طبقة الوقاية (Prevention)

أ. إدارة الهوية والوصول (IAM)

# سياسة 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

التنفيذ على غيمة:

# تفعيل 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"

ب. أمان الشبكة

# 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:

# 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)

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 والمراقبة

# تكوين المراقبة
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

# 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)

# تكوين مراقبة سلامة الملفات
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)

أ. العزل التلقائي

# 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 (نسخ احتياطية غير قابلة للتعديل)

# تكوين النسخ الاحتياطية غير القابلة للتعديل
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

التنفيذ:

# إنشاء bucket مع حماية WORM
ghaymah storage bucket create secure-backups \
  --worm-enabled \
  --retention-days 30 \
  --deletion-protection \
  --require-mfa-delete

5. طبقة الاستعادة (Recovery)

أ. خطة استمرارية الأعمال

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 الاستعادة

## Runbook: استعادة من Ransomware

### المتطلبات المسبقة
- [ ] تأكيد عزل الأنظمة المتأثرة
- [ ] تحديد آخر نسخة احتياطية سليمة
- [ ] تجهيز بيئة الاستعادة

### خطوات الاستعادة

1. **إنشاء بيئة نظيفة**
   ```bash
   ghaymah project create recovery-env --from-template secure-base
  1. استعادة قاعدة البيانات

    ghaymah backup restore \
      --source secure-backups/db-latest \
      --destination recovery-env/database \
      --verify
    
  2. استعادة الملفات

    ghaymah backup restore \
      --source secure-backups/files-latest \
      --destination recovery-env/storage \
      --verify
    
  3. اختبار الخدمات

    ghaymah test run --suite smoke-test --project recovery-env
    
  4. تبديل DNS

    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
  • مراجعة خطة الاستجابة
  • تدريب الموظفين

سنوياً

  • تدقيق أمني شامل
  • تحديث خطة استمرارية الأعمال
  • مراجعة العقود مع المزودين