vyshak2000/report-hub
GitHub: vyshak2000/report-hub
一个自包含的 Python 脚本,并发拉取多个公开威胁情报源并生成四份可视化 HTML 报告。
Stars: 0 | Forks: 0
# 🛡️ Report Hub
**一个自包含的网络威胁情报报告生成器。** 一个脚本,一条命令,四份精美的 HTML 报告 —— 实时从免费、公开的威胁情报源获取数据,并打包在一个带时间戳、可用任何浏览器打开的 Hub 页面下。
无需数据库,无需框架,无需服务器。只需要 Python 和两个微小的依赖项。
## 报告
| 报告 | 涵盖内容 | 来源 |
|---|---|---|
| 🛡️ **严重 CVE 监测** | 过去 7 / 30 / 365 天内 CVSS > 9 且经 CISA KEV 确认的 CVE,按综合影响分数排名 | NVD API, CISA KEV |
| 🏴☠️ **勒索软件监测** | 遭到攻击的主要威胁行为者、行业和国家;过去一年内的高影响攻击;最新受害者 | ransomware.live |
| 📡 **网络新闻专线** | 8 家主要安全媒体过去 24 小时的头条新闻,以及通过跨来源报道检测出的本周重要事件 | RSS 订阅源 |
| 🎭 **威胁行为者与泄露监测** | 正在被追踪的 APT 组织及其活动、TTP 和工具;本周披露的泄露事件以及年度重大事件 | MITRE ATT&CK, Have I Been Pwned |
每次运行都会创建一个类似 `reports/15JUL26-2033/` 的文件夹,其中包含所有四份报告以及一个带有指向每份报告链接的 `index.html` Hub 页面。每份报告都会有一个悬浮的“← 返回首页”按钮。
## 快速开始
```
git clone https://github.com/vyshak2000/report-hub.git
cd report-hub
pip install requests feedparser
python cyber_intel_suite.py
```
就是这样。四个生成器**并发**运行,完成时会在浏览器中打开 Hub 页面,一切都在零配置下工作 —— 无需 API 密钥。
## 可选:API 密钥
密钥不是必需的,但拥有 NVD 密钥会使 CVE 报告的生成速度大幅提升(公共 NVD 的速率限制为每 30 秒 5 次请求)。
在脚本旁边创建一个 `api_keys.txt`:
```
# 免费 key:https://nvd.nist.gov/developers/request-an-api-key
NVD_API_KEY=your-key-here
# 可选(ransomware.live Pro)
RANSOMWARE_LIVE_API_KEY=your-key-here
```
同名的环境变量会覆盖此文件中的设置。**切勿提交 `api_keys.txt`** —— 它已在 `.gitignore` 中被忽略。
## 用法
```
python cyber_intel_suite.py # run all four reports
python cyber_intel_suite.py --modules cve,news # run a subset (cve, rsw, news, ttp)
python cyber_intel_suite.py --fresh # ignore caches, re-download everything
python cyber_intel_suite.py --no-browser # don't auto-open the hub page
```
## 工作原理
**并发设计。** 所有四个生成器都在并行线程中运行,因此总实际耗时大致等于最慢模块的耗时,而不是所有四个模块的总和。在各个模块内部,独立的获取请求(如 RSS 订阅源、每月的受害者页面)同样也进行了并行化处理。
**关键数据缓存。** 庞大且更新缓慢的数据集会被缓存在磁盘上的 `cache/` 目录中,并且仅在过期时重新下载 —— 例如几十 MB 的 MITRE ATT&CK 数据包缓存期为 7 天,CISA KEV 目录为 24 小时,HIBP 泄露列表为 6 小时。如果某个数据源无法访问,将使用过期的缓存副本,而不是直接丢弃该部分内容。可以使用 `--fresh` 强制重新下载。
**高容错性。** 每个 HTTP 调用都会通过具有自动重试和退避机制的连接池会话(对于 429 错误会遵循 `Retry-After` 指令)。NVD 请求经过了适当的速率限制。如果某个模块彻底失败,其余三个模块仍会生成报告,且 Hub 页面会标记出失败的那个。
**安全渲染。** 所有外部数据 —— 受害者名称、组织描述、RSS 标题、泄露描述 —— 在进入报告之前都会经过 HTML 转义。此类数据大部分由威胁行为者编写;系统绝不会将其原始内容直接渲染到页面上。
## 客观的评分
这些报告中的一些排名属于启发式方法,报告已在页面上对此作出了说明:
- **CVE 影响分数**综合了 CVSS、NVD 引用数量、新闻/媒体标签的引用以及 KEV 状态。它是一种排名辅助工具,并非官方的严重性指标。
- **勒索软件攻击“影响力”**权衡了暴露的 infostealer 记录数量、新闻报道和发布的 incident 更新 —— 反映的是公开信号的体量,而非经过验证的破坏程度。
- **“重要”新闻**指的是多家独立媒体报道了同一个事件(通过共享的 CVE ID 或命名实体进行匹配),而非官方的威胁评级。
- **APT“活动状态”**是以 MITRE 最近更新某个组织 ATT&CK 条目的时间作为代理指标,因为没有免费的订阅源会发布实时的行为者状态。
当某个部分的实时数据完全无法获取时,报告会回退到带有明确标签的静态示例,并醒目地予以说明 —— 它绝不会在不加提示的情况下,将过期数据当作当前数据展示出来。
## 项目结构
```
report-hub/
├── cyber_intel_suite.py # the whole tool, single file
├── api_keys.txt # your keys (git-ignored, optional)
├── cache/ # cached datasets (git-ignored, auto-created)
└── reports/
└── 15JUL26-2033/ # one folder per run
├── index.html
├── cve.html
├── ransomware.html
├── news.html
└── threat_actors.html
```
建议的 `.gitignore`:
```
api_keys.txt
cache/
reports/
__pycache__/
```
## 环境要求
- Python 3.9+
- `requests`, `feedparser`
## 免责声明
Report Hub 是一款用于个人和教育用途的聚合与可视化工具。它不保证上游数据的准确性、完整性或及时性,其启发式分数不应作为安全决策的唯一依据。
标签:Python, 勒索软件监控, 威胁情报, 安全报告生成, 开发者工具, 无后门, 漏洞追踪, 自动化信息收集, 逆向工具