文件

漏洞情报、订阅与自动入库

LAB ONLY | AUTHORIZED TARGETS ONLY | OFFICIAL-FIRST

本目录是主流开源 Web 系统安全更新与漏洞入库的控制平面。它不直接给出“生产推荐”,而是把官方公告、生态权威数据库和高质量研究映射到授权实验场景、registry 记录和重点案例页。

目录职责

  • source-map.yaml
    • 全库唯一真值配置,定义系统范围、覆盖策略、source adapter、输出目录和 secure-code 主题。
  • repro-map.yaml
    • 系统到 repro family、浏览器要求、seed 策略、日志策略和报告模板的映射。
  • repro-profiles/
    • advisory 级和 family 级复现描述,供 scripts/lab/main.py 路由执行。
  • registry/advisories/
    • canonical advisory 级 JSON 记录,是“所有具体案例”的正式载体。
  • registry/systems/
    • 每个系统的统计索引、最近更新时间和案例列表。
  • registry/entities/
    • 分层实体真值层,包含系统、repo、plugin、package 等已编目对象及其最新版本快照。
  • registry/versions/
    • 安全相关版本历史真值层,仅保存 affected / fixed / patched / latest-secure 直接相关版本。
  • registry/runs/
    • 每次本地验证的 run bundle 元数据真值,用于反向回填案例页和 dashboard。
  • registry/triage/
    • 无法自动确定版本、来源冲突或只有弱来源支持的候选。
  • generated/coverage-matrix.md
    • 全局覆盖矩阵,展示每个系统的 tier、registry 数、Markdown 数和自动同步状态。
  • generated/latest-ingest.md
    • 最近一次同步摘要。
  • generated/dashboard/
    • 本地 Web 看板静态产物,展示系统覆盖、状态分布、失败 blocker 和 run bundle 链接。
  • registry/source-confidence.md
    • officialecosystem-authorityresearchtriage-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
    • 结构漂移、版本不清、来源冲突或只有单篇研究支撑的候选。

默认规则:

  • 只有 officialecosystem-authority 可以直接形成 registry 正式记录。
  • research 只能补充背景、利用链、实验映射,不能单独确认为正式案例。
  • 没有影响版本、修复版本或可信来源的条目进入 triage/,不计入“完成覆盖”。

自动化命令

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 discover-entities
python3 /Users/x/websafe/scripts/intel/main.py sync-versions
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 monitor
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_KEYGITEA_TOKEN 这类不应提交到仓库的本地密钥
  • scripts/sync-gitea.shscripts/intel/run-hourly.shscripts/intel/run-nightly.shscripts/intel/run-weekly-reconcile.sh 会自动 source 这个文件

运行时建议:

  • 使用独立虚拟环境安装 requirements-intel.txt
  • 浏览器类 case 需要执行 python3 -m playwright install chromium 安装浏览器运行时。
  • 当前机器上的 Python 3.9 + LibreSSL 对部分 HTTPS 源可能出现 SSLErrorurllib3<2 已写入依赖约束以降低兼容性问题。

对应的本机 cron 入口:

  • run-hourly.sh
    • 处理 KEV / 在野利用 / 极高优先级更新,并追加轻量 sync-versions 与 hotlane 实证队列,日志写入 08-threat-intel/generated/logs/
  • run-nightly.sh
    • 处理 discover-entities -> sync-versions -> ingest --since last-success -> lab run-batch
  • run-weekly-reconcile.sh
    • 回看最近 30 天,执行深度 sync-versions --deep,并重跑失败/排队的 lab 任务

入口文档

实验边界

  • 所有案例、source adapter 和索引页仅适用于 lab-locallab-publicauthorized-third-party
  • 允许公网可达目标,但前提必须是资产归属明确,或已获得明确授权。
  • 不面向未授权互联网资产,不面向公共知名网站,不作为泛化枚举或生产推荐语境。
  • 前端 / 浏览器类 advisory 若没有浏览器层回放与证据,只能停留在 triage-manualsuspected,不得宣称完成实证。