syedisam05/Automated-Threat-Intelligence-Reporting-Tool
GitHub: syedisam05/Automated-Threat-Intelligence-Reporting-Tool
该工具通过自动化采集、标准化、评分和报告生成,将分散的多源漏洞情报整合为结构化的优先级简报,解决安全团队手动监控和评估威胁效率低下的问题。
Stars: 0 | Forks: 0
# 自动化威胁情报监控与报告工具
这是一个 Python 数据管道,用于从 **CISA KEV** 和 **MSRC RSS** 获取安全公告,对其进行标准化和评分,并自动生成结构化的单页简报——全程无需人工干预。
## 功能
| 功能 | 详情 |
|---------|--------|
| **多源数据获取** | CISA Known Exploited Vulnerabilities (KEV) 目录 + Microsoft MSRC RSS 源 |
| **字段标准化** | 跨数据源统一 schema —— `id`、`severity`、`cve_ids`、`tags`、`in_kev` 等 |
| **综合评分** | CVSS + 严重性级别 + KEV 状态 + CVE 存在情况 + 高危标签 → 0–10 分 |
| **结构化导出** | JSON + CSV,且保持一致的列顺序 |
| **单页简报** | 自动生成 Markdown 报告,包含执行摘要、十大威胁表格和详细条目 |
| **可重复运行** | 带时间戳的运行;原始数据、处理后的数据和报告输出分开存储 |
## 项目结构
```
threat-intel/
├── main.py # CLI entry point
├── requirements.txt
├── pipeline.log # Runtime log (auto-created)
├── src/
│ ├── pipeline.py # Orchestrator: ingest → normalize → score → export → report
│ ├── normalizer.py # Maps raw source fields to unified schema
│ ├── scorer.py # Composite priority scoring (0.0–10.0)
│ ├── exporter.py # JSON + CSV exports
│ ├── reporter.py # 1-page Markdown brief generator
│ └── ingestors/
│ ├── base.py # Abstract base ingestor
│ ├── cisa_kev.py # CISA KEV JSON catalog
│ └── msrc_rss.py # Microsoft MSRC RSS feed
├── data/
│ ├── raw/ # Raw ingested JSON (timestamped)
│ └── processed/ # Normalized + scored JSON and CSV
├── reports/ # Generated Markdown briefs
└── tests/
└── test_pipeline.py # pytest unit tests
```
## 快速开始
```
# Install dependencies (only pytest + optional rich)
pip install -r requirements.txt
# Run the full pipeline
python main.py
# Run only the CISA KEV source
python main.py --sources cisa
# Run without saving raw data
python main.py --no-raw
# Validate imports without fetching
python main.py --dry-run
# Run tests
python -m pytest tests/ -v
```
## 评分逻辑
每个公告都会获得一个综合分数 (0–10):
| 维度 | 权重 | 说明 |
|-----------|--------|-------|
| CVSS 基础分 | 0–4.0 | `cvss / 10 * 4` |
| 严重性级别 | 0–3.0 | Critical=3, High=2, Medium=1, Low=0.5 |
| 在 CISA KEV 中 | +2.0 | 已确认的主动利用 |
| 包含 CVE ID | +0.5 | 存在标准化标识符 |
| 高危标签 | +0–1.0 | RCE、zero-day、勒索软件、绕过认证 (auth-bypass)、内存破坏 |
**优先级标签:** CRITICAL (≥8.0) · HIGH (6–7.9) · MEDIUM (4–5.9) · LOW (2–3.9) · INFO (<2)
## 输出文件
每次运行后,都会生成三个带有时间戳的输出:
```
data/raw/raw_YYYYMMDD_HHMMSS.json # Raw API/feed responses
data/processed/advisories_YYYYMMDD_HHMMSS.json # Normalized + scored
data/processed/advisories_YYYYMMDD_HHMMSS.csv # Same data, flat CSV
reports/brief_YYYYMMDD_HHMMSS.md # 1-page Markdown brief
```
## 添加新数据源
1. 创建 `src/ingestors/your_source.py`,继承自 `BaseIngestor`
2. 实现 `fetch() → List[dict]`,并为每条记录标记 `_source = "YOUR_SOURCE"`
3. 在 `src/normalizer.py` 中添加标准化函数,并将其注册到 `_NORMALIZERS` 中
4. 在 `src/pipeline.py` 中将获取器添加到 `ingestors` 列表
## 环境要求
- Python 3.10+
- 无外部运行时依赖(仅使用标准库:`urllib`、`xml`、`csv`、`json`、`re`)
- 使用 `pytest` 进行测试
标签:Python, 威胁情报, 安全报告, 安全规则引擎, 开发者工具, 数据处理管道, 无后门, 漏洞分析, 网络调试, 自动化, 路径探测, 逆向工具