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