115 行
6.5 KiB
Markdown
115 行
6.5 KiB
Markdown
# 漏洞情报、订阅与自动入库
|
|
|
|
> `LAB ONLY` | `AUTHORIZED TARGETS ONLY` | `OFFICIAL-FIRST`
|
|
|
|
本目录是主流开源 Web 系统安全更新与漏洞入库的控制平面。它不直接给出“生产推荐”,而是把官方公告、生态权威数据库和高质量研究映射到授权实验场景、registry 记录和重点案例页。
|
|
|
|
## 目录职责
|
|
|
|
- [source-map.yaml](/Users/x/websafe/08-threat-intel/source-map.yaml)
|
|
- 全库唯一真值配置,定义系统范围、覆盖策略、source adapter、输出目录和 secure-code 主题。
|
|
- [repro-map.yaml](/Users/x/websafe/08-threat-intel/repro-map.yaml)
|
|
- 系统到 repro family、浏览器要求、seed 策略、日志策略和报告模板的映射。
|
|
- [repro-profiles/](/Users/x/websafe/08-threat-intel/repro-profiles)
|
|
- advisory 级和 family 级复现描述,供 `scripts/lab/main.py` 路由执行。
|
|
- [registry/advisories/](/Users/x/websafe/08-threat-intel/registry/advisories)
|
|
- canonical advisory 级 JSON 记录,是“所有具体案例”的正式载体。
|
|
- [registry/systems/](/Users/x/websafe/08-threat-intel/registry/systems)
|
|
- 每个系统的统计索引、最近更新时间和案例列表。
|
|
- [registry/runs/](/Users/x/websafe/08-threat-intel/registry/runs)
|
|
- 每次本地验证的 run bundle 元数据真值,用于反向回填案例页和 dashboard。
|
|
- [registry/triage/](/Users/x/websafe/08-threat-intel/registry/triage)
|
|
- 无法自动确定版本、来源冲突或只有弱来源支持的候选。
|
|
- [generated/coverage-matrix.md](/Users/x/websafe/08-threat-intel/generated/coverage-matrix.md)
|
|
- 全局覆盖矩阵,展示每个系统的 tier、registry 数、Markdown 数和自动同步状态。
|
|
- [generated/latest-ingest.md](/Users/x/websafe/08-threat-intel/generated/latest-ingest.md)
|
|
- 最近一次同步摘要。
|
|
- [generated/dashboard/](/Users/x/websafe/08-threat-intel/generated/dashboard)
|
|
- 本地 Web 看板静态产物,展示系统覆盖、状态分布、失败 blocker 和 run bundle 链接。
|
|
- [registry/source-confidence.md](/Users/x/websafe/08-threat-intel/registry/source-confidence.md)
|
|
- `official`、`ecosystem-authority`、`research`、`triage-only` 的入库规则。
|
|
|
|
## Source Policy
|
|
|
|
自动化入库强制分层:
|
|
|
|
- `official`
|
|
- 厂商公告、官方 repo advisories、官方 RSS/API/JSON。
|
|
- `ecosystem-authority`
|
|
- Wordfence、Patchstack、WPScan、Sansec、Friends Of Presta、GitLab Advisory DB 等生态权威库。
|
|
- `research`
|
|
- PortSwigger、Project Zero、Orange Tsai、ProjectDiscovery 等高质量研究。
|
|
- `triage-only`
|
|
- 结构漂移、版本不清、来源冲突或只有单篇研究支撑的候选。
|
|
|
|
默认规则:
|
|
|
|
- 只有 `official` 和 `ecosystem-authority` 可以直接形成 registry 正式记录。
|
|
- `research` 只能补充背景、利用链、实验映射,不能单独确认为正式案例。
|
|
- 没有影响版本、修复版本或可信来源的条目进入 `triage/`,不计入“完成覆盖”。
|
|
|
|
## 自动化命令
|
|
|
|
```bash
|
|
python3 /Users/x/websafe/scripts/intel/main.py render
|
|
python3 /Users/x/websafe/scripts/intel/main.py validate
|
|
python3 /Users/x/websafe/scripts/intel/main.py hotlane
|
|
python3 /Users/x/websafe/scripts/intel/main.py ingest --since last-success
|
|
python3 /Users/x/websafe/scripts/intel/main.py reconcile
|
|
python3 /Users/x/websafe/scripts/intel/main.py backfill --tier rolling-24m --dry-run
|
|
python3 /Users/x/websafe/scripts/intel/main.py ingest --since 365d --system nextjs --system vite
|
|
python3 /Users/x/websafe/scripts/intel/main.py open-pr --dry-run
|
|
python3 /Users/x/websafe/scripts/lab/main.py validate
|
|
python3 /Users/x/websafe/scripts/lab/main.py run-case --case gitea--CVE-2025-68939
|
|
python3 /Users/x/websafe/scripts/lab/main.py run-case --case nextjs--CVE-2025-29927 --dry-run
|
|
python3 /Users/x/websafe/scripts/lab/main.py run-batch --only-hotlane --limit 10
|
|
python3 /Users/x/websafe/scripts/lab/main.py serve-dashboard --port 8734
|
|
```
|
|
|
|
可选环境变量:
|
|
|
|
- `GITHUB_TOKEN`
|
|
- GitHub Global Advisories 在未认证状态下很容易碰到 rate limit;配置后能提高配额。
|
|
- `NVD_API_KEY`
|
|
- 可选,用于提高 NVD 查询配额和稳定性。
|
|
- `WEBSAFE_HTTP_CACHE_TTL_SECONDS`
|
|
- 可选,控制 HTML / RSS / Atom / JSON / KEV GET 抓取缓存秒数;默认 `900`,用于降低 probe 与 ingest 的重复网络开销。
|
|
|
|
本机私有环境文件:
|
|
|
|
- 默认自动加载 `$HOME/.config/websafe/env.sh`
|
|
- 适合放 `NVD_API_KEY`、`GITEA_TOKEN` 这类不应提交到仓库的本地密钥
|
|
- `scripts/sync-gitea.sh`、`scripts/intel/run-hourly.sh`、`scripts/intel/run-nightly.sh`、`scripts/intel/run-weekly-reconcile.sh` 会自动 source 这个文件
|
|
|
|
运行时建议:
|
|
|
|
- 使用独立虚拟环境安装 [requirements-intel.txt](/Users/x/websafe/requirements-intel.txt)。
|
|
- 浏览器类 case 需要执行 `python3 -m playwright install chromium` 安装浏览器运行时。
|
|
- 当前机器上的 Python 3.9 + LibreSSL 对部分 HTTPS 源可能出现 `SSLError`;`urllib3<2` 已写入依赖约束以降低兼容性问题。
|
|
|
|
对应的本机 cron 入口:
|
|
|
|
- [run-hourly.sh](/Users/x/websafe/scripts/intel/run-hourly.sh)
|
|
- 处理 KEV / 在野利用 / 极高优先级更新,日志写入 `08-threat-intel/generated/logs/`
|
|
- [run-nightly.sh](/Users/x/websafe/scripts/intel/run-nightly.sh)
|
|
- 处理常规增量同步
|
|
- [run-weekly-reconcile.sh](/Users/x/websafe/scripts/intel/run-weekly-reconcile.sh)
|
|
- 回看最近 30 天,重新对齐 NVD / OSV / vendor 更新
|
|
|
|
## 入口文档
|
|
|
|
- [subscription-catalog.md](/Users/x/websafe/08-threat-intel/subscription-catalog.md)
|
|
- [registry/source-confidence.md](/Users/x/websafe/08-threat-intel/registry/source-confidence.md)
|
|
- [intake-and-severity-rules.md](/Users/x/websafe/08-threat-intel/intake-and-severity-rules.md)
|
|
- [case-intake-template.md](/Users/x/websafe/08-threat-intel/case-intake-template.md)
|
|
- [config-examples/README.md](/Users/x/websafe/08-threat-intel/config-examples/README.md)
|
|
- [generated/dashboard/index.html](/Users/x/websafe/08-threat-intel/generated/dashboard/index.html)
|
|
- [registry/runs](/Users/x/websafe/08-threat-intel/registry/runs)
|
|
|
|
## 实验边界
|
|
|
|
- 所有案例、source adapter 和索引页仅适用于 `lab-local`、`lab-public`、`authorized-third-party`。
|
|
- 允许公网可达目标,但前提必须是资产归属明确,或已获得明确授权。
|
|
- 不面向未授权互联网资产,不面向公共知名网站,不作为泛化枚举或生产推荐语境。
|
|
- 前端 / 浏览器类 advisory 若没有浏览器层回放与证据,只能停留在 `triage-manual` 或 `suspected`,不得宣称完成实证。
|