用途
soia-safe-track-vulnerability-intel 把分散的漏洞公告变成可追溯、可去重、可用于决策的安全情报报告。输入可以是时间窗、技术栈、产品清单、SBOM、CVE/GHSA 编号或研究文章;输出是事实、推断和未知项分开的专业报告。
主要能力
- 收录近期公开漏洞:从已启用的权威源拉取、标准化、去重并核验,输出来源覆盖、成功/失败数量、去重后的漏洞清单。
- 跟踪某个技术栈或资产组合:用产品、包名、版本、CPE/PURL 或 SBOM 过滤,输出相关漏洞、受影响条件、资产命中证据与优先级。
- 精读一条漏洞或研究文章:回到厂商/CNA 公告和修复说明交叉核对,输出技术结论、利用前提、检测、修复和未验证项。
- 生成日报、周报或专项报告:按统一报告契约整理情报,输出管理摘要、P0/P1 清单、逐条证据和行动建议。
“所有漏洞”在本技能中指:指定时间窗内,所有已启用且成功返回的来源记录。每份报告必须列明来源、查询时间、失败源和覆盖缺口,禁止宣称覆盖全互联网、未公开漏洞或所有厂商公告。
使用方式
提供以下一种或多种输入:
- 时间窗,例如“最近 24 小时”“2026-07-01 至 2026-07-22”;
- 技术范围,例如 Java/Spring、Linux、Kubernetes 或具体产品;
- 包名、版本、CPE、PURL、依赖清单或 SBOM;
- CVE/GHSA 编号、厂商公告或研究文章 URL;
- 报告保存位置;未指定时只在会话中交付,不写文件。
示例:
使用 soia-safe-track-vulnerability-intel,收集最近 7 天 Java 与 Spring 相关漏洞,对照我的 SBOM 去重核验,输出 P0/P1 专业报告并列出来源覆盖缺口。
依赖与安装
安装本技能:
npx skills add soia-team/soia-open-skills -g -a '*' -s soia-safe-track-vulnerability-intel -y
依赖:
- Python 3.10+(强依赖):使用系统 Python;不能运行收集脚本时,退回 agent 手工核验并明确降级。
- 互联网访问(强依赖):允许访问选定公开情报源;标记来源失败,不把缓存或旧数据称为最新。
- NVD API key(可选增强):使用 NVD 官方机制提供给进程;无 key 时按公开限速运行,减少窗口或分页。
- GitHub 认证(可选增强):使用 gh auth login 或短期进程凭据;无认证时使用公开限额,失败则列为覆盖缺口。
可选非秘密配置:
~/.config/soia-skills/soia-open-skills/soia-safe/soia-safe-track-vulnerability-intel/config.ymlSOIA_SEC_VULNERABILITY_INTEL_CONFIG_FILE=<custom-config-path>
配置只保存启用来源、默认时间窗、报告语言和用户选择的输出位置。API key、Token、Cookie 或授权头不得写入仓库、普通配置、报告或日志。
日志与完成回执
每次运行至少报告:
- 查询窗口、筛选条件和资产清单版本;
- 每个来源的成功、失败、原始数量和失败原因;
- 去重前后数量、关键字段缺失数和人工核验数;
- 创建的报告类型和用户选择的保存位置;
- 未覆盖来源、无法确认的受影响版本和残余风险。
工作流
-
冻结范围与验收证据:先写下时间窗、启用来源、技术/资产过滤条件、报告用途和输出位置。时间窗必须带时区;资产型报告必须记录 SBOM、锁文件或镜像的版本/摘要。没有资产版本时只能生成“通用情报”,不能声称某生产应用受影响。验收至少包括:来源回执、去重统计、每条 P0/P1 的一手证据、报告生成时间和覆盖缺口。
-
收集并标准化:优先运行
python3 scripts/collect_vulnerabilities.py --days 7 --sources nvd,cisa,github。需要过滤时加--keyword <term>;需要保存结构化结果时显式加--output <path>。脚本不指定--output时只写 stdout,不在仓库或当前目录留下状态。来源优先级、接口边界和冲突处理见情报源与证据策略。记录字段以漏洞记录契约为准。 -
去重与事实分层:按 CVE、GHSA 和其他 alias 合并同一漏洞;保留所有来源 URL 和各自更新时间。不得只凭标题相似合并。每个关键结论标明:已确认(厂商/CNA 公告、补丁、官方安全公告或可复核源码直接支持)、推断(由版本、配置、部署和暴露面推导,写出推理链)、未知(缺资产版本、运行配置、补丁状态或验证环境,给出下一步取证方法)。来源冲突时不投票,优先采用更接近漏洞所有者且更新时间更新的证据,同时在报告中保留冲突。
-
评估优先级:CVSS 是严重度输入,不是生产优先级。综合判断是否已被 CISA KEV 或厂商确认在野利用;是否存在公开利用代码(但不下载或执行武器化 PoC);是否命中真实资产与可达入口;是否远程、无需认证、可导致 RCE/提权/数据泄露;是否已有修复、缓解和可回滚部署路径。行动等级:P0(已在野利用,或真实暴露资产满足高影响利用前提,需立即处置)、P1(高影响且资产命中,但利用链、暴露面或在野利用尚未全部确认)、P2(资产可能命中或影响有限,可进入正常修复周期)、P3(未命中资产、仅情报观察或证据不足)。
-
生成专业报告:按专业报告契约输出。管理摘要回答“现在要做什么”;技术部分必须包含受影响/不受影响条件、检测方法、临时缓解、正式修复、验证方法、回滚和来源。引用研究文章时回到厂商公告、CNA、补丁或官方仓库复核。研究文章可以解释利用链,不单独决定受影响版本或修复结论。
-
保存与归档:默认只读、无状态。只有客户明确要求保存时才写入客户选择的目录;不得把报告、SBOM、资产名或内部版本清单写进技能仓库。结构化中间数据放用户缓存目录,临时下载放 OS 临时目录并在成功或失败后清理。
-
交付前验证:所有 P0/P1 至少有一条一手来源;原始数量、去重数量和筛选数量能够对账;每个“受影响”结论都有产品、版本和前置条件;每个修复建议都有验证方式,不把“升级最新版”当作完整方案;失败来源和未知项可见;报告没有凭据、内部绝对路径、武器化载荷或未经授权的扫描结果。
适用场景
- 收录安全漏洞、生成漏洞日报/周报;
- 跟踪 CVE/GHSA/KEV;
- 分析某个漏洞或研究文章;
- 根据 SBOM 或资产清单生成漏洞报告。
限制与安全边界
- 本技能收集和分析公开情报,不扫描、探测或利用生产系统。
- 不运行第三方 PoC,不生成武器化利用链;验证使用厂商测试、最小无害 fixture 或隔离实验环境。
- 不把客户 SBOM、资产名、内部版本、源码片段或报告上传给情报提供方;查询尽量使用包名/CVE 等最小必要信息。
- 发送、发布、写远端工单、修改资产或部署缓解措施需另行授权。
- 默认全程在客户本地运行,不上传 SBOM、资产清单、内部版本或报告;公共情报查询只发送 CVE、GHSA、包名、公开版本等最小必要字段;私有配置只保存非秘密偏好,凭据留在 provider 登录存储或进程环境;结构化缓存必须可重建并放用户缓存目录,临时下载放 OS 临时目录并清理;报告仅在客户要求时写入客户选择的位置,不把运行数据写进技能仓库。
资源
- 收集与标准化:
scripts/collect_vulnerabilities.py - 来源与证据策略:
references/source-policy.md - 结构化记录:
references/vulnerability-record.schema.yml - 专业报告格式:
references/report-contract.md
验证
python3 scripts/collect_vulnerabilities.py --self-test
python3 scripts/collect_vulnerabilities.py --days 1 --sources cisa --max-items 20
第二条需要联网;失败时保留来源错误回执,不把它当成离线测试失败。