الملفات

559 أسطر
18 KiB
Markdown

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