Aakash01-hash/automated-cti-triage-system
GitHub: Aakash01-hash/automated-cti-triage-system
一个结合机器学习分类与确定性取证规则的CTI分诊系统,可自动提取IoC、映射MITRE战术并生成取证PDF报告。
Stars: 0 | Forks: 0
# 自动化网络威胁情报分诊系统
这是一个端到端的 CTI 和 SOC 分诊助手,能够将原始网络威胁情报、SIEM 风格的日志、指标、CVE 引用以及分析人员文本转化为严重性预测、提取的 IoC、MITRE 风格的上下文以及取证 PDF 报告。
该系统是 Aakash Sorout 的毕业论文 **《自动化网络威胁情报分诊系统》** 的一部分。它将 TF-IDF + 逻辑回归严重性分类器与确定性的取证丰富逻辑相结合,使其输出结果可用于 SOC 一级分诊、数字取证审查和分析人员交接文档。
## 核心亮点
- 将原始 CTI 或日志文本分类为 `HIGH`、`MEDIUM` 和 `LOW` 严重性级别。
- 提取 IoC,例如 IP 地址、哈希值、CVE、域名、文件、主机、用户、进程和事件 ID。
- 将可疑行为映射到 MITRE 风格的战术和技术。
- 结合取证规则校准模型输出,适用于常见的 SOC 场景,例如勒索软件、RCE、凭证转储、暴力破解、扫描、良性的更新流量以及授权的扫描器活动。
- 提供 Flask Web 仪表板和 Tkinter 桌面界面。
- 生成结构化的取证 PDF 报告,包含执行摘要、事件索引、时间线、详细发现、IoC、MITRE 映射、证据价值和响应措施。
- 支持通过 AbuseIPDB、VirusTotal 和 NVD CVE 数据源进行可选的实时情报丰富。
## 架构
```
flowchart LR
A["Raw CTI, SIEM logs, CVEs, hashes, IPs"] --> B["Input splitting and normalization"]
B --> C["TF-IDF + Logistic Regression pipeline"]
B --> D["IoC, entity, and TTP extraction"]
C --> E["Severity prediction and confidence"]
D --> F["Forensic calibration and MITRE-style mapping"]
E --> F
F --> G["Web dashboard / Tkinter GUI"]
F --> H["Forensic PDF report"]
F --> I["Optional live enrichment: AbuseIPDB, VirusTotal, NVD"]
```
## 截图与图表
### Web 仪表板

### 分析结果

### 模型评估

### 取证报告输出

更多项目图表可在 [`docs/figures`](docs/figures) 中查看。
## 仓库结构
```
.
|-- data/
| |-- raw/ # Recreated locally from source feeds; not committed
| `-- processed/ # Rebuilt dataset artifacts; large CSVs are not committed
|-- docs/
| |-- figures/ # Thesis/project screenshots and diagrams
| |-- API.md
| |-- DATASETS.md
| `-- MODEL_CARD.md
|-- models/
| |-- cti_pipeline.pkl
| `-- cti_pipeline_metrics.json
|-- scripts/
| |-- build_dataset.py
| |-- feature_engineering/
| |-- gui/
| |-- inference/
| |-- models/
| `-- realtime/
|-- utils/
| `-- report_generator.py
`-- webapp/
|-- app.py
`-- templates/index.html
```
## 快速开始
1. 创建并激活一个 Python 环境。
```
python -m venv .venv
.\.venv\Scripts\Activate.ps1
pip install -r requirements.txt
```
2. 可选:配置实时情报丰富的密钥。
```
Copy-Item .env.example .env
# 编辑 .env 并设置 ABUSEIPDB_API_KEY 和 VT_API_KEY 以进行 live lookups。
```
3. 启动 Flask 仪表板。
```
python webapp/app.py
```
4. 打开仪表板。
```
http://127.0.0.1:5000
```
## 从 Python 运行推理
```
from scripts.inference.predict_cti import predict_cti
sample = "CVE-2024-3400 active exploitation with webshell and command and control traffic."
result = predict_cti(sample)
print(result["prediction"])
print(result["confidence"])
print(result["indicators"])
print(result["forensic"])
```
## 模型性能
生产模型使用了一个 scikit-learn Pipeline:
- 向量化器:`TfidfVectorizer`
- 分类器:`LogisticRegression`
- N-grams:`(1, 2)`
- 最大特征数:`50,000`
- 评估:在去除重复数据后进行分层 80/20 拆分
- 清洗后的数据行数:`43,701`
- 预留测试集大小:`8,741`
- 准确率:`82.45%`
来自 `models/cti_pipeline_metrics.json` 的各类别 F1 分数:
| 类别 | Precision | Recall | F1-score | Support |
| --- | ---: | ---: | ---: | ---: |
| HIGH | 0.7385 | 0.7957 | 0.7661 | 2,389 |
| MEDIUM | 0.7990 | 0.8112 | 0.8050 | 3,660 |
| LOW | 0.9535 | 0.8681 | 0.9088 | 2,692 |
## 数据来源
训练流程使用了:
- MITRE ATT&CK Enterprise 攻击模式描述。
- 2022 年、2023 年和 2024 年的 NIST NVD CVE 数据源。
- APT 活动报告文本。
- 合成的 LOW 严重性行政/安全模板。
- 合成的 MEDIUM 可疑遥测模板。
- 原始的 SIEM 风格样本,涵盖 JSON、CEF、syslog、Suricata、代理和 Windows 风格格式。
出于特意考虑,大型的原始数据源和生成的 CSV 数据集未包含在 GitHub 中。有关重建说明,请参阅 [`docs/DATASETS.md`](docs/DATASETS.md)。
## API 文档
有关 endpoint 的详细信息,请参阅 [`docs/API.md`](docs/API.md)。
## 安全说明
请勿提交 API 密钥。实时丰富模块会读取:
- `ABUSEIPDB_API_KEY`
- `VT_API_KEY`
如果未设置这些变量,应用程序仍会运行,并针对实时丰富功能返回明确的“未配置”消息。
## 预期用途
本项目是一个研究和分析人员辅助工具。它应该辅助 SOC 分诊和数字取证审查,而不是取代分析人员的判断。所有生成的报告在用于调查记录之前都应经过审查。
标签:Apex, Cloudflare, Flask, IoC提取, MITRE ATT&CK, PDF报告生成, 威胁情报, 安全运营中心(SOC), 开发者工具, 数字取证, 机器学习, 自动化脚本, 逆向工具