mansi200304/security-incident-response-plan
GitHub: mansi200304/security-incident-response-plan
该框架是一个生产级的安全事件响应系统,通过结合SIEM检测规则、AI驱动的告警分诊与自动化遏制,帮助企业SOC团队显著缩短平均检测和响应时间。
Stars: 1 | Forks: 0
# 安全事件响应框架
   
**具备生产级水准的端到端事件响应框架** —— 集自动化检测、AI 驱动的分诊、结构化 playbook 及遏制自动化于一体,专为企业 SOC 团队打造。
## 问题背景
企业 SOC 团队面临着双重危机:**告警量过载** 和 **关键时刻响应缓慢**。
- 行业平均 MTTD:**197 天**(IBM 2023 年数据泄露成本报告)
- 行业平均 MTTC:**69 天**
- SOC 分析师将 **25–50%** 的时间花在对误报的分诊上
该框架致力于解决这两个问题:通过使用自动化的 SIEM 规则,在模拟场景中实现了 **< 2 分钟的检测**;并利用 Claude API 驱动的摘要和严重性评分,将告警分诊时间缩短了 40%。
架构
```
flowchart TD
A[Log Sources\nEndpoint · Network · Cloud · Identity · App] --> B[SIEM / Detection Engine\nYARA-L + Sigma Rules]
B --> C{Alert Fired?}
C -->|No| A
C -->|Yes| D[AI Triage\nClaude API]
D --> E[Severity Score\nP1 · P2 · P3 · P4]
E --> F{P1 or P2?}
F -->|Yes| G[Automated Containment\nauto_contain.py]
F -->|No| H[Analyst Queue\nJira Ticket]
G --> H
H --> I[Playbook Selection\nMITRE ATT&CK Mapping]
I --> J[Human Investigation\n+ Remediation]
J --> K[Post-Incident\nRCA · KPI · Rule Tuning]
K --> B
```
## 仓库结构
```
security-incident-response-plan/
├── README.md
├── requirements.txt
├── detection/
│ ├── yara_rules/
│ │ ├── brute_force.yaral # 5+ failed logins in 60s
│ │ ├── privilege_escalation.yaral # sudo/token impersonation
│ │ ├── lateral_movement.yaral # SMB enum, PtH, RDP pivot
│ │ ├── data_exfiltration.yaral # >500MB outbound off-hours
│ │ ├── unauthorized_access.yaral # Impossible travel, geo-block
│ │ └── c2_beaconing.yaral # Periodic outbound to low-rep domains
│ └── sigma_rules/
│ ├── brute_force.yml
│ ├── privilege_escalation.yml
│ ├── lateral_movement.yml
│ ├── data_exfiltration.yml
│ ├── unauthorized_access.yml
│ └── c2_beaconing.yml
├── playbooks/
│ ├── phishing.md # T1566 — Email phishing, credential harvest
│ ├── ransomware.md # T1486 — Encryption, recovery, ransom decision
│ ├── insider_threat.md # T1078 — Malicious/negligent insider
│ ├── lateral_movement.md # T1550 — PtH, SMB relay, Kerberoasting
│ ├── cloud_misconfiguration.md # T1530 — S3 exposure, IAM abuse, logging disabled
│ └── ddos.md # T1498 — Volumetric, L7, ransom DDoS
├── automation/
│ ├── log_generator.py # Synthetic log generator — 10,000+ events/day
│ ├── alert_triage.py # Claude API triage — IOC extraction + severity
│ └── auto_contain.py # Automated containment — NGFW, AD, S3, PagerDuty
├── templates/
│ ├── rca_template.md # Root Cause Analysis with 5 Whys + MITRE mapping
│ ├── lessons_learned.md # Post-incident review meeting template
│ └── escalation_matrix.md # P1-P4 escalation paths, RACI, regulatory requirements
└── metrics/
└── kpi_tracker.py # MTTD/MTTR/SLA tracking with SQLite + dashboard
```
## 快速开始
### 前置条件
- Python 3.10+
- API 密钥(用于情报富化,可选):`ANTHROPIC_API_KEY`、`VIRUSTOTAL_API_KEY`、`ABUSEIPDB_API_KEY`
### 安装说明
```
git clone https://github.com/YOUR_USERNAME/security-incident-response-plan.git
cd security-incident-response-plan
pip install -r requirements.txt
```
### 环境变量
```
# AI 分诊所需
export ANTHROPIC_API_KEY="sk-ant-..."
# 可选 — IOC enrichment
export VIRUSTOTAL_API_KEY="..."
export ABUSEIPDB_API_KEY="..."
# 可选 — 遏制 integrations
export NGFW_HOST="https://your-paloalto-ngfw.corp.local"
export NGFW_API_KEY="..."
export AD_SERVER="ldap://dc01.corp.local"
export AD_USER="CN=svc_ir,OU=ServiceAccounts,DC=corp,DC=local"
export AD_PASSWORD="..."
export JIRA_URL="https://your-jira.atlassian.net"
export JIRA_TOKEN="..."
export SLACK_WEBHOOK="https://hooks.slack.com/services/..."
export PAGERDUTY_ROUTING_KEY="..."
export S3_EVIDENCE_BUCKET="your-ir-evidence-bucket"
```
### 生成合成日志
```
# 生成今天的 10,000 个事件并注入攻击模式
python3 automation/log_generator.py \
--events-per-day 10000 \
--inject-attacks \
--output-dir ./logs \
--format json
# 生成 7 天的日志(使用可重现的 seed)
python3 automation/log_generator.py \
--events-per-day 10000 \
--inject-attacks \
--days 7 \
--seed 42
```
### 运行 AI 分诊
```
# 分诊单个告警文件
python3 automation/alert_triage.py \
--input logs/alerts_2024-01-15.json \
--output ./triage_results
# 分诊目录中的所有告警文件,跳过 enrichment 以提高速度
python3 automation/alert_triage.py \
--input ./logs \
--skip-enrichment \
--format jsonl
```
### 自动化遏制(试运行)
```
# 预览遏制 actions 而不执行
python3 automation/auto_contain.py contain \
--incident triage_results/triage_results.json \
--dry-run
# 执行 P1 事件的遏制(需要 API 凭据)
python3 automation/auto_contain.py contain \
--incident incident_INC-2024001.json \
--actions isolate_host block_ip disable_account ticket slack pagerduty
# 回滚遏制 actions
python3 automation/auto_contain.py rollback --incident-id INC-2024001
```
### KPI 仪表板
```
# 使用 200 个演示事件进行 seed 以供测试
python3 metrics/kpi_tracker.py seed-demo --count 200
# 查看当月 dashboard
python3 metrics/kpi_tracker.py dashboard
# 生成过去 30 天的 JSON 报告
python3 metrics/kpi_tracker.py report --format json
# 添加真实事件
python3 metrics/kpi_tracker.py add \
--id INC-2024001 \
--title "Brute force on VPN gateway" \
--type brute_force \
--severity P2 \
--detected-at "2024-01-15T14:30:00Z" \
--attack-started-at "2024-01-15T14:25:00Z" \
--analyst analyst_a01
# 关闭事件并记录解决时间
python3 metrics/kpi_tracker.py close \
--id INC-2024001 \
--resolved-at "2024-01-15T15:45:00Z"
```
## 检测规则
| 规则 | MITRE 战术 | 技术 | 严重性 | 文件 |
|---|---|---|---|---|
| 暴力破解登录 | 凭据获取 | T1110.001 | 高危 | `brute_force.yaral`, `brute_force.yml` |
| 权限提升 | 权限提升 | T1548.003 | 严重 | `privilege_escalation.yaral`, `privilege_escalation.yml` |
| 横向移动 | 横向移动 | T1550.002, T1021 | 高危 | `lateral_movement.yaral`, `lateral_movement.yml` |
| 数据窃取 | 数据外传 | T1041, T1048 | 严重 | `data_exfiltration.yaral`, `data_exfiltration.yml` |
| 未授权访问 | 初始访问 | T1078 | 高危 | `unauthorized_access.yaral`, `unauthorized_access.yml` |
| C2 信标 | 命令与控制 | T1071.001, T1571 | 严重 | `c2_beaconing.yaral`, `c2_beaconing.yml` |
## 事件响应 Playbook
| 事件类型 | MITRE ATT&CK | 严重性范围 | SLA | Playbook |
|---|---|---|---|---|
| 网络钓鱼 | T1566, T1598 | P2 – P1 | 1小时 – 15分钟 | `playbooks/phishing.md` |
| 勒索软件 | T1486, T1490 | 始终为 P1 | 15 分钟 | `playbooks/ransomware.md` |
| 内部威胁 | T1078, T1052 | P2 – P1 | 1小时 – 15分钟 | `playbooks/insider_threat.md` |
| 横向移动 | T1550, T1021, T1558 | P1 – P2 | 15分钟 – 1小时 | `playbooks/lateral_movement.md` |
| 云端配置错误 | T1530, T1537, T1580 | P2 – P1 | 4小时 – 15分钟 | `playbooks/cloud_misconfiguration.md` |
| DDoS | T1498, T1499 | P2 – P1 | 1小时 – 15分钟 | `playbooks/ddos.md` |
## 性能指标
| 指标 | 目标 | 达成情况(模拟环境) |
|---|---|---|
| MTTD(平均检测时间) | < 5 分钟 | **< 2 分钟** |
| 告警分诊时间缩减率 | 30% | 使用 AI 摘要 **~40%** |
| 误报率 | < 20% | 在 AI 分诊层前后测量 |
| Playbook 覆盖率 | 6 项 MITRE 战术 | 已部署 **6 个 playbook** |
| SLA 合规性 | > 90% | 在 KPI 追踪器中按严重性追踪 |
| 升级准确性 (P1–P4) | > 90% | 在多次模拟运行中验证 |
| IOC 提取精确度 (Claude) | > 90% | 根据人工标注样本验证 |
## AI 分诊流水线
每个告警在到达人工分析师之前,都会经过 Claude API 流水线处理:
```
from anthropic import Anthropic
client = Anthropic()
response = client.messages.create(
model="claude-3-5-sonnet-20241022",
max_tokens=2048,
system="You are an expert SOC analyst...",
messages=[{
"role": "user",
"content": f"Analyze this alert and extract IOCs, score severity P1-P4, "
f"identify MITRE ATT&CK techniques, and write an executive brief:\n\n{raw_alert}"
}]
)
```
该流水线会自动:
1. **提取 IOC** — IP、文件哈希 (MD5/SHA256)、域名、URL、用户名、主机名
2. **评估严重性** (P1–P4) — 基于资产关键性、攻击阶段及受影响系统数量
3. **过滤误报** — 结合上下文(IT 维护窗口、已知扫描器 IP、已授权的渗透测试)
4. **生成事件简报** — 纯英文书写,3–5 个句子,专为管理层读者撰写
5. **映射至 MITRE ATT&CK** — 战术 ID、技术 ID 及子技术
随后,IOC 将通过 **VirusTotal**(哈希/IP/域名)和 **AbuseIPDB**(IP 信誉)进行情报富化,任何确认恶意的 IOC 都将触发严重性的自动升级。
## 框架与标准
| 领域 | 框架 / 标准 |
|---|---|
| 事件响应流程 | NIST SP 800-61r2(计算机安全事件处理指南) |
| 威胁建模 | MITRE ATT&CK Enterprise |
| 安全控制 | NIST 网络安全框架 (CSF) |
| 合规性 | ISO 27001, SOC 2 Type II |
| 云安全 | AWS 良好架构框架的安全支柱 |
| 监管法规 | GDPR, HIPAA, PCI-DSS, SEC 8-K, CCPA, CIRCIA |
## 路线图
### 短期
- SOAR 集成(Shuffle 或 Cortex XSOAR 社区版)
- 威胁情报富化:集成 MISP 以进行 IOC 共享
- Grafana 仪表板:实时 MTTD/MTTR 趋势可视化
### 中期
- LLM 生成的 YARA-L 规则:描述攻击模式,由 Claude 生成检测规则
- 桌面推演模拟器:AI 驱动的事件响应演练场景生成器
- 多租户支持:为每个业务部门提供独立的告警队列
### 长期
- 对抗性机器学习检测:检测针对 AI 分诊层的 prompt 注入攻击
- 联邦威胁共享:跨组织保护隐私的 IOC 共享
- 行为基线机器学习:基于合成日志数据集训练的异常检测模型
## 许可证
MIT License — 详情请参阅 [LICENSE](LICENSE)。
标签:AI大模型, PE 加载器, Python, Web报告查看器, 安全运营, 库, 应急响应, 扫描框架, 无后门, 自动化响应, 逆向工具