# خطة وقاية شاملة لمنع تكرار هجوم 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 - ✅ مراجعة خطة الاستجابة - ✅ تدريب الموظفين ### سنوياً - ✅ تدقيق أمني شامل - ✅ تحديث خطة استمرارية الأعمال - ✅ مراجعة العقود مع المزودين