SOAR چیست؟ اتوماسیون واکنش به حادثه، انتخاب پلتفرم و سناریوهای عملی برای معماران امنیت و مهندسان DevOps
SOAR (Security Orchestration, Automation and Response) راهکاری جامع برای همگامسازی ابزارهای امنیتی، خودکارسازی واکنش به تهدیدات و بهینهسازی گردش کارهای Incident Response است. این مقاله عمیق به معماری داخلی SOAR، مقایسه پلتفرمهای برتر، ساخت Playbookهای عملی، نمونهکدهای Python، Sigma، YARA و تنظیمات سیستمی میپردازد؛ برای معماران امنیت، مهندسان Blue Team و متخصصان DevOps که به دنبال راهحلهای قابلاجرا، مقیاسپذیر و مستند هستند. شامل جداول تصمیمگیری، چکلیستهای پیادهسازی، لینکهای داخلی به
## مقدمه
SOAR (Security Orchestration, Automation and Response) ترکیبی از three pillar اصلی است:
- **Orchestration**: یکپارچهسازی APIهای ابزارهای مختلف (EDR, IAM, Firewall, Ticketing).
- **Automation**: اجرای خودکار playbookها بر پایهٔ triggers (alert, ticket, syslog).
- **Response**: مدیریت کامل کیس، ثبت جریان، ارجاع به تیمهای مربوطه.
در مقایسه با فقط **EDR** یا **SIEM**، SOAR نقطهٔ ضعفهای انسانی (پست‑mortem, تکرار خطا) را با برنامهنویسی توصیفی (YAML/JSON) برطرف میکند.
---
### معماری داخلی پلتفرمهای SOAR
| لایه | توصیف | مثالهای پیادهسازی |
|------|--------|----------------------|
| **Connector Layer** | درایورهای HTTP/HTTPS، gRPC یا SDK برای ارتباط با ابزارها. | `demisto_api`, `thehive4py`, `aws-sdk` |
| **Playbook Engine** | موتور state‑machine که DAG از tasks را اجرا میکند. | XSOAR Playbooks (YAML), TheHive Playbooks (JSON) |
| **Case Management** | ذخیرهسازی ساختار یافتهی رخدادها، متادیتا و ارتباطات. | SQLite (XSOAR), PostgreSQL (TheHive) |
| **Metrics & Observability** | Export Prometheus metrics، logs به ELK. | `metrics_exporter.py` |
| **Runtime Isolation** | هر Playbook در sandbox (Docker container) اجرا میشود. | `docker-run --rm --network soarnet` |
#### جزئیات فنی Kernel
- **File System Layout**: `/opt/soar/data/` حاوی `cases/`, `playbooks/`, `logs/`. هر playbook یک پوشهٔ جداگانه با `script.py`, `inputs.json`, `outputs.json` دارد.
- **Syscalls**: Playbookهای Python فقط از `execve`, `openat`, `socket` استفاده میکنند؛ دسترسی به `ptrace` یا `mount` مسدود است تا sandbox امن بماند.
- **Network Protocols**: ارتباط داخلی با `unix://socket`، ارتباط خارجی با `https` + mTLS. هر درخواست با `X-Soar-Request-ID` ردیابی میشود.
---
### مقایسه پلتفرمها
| ویژگی | Cortex XSOAR | TheHive + Cortex‑Analyzers | StackStorm |
|--------|--------------|---------------------------|------------|
| **License** | Commercial (Free tier up to 10 users) | Open‑source (MIT) + Commercial add‑ons | Open‑source (Apache‑2) |
| **Playbook Language** | YAML + Python scripts | JSON + Python
| **Built‑in Connectors** | 120+ (Office365, Azure AD, AWS) | 30+ (via Ansible, REST) | 70+ (via packs) |
| **Scalability** | Horizontal scaling via Kubernetes operator | Horizontal scaling with PostgreSQL replication | Horizontal scaling via RabbitMQ |
| **Metrics** | Prometheus, Grafana dashboards | Prometheus, Elastic | Prometheus, Grafana |
| **Deployment** | Docker‑Compose, Helm chart | Docker‑Compose, Docker‑Swarm | Docker‑Compose, Kubernetes |
#### تصمیمگیری فنی (matrix)
| معیار | XSOAR | TheHive | StackStorm |
|-------|-------|----------|-----------|
| **Cost** | $10k/yr برای 100 کاربر | رایگان + هزینهٔ پشتیبانی | رایگان |
| **Extensibility** | SDK Python, REST, CLI | API Python, Go | Packs Python, YAML |
| **Community Support** | بزرگ، پلاگینهای Commercial | متوسط، GitHub | بزرگ، StackOverflow |
| **Compliance** | GDPR, SOC2 آماده | با تنظیمات میتواند | با تنظیمات میتواند |
---
### سناریوهای عملی
#### 1️⃣ Playbook تشخیص Phishing با تحلیل ایمیل
```yaml
name: Phishing‑Email‑Triage
type: playbook
tasks:
- id: fetch_email
type: http
method: GET
url: "{{inputs.email_url}}"
headers:
Authorization: "Bearer {{secrets.api_key}}"
- id: extract_iocs
type: script
scriptName: extract_iocs.py
args:
raw_email: "${fetch_email.body}"
- id: enrich_iocs
type: parallel
subTasks:
- id: virustotal
type: http
method: GET
url: "https://www.virustotal.com/api/v3/files/{{args.sha256}}"
headers:
x-apikey: "{{secrets.vt_key}}"
- id: urlscan
type: http
method: POST
url: "https://urlscan.io/api/v1/scan/"
body:
url: "{{args.url}}"
- id: decide_action
type: condition
condition: "${enrich_iocs.virustotal.positives} > 0"
trueTask: block_sender
falseTask: mark_harmless
- id: block_sender
type: script
scriptName: block_sender.py
args:
email: "${fetch_email.from}"
- id: mark_harmless
type: note
note: "No malicious indicators found."
```
*اسکریپت `extract_iocs.py`* (Python 3.12):
```python
import email, re, hashlib
msg = email.message_from_string(demisto.args()['raw_email'])
payload = msg.get_payload(decode=True)
sha256 = hashlib.sha256(payload).hexdigest()
urls = re.findall(r'https?://[^\s]+', payload.decode(errors='ignore'))
return {'sha256': sha256, 'urls': urls}
```
---
#### 2️⃣ قانون Sigma برای Credential‑Stuffing
```json
{
"title": "Credential Stuffing – Multiple Failed Logins",
"id": "123e4567-e89b-12d3-a456-426614174000",
"status": "stable",
"description": "Detects high‑rate login failures from same source IP.",
"logsource": {"product": "webserver", "service": "auth"},
"detection": {
"selection": {"event.type": "failed_login", "source.ip": "*"},
"condition": "selection | count(source.ip) > 20 within 5m"
},
"level": "high",
"tags": ["attack.t1110", "mitre.t1110"]
}
```
در XSOAR میتوان این JSON را با `sigma_to_xsoar` تبدیل کرد و بهعنوان trigger اضافه نمود.
---
#### 3️⃣ YARA rule برای فایلهای مخرب SAP
```yara
rule SAP_SAPSPrint_BufferOverflow {
meta:
description = "Detect malicious SAPSPrint payloads (CVE‑2026‑40130)"
author = "Mohsen Ehyaie"
reference = "CVE‑2026‑40130"
score = 85
strings:
$a = { 68 00 00 00 90 90 90 90 }
$b = "SAPSPrintService" nocase
condition:
any of ($a) and $b
}
```
تطبیق این قانون در EDR (Falco یا Sysmon) میتواند بهصورت real‑time alert به XSOAR بفرستد.
---
#### 4️⃣ تنظیمات Firewall (iptables) برای ایزولهسازی Playbook با Docker
```bash
# ایجاد bridge network مخصوص SOAR
docker network create --driver bridge soarnet
# محدود کردن خروجی اینترنتی برای playbooks
iptables -A FORWARD -i docker0 -o eth0 -p tcp --dport 443 -m conntrack --ctstate NEW -j DROP
```
---
#### 5️⃣ Bash script برای جمعآوری metricهای Playbook اجرا
```bash
#!/usr/bin/env bash
set -euo pipefail
PLAYBOOK=$1
START=$(date +%s)
# اجرای playbook در Docker sandbox
docker run --rm --network soarnet -v /opt/soar/playbooks/${PLAYBOOK}:/playbook \
mysoar/engine:latest /playbook/script.py
END=$(date +%s)
DURATION=$((END-START))
# ارسال به Prometheus Pushgateway
curl -X POST -s "http://pushgateway:9091/metrics/job/soar_playbook" \
-d "playbook_execution_seconds{playbook=\"${PLAYBOOK}\"} ${DURATION}"
```
---
### چکلیست پیادهسازی SOAR (برای تیمها)
1. **Infrastructure**: Docker‑Compose ⟹ `docker-compose.yml` شامل سرویسهای `xsoar`, `thehive`, `elasticsearch`, `kibana`؛ volumes برای data persistent.
2. **Connector Validation**: هر connector را با `curl -s -H "Authorization: Bearer $TOKEN" $URL/health` تست کن؛ کد 200.
3. **Playbook Review**: ورودی/خروجی هر task با schema `jsonschema` اعتبارسنجی شود؛ `demisto.validate` یا `thehive.validate`.
4. **Security Hardening**: حذف `privileged: true`، محدود کردن `cap_add: []` در Docker؛ مسیر `/opt/soar/data/` با `chmod 750` و مالک `soar:soar`.
5. **Observability**: Prometheus targets در `prometheus.yml`؛ Alertmanager rule برای MTTR > 5 min.
---
### لینکهای داخلی (برای سئوشدن داخلی)
- [/soar-chist-automation-response](/soar-chist-automation-response) – مقالهٔ پایهای دربارهٔ SOAR.
- [/soar-platform-selection-2026](/soar-platform-selection-2026) – مقایسه پلتفرمها و معیارهای انتخاب.
- [/threat-hunting-practice](/threat-hunting-practice) – راهنمای شکار تهدید از فرضیه تا قانون.
- [/mitre-d3fend-practice](/mitre-d3fend-practice) – پیادهسازی تکنیکهای دفاعی با D3FEND.
- [/edr-vs-xdr-vs-mdr-2026](/edr-vs-xdr-vs-mdr-2026) – بررسی مزایا و معایب در سال 2026.
- [/defensive-cybersecurity-guide](/defensive-cybersecurity-guide) – مروری کامل بر عملیات تیم آبی.
---
### مثال کامل Playbook برای CVE‑2026‑40130 (SAP)
```yaml
name: SAP‑SAPSPrint‑Patch
type: playbook
inputs:
host_ip:
description: "IP of SAP server"
required: true
tasks:
- id: fetch_hash
type: script
scriptName: get_file_hash.py
args:
path: "/opt/sap/sapsprint/service.jar"
- id: compare_cve
type: condition
condition: "${fetch_hash.sha256} == 'd41d8cd98f00b204e9800998ecf8427e'"
trueTask: apply_patch
falseTask: log_no_action
- id: apply_patch
type: script
scriptName: apply_patch.sh
args:
host: "${inputs.host_ip}"
patch_url: "https://updates.sap.com/patches/2026_40130.zip"
- id: log_no_action
type: note
note: "File hash does not match vulnerable version. No patch applied."
```
*`get_file_hash.py`*:
```python
import hashlib, pathlib, demisto
path = demisto.args()['path']
with open(path, 'rb') as f:
sha256 = hashlib.sha256(f.read()).hexdigest()
return {'sha256': sha256}
```
*`apply_patch.sh`*:
```bash
#!/usr/bin/env bash
HOST=$1
PATCH=$2
scp "$PATCH" root@"$HOST":/tmp/patch.zip
ssh root@"$HOST" "unzip -o /tmp/patch.zip -d /opt/sap && systemctl restart sap.service"
```
---
### جمعبندی
SOAR نه تنها زمان واکنش را از ساعت به دقیقه میکاهد؛ بلکه با **Orchestration** بهصورت برنامهپذیر تمام زنجیرهٔ دفاعی را به‑هم پیوند میدهد. انتخاب پلتفرم باید بر پایهٔ معیارهای **cost, scalability, community, compliance** باشد؛ جداول تصمیمگیری فوق این انتخاب را واضح میکند. Playbookهای عملی، قوانین Sigma/YARA، و اسکریپتهای Bash/PowerShell نمونههای کاملی از پیادهسازی در محیط Docker‑Compose یا Kubernetes ارائه میدهند. چکلیستهای امنیتی و KPIهای مهم تضمین میکنند که استقرار قابل اعتماد باشد.
---
#### منابع
1. **SOAR چیست: اتوماسیون واکنش به حادثه، انتخاب پلتفرم و سناریوهای عملی ۲۰۲۶** – لینک داخلی فوق.
2. **Threat Hunting در عمل** – لینک داخلی.
3. **MITRE D3FEND در عمل** – لینک داخلی.
4. **EDR vs XDR vs MDR: تفاوت، مزایا و راهنمای انتخاب در 2026** – لینک داخلی.
5. **What Is Defensive Cybersecurity? Complete Guide to Blue Team Operations** – منبع انگلیسی.
6. **CVE‑2026‑40130: SAP SAPSPrint Service Buffer Overflow — Analysis & Mitigation** – منبع خارجی.