dhruvgupta03-spec/threatwire

GitHub: dhruvgupta03-spec/threatwire

一个纯 Python 构建的主动式威胁情报新闻聚合器,自动从多家网络安全媒体抓取报道并按严重程度和时效性排名,生成循环更新的静态头版页面。

Stars: 0 | Forks: 0

# THREATWIRE **一个主动式威胁情报新闻聚合器,以头版形式呈现。** 从多家网络安全新闻源抓取最新报道,按严重程度和时效性进行排名, 并生成一份《华尔街日报》(Wall Street Journal)风格的特刊,循环更新以保持内容最新。 使用纯 Python(无框架)构建 → 静态站点 → 在 GitHub Pages 上提供免费的公共托管,并支持绑定你自己的域名。 ## 循环工程 ThreatWire 包含三个循环,遵循循环工程模型(目标 goal → 上下文 context → 执行 act → 验证 verify → 状态 state → 停止 stop): | 循环 | 文件 | 职责 | |------|------|------| | **1 · Fetch** | `src/fetch.py` | 从每个数据源拉取最新条目并将其标准化 | | **2 · Process** | `src/process.py` | 去重、标记主题、评估严重程度、按严重程度 + 时效性排名 | | **3 · Render** | `src/render.py` | 构建华尔街日报(WSJ)风格的 `site/index.html` | `src/build.py` 只运行**一**次迭代(fetch → process → render),并带有 **验证关卡**(如果 fetch 为空则构建失败,因此绝不会发布空白版本)和 **状态**管理(每个版本都会保存到 `data/latest.json`)。 **触发器**是外部的:本地使用 `src/loop.py`,在生产环境中则是 GitHub Actions cron(`.github/workflows/build.yml`,每 15 分钟运行一次)。 ## 在本地运行 ``` python3 -m venv .venv ./.venv/bin/pip install -r requirements.txt # 一次构建 ./.venv/bin/python -m src.build open site/index.html # 或者运行 live dev loop(每 5 分钟重新构建一次) ./.venv/bin/python -m src.loop 5 ``` ## 配置数据源 编辑 `src/config.py` —— 在 `FEEDS` 中添加/移除订阅源,调整 `SEVERITY` / `TOPICS` 关键词,或者修改 `MAX_ITEMS` / `MAX_AGE_DAYS`。 ## 部署(公共站点 + 自定义域名) 1. 将此仓库推送到 GitHub。 2. 进入仓库的 **Settings → Pages → Source: GitHub Actions**。 3. 工作流会在每次推送时以及每 15 分钟自动构建并部署。 4. 在 **Settings → Pages → Custom domain** 下添加你的域名,然后将 DNS 记录指向 GitHub Pages。在 `src/config.py` 中设置 `SITE["base_url"]` 使其与之匹配。 ## 数据来源 新闻标题均链接至原始发布者;版权归各媒体所有。 目前包含的通讯社:Krebs on Security、BleepingComputer、The Hacker News、Dark Reading、 SANS ISC、CISA、The Record、Schneier on Security、Google Security、Microsoft Security。
标签:GitHub Actions, Python, 威胁情报, 开发者工具, 新闻聚合器, 无后门, 网络调试, 自动化, 自动笔记, 逆向工具, 静态站点