关于 ti-ingest
ti-ingest 将威胁情报信号转换为供后续漏洞验证流程使用的范围队列,适用于安全分析人员或定时处理任务。它会补充 NVD 信息、去重并保留原始信号,但不会执行 PoC。
主要功能
- 01读取并校验信号数据
- 02为 CVE 补充 NVD 信息
- 03按资产与 CVE 去重
- 04写入验证范围队列
- 05保留原始信号审计记录
适用场景
- 01将分析人员收到的信号排入验证队列
- 02定时处理收件目录中的信号文件
- 03避免重复排队相同资产与 CVE
- 04标记资产清单外的目标
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ transilienceai/ communitytools --skill ti-ingest安装后在 Claude Code 中输入/ti-ingest确认已加载。
附带文件reference/ingest-schema.md
详细介绍
威胁情报信号摄取
将威胁情报信号转换为已排队的参与范围行,供 Exploitability Validation Run(云 Agent 任务 #3)使用。
触发方式
两种模式:
- 通过提示词调用:分析人员针对手头的
signal.json运行此技能。 - 定时轮询:云 Agent 运行时按 cron(默认每 15 分钟)轮询
{OUTPUT_DIR}/inbox/,并处理找到的所有新信号文件。
工作流
- 读取载荷 —
tools/ti-ingest.py --in <path-or-stdin>。 - 验证架构 — 必需的键:
signal_id、cve(一个或多个)、assets(一个或多个)、claim。可选项:confidence、source、references。 - 使用 NVD 补充信息 — 对载荷中的每个 CVE,运行
tools/nvd-lookup.py <CVE>,并将{score, severity, cwe}附加到该行。 - 去重 — 跳过
(asset, cve)对已存在于queue/scope-*.json中的行。仅当先前行的状态为REJECTED,且威胁情报信号的confidence高于上次尝试时,才重新排队。 - 写入队列行 — 每个
(asset, cve)对对应一个 JSON 文件,路径为queue/scope-{ts}-{asset_id}-{cve}.json。Validation Run 任务会读取这些文件。
输出
{OUTPUT_DIR}/
inbox/
signal-{ts}.json # raw payload, kept for audit
queue/
scope-{ts}-{asset}-{cve}.json
每个范围行:
{
"scope_id": "scope-20260513-asset42-CVE-2024-12345",
"signal_id": "ti-2026-0042",
"asset": {"id": "asset42", "url": "https://app.example.com", "tier": "revenue"},
"cve": "CVE-2024-12345",
"nvd": {"score": 9.8, "severity": "CRITICAL", "cwe": "CWE-79"},
"claim": "Reflected XSS via search parameter",
"confidence": "high",
"source": "vendor-advisory",
"references": ["https://..."],
"queued_at": "2026-05-13T10:00:00Z",
"status": "queued"
}
规则
- 幂等。 对同一载荷重复运行不得生成重复的队列行。
- 不执行。 摄取过程绝不运行 PoC,只为下游任务排入范围。
- 审计追踪。 在进行任何转换之前,始终将原始载荷复制到
inbox/。 - NVD 查询失败不阻塞。 如果
nvd-lookup出错,则写入nvd: null和nvd_error: "..."的行;不得丢弃信号。 - 资产必须在资产清单中。 将
asset.id与artifacts/org-surface.json(来自 Org Recon Refresh 任务)交叉核对。未知资产仍需生成一行,但须标记unknown_asset: true,以便验证器跳过它们。
参考资料
reference/ingest-schema.md— 完整的输入/输出 JSON 架构。
评论
支持 Markdown