CharleneT1/incident-response-toolkit
GitHub: CharleneT1/incident-response-toolkit
这是一个轻量级Python事件响应工具包,集成IOC提取、钓鱼邮件分析和NIST标准检查清单,帮助安全团队高效处理安全事件。
Stars: 0 | Forks: 0
# 事件响应工具包
一个用于安全事件一线响应任务的轻量级 Python 工具包:从日志中提取 IOC、分析钓鱼邮件头,以及提供一份结构化的、符合 NIST 标准的响应检查清单。
该工具包在亲手实践的事件模拟演练中构建和测试,包括 [CIRCL Room 42](https://www.circl.lu/services/room42/) 桌面推演环境。
## 工具
| 工具 | 用途 |
|---|---|
| `ioc_extractor.py` | 解析日志/文本以提取 IP、域名、URL、哈希值;导出 MISP 兼容的 JSON |
| `phishing_analyzer.py` | 分析原始邮件头,检查 SPF/DKIM/DMARC,评估钓鱼风险评分 |
| `playbooks/incident_response_checklist.md` | NIST SP 800-61r2 检查清单,包含场景决策树 |
## 安装说明
需要 Python 3.8+。
```
pip install -r requirements.txt
```
唯一的外部依赖是 [dnspython](https://www.dnspython.org/),用于 `phishing_analyzer.py` 中的实时 DNS 记录查询。其他所有功能无需此依赖即可工作。
## 使用方法
### IOC 提取器
从日志文件中提取指标并保存为 MISP 兼容的 JSON:
```
python ioc_extractor.py -f /var/log/nginx/access.log -o iocs.json
```
从标准输入提取,仅限 IP 和哈希值:
```
cat suspicious.txt | python ioc_extractor.py --stdin --types ipv4 sha256 md5
```
处理内联文本,包含 RFC-1918 地址,输出原始字典:
```
python ioc_extractor.py -t "host 10.0.0.5 connected to c2.evil.com" --include-private --raw
```
**输出格式** 与 [MISP JSON 事件格式](https://www.misp-project.org/documentation/) 匹配,可通过 MISP REST API 或 `PyMISP` 库直接导入。
#### 可检测的 IOC 类型
| 类型 | 示例 |
|---|---|
| IPv4 | `203.0.113.42` |
| IPv6 | `2001:db8::1` |
| URL | `https://phish.example.com/login` |
| 域名 | `malware-c2.xyz` |
| MD5 | `d41d8cd98f00b204e9800998ecf8427e` |
| SHA1 | `da39a3ee5e6b4b0d3255bfef95601890afd80709` |
| SHA256 | `e3b0c44298fc1c149afb...` |
### 钓鱼分析器
分析一个原始 `.eml` 文件:
```
python phishing_analyzer.py -f suspicious.eml
```
通过管道从剪贴板或其他工具传入邮件头:
```
cat email_headers.txt | python phishing_analyzer.py --stdin
```
保存 JSON 报告以便进一步处理:
```
python phishing_analyzer.py -f alert.eml -o report.json
```
#### 检查项目
| 检查项 | 方法 |
|---|---|
| SPF 记录存在且有效 | 实时 DNS TXT 查询 |
| DMARC 策略已发布 | 实时查询 `_dmarc.<域名>` 的 TXT 记录 |
| DKIM 选择器密钥存在 | 实时查询 `<选择器>._domainkey.<域名>` 的 TXT 记录 |
| `Authentication-Results` 头部的值 | 头部解析(spf/dkim/dmarc 通过或失败) |
| Reply-To / From 域名不匹配 | 头部比较 |
| Message-ID 域名不匹配 | 头部比较 |
| 发件人域名使用可疑顶级域名 | 正则匹配(`.xyz`、`.tk`、`.top` 等) |
| 主题中包含钓鱼关键词 | 正则匹配 |
| 异常的 Received 链长度 | 头部计数 |
#### 风险评分
| 评分范围 | 判定 |
|---|---|
| 0–24 | `clean` |
| 25–59 | `suspicious` |
| 60+ | `likely_phishing` |
### 事件响应检查清单
[playbooks/incident_response_checklist.md](playbooks/incident_response_checklist.md) 中的检查清单涵盖了完整的 NIST SP 800-61r2 生命周期:
1. **准备** — 团队、工具、日志记录就绪
2. **检测与初步分析** — 分诊、范围界定、IOC 提取
3. **遏制** — 短期隔离、长期稳定
4. **根除** — 移除持久化机制、打补丁、重镜像
5. **恢复** — 分阶段恢复、增强监控
6. **事后活动** — 时间线、根本原因、经验教训
包含的决策树适用于:严重性分类、隔离与监控选择、重镜像与清理选择、勒索软件、钓鱼/商业电汇欺诈(BEC),以及数据泄露/内部威胁场景。
## 延伸阅读
- [MISP 威胁情报平台](https://www.misp-project.org/documentation/)
- [NIST SP 800-61r2 — 计算机安全事件处理指南](https://csrc.nist.gov/publications/detail/sp/800-61/rev-2/final)
- [CIRCL Room 42 事件模拟](https://www.circl.lu/services/room42/)
- [MITRE ATT&CK 框架](https://attack.mitre.org)
- [dnspython 文档](https://dnspython.readthedocs.io/)
标签:IOC提取, MISP集成, NIST合规, Python安全工具, 事件响应工具, 威胁情报, 安全事件处理, 安全工具包, 安全检查表, 开发者工具, 恶意指标提取, 日志解析, 第一响应, 网络安全, 网络钓鱼防御, 证书伪造, 逆向工具, 邮件头分析, 钓鱼检测, 隐私保护