SuperAPI AI 工具集

ln-625-dependencies-auditor

安全与审计

查看项目

更新于 10-15 13:55

技能介绍

用途

ln-625-dependencies-auditor 是一个依赖与复用审计技能,类型为 L3 Worker。它作为专用工作单元,审计依赖管理、代码复用和安全漏洞。

它主要服务于两条流水线:

  • ln-760 安全设置流水线(vulnerabilities_only 模式)
  • ln-620 代码库审计(full 模式,默认)

审计范围对应类别 7+8(中等优先级),检查过时包、未使用依赖、重复造轮子、CVE 漏洞,并计算合规评分(X/10)。

主要能力

该技能包含 5 项检查:

  1. 过时包(仅 full 模式):通过 npm outdated --json、pip list --outdated --format=json、cargo outdated --format=json 等命令检测。严重级别:HIGH 落后主版本(安全风险)、MEDIUM 落后次版本、LOW 落后补丁版本。建议更新到最新版本并测试破坏性变更。工作量 S-M。

  2. 未使用依赖(仅 full 模式):解析 package.json/requirements.txt,在代码库中搜索 import/require 语句,找出从未被导入的依赖。严重级别:MEDIUM 未使用的生产依赖(增大打包体积)、LOW 未使用的开发依赖。建议从包清单中移除。工作量 S。

  3. 可用特性未使用(仅 full 模式):检查在 Node 18+ 原生 fetch 可用时是否仍使用 axios、Array 方法足够时是否使用 lodash、Date.toLocaleString 足够时是否使用 moment。严重级别:MEDIUM 不必要的依赖(增大打包体积)。建议使用原生替代方案。工作量 M。

  4. 自定义实现(仅 full 模式):搜索自定义排序算法、手写验证(对比 validator.js)、自定义日期解析(对比 date-fns/dayjs)。严重级别:HIGH 自定义加密(安全风险)、MEDIUM 有成熟替代方案的自定义工具。建议替换为成熟库。工作量 M。

  5. 漏洞扫描 CVE/CVSS(full 和 vulnerabilities_only 模式均执行):检测生态系统(npm、NuGet、pip、Go、Bundler、Cargo、Composer),按 references/vulnerability_commands.md 运行审计命令,按 references/cvss_severity_mapping.md 解析结果并映射 CVSS。严重级别:CRITICAL CVSS 9.0-10.0(需立即修复)、HIGH CVSS 7.0-8.9(48 小时内修复)、MEDIUM CVSS 4.0-6.9(1 周内修复)、LOW CVSS 0.1-3.9(方便时修复)。修复分类:补丁更新(x.x.Y)安全自动修复、次版本更新(x.Y.0)通常安全、主版本更新(Y.0.0)需人工审查、无可用修复则记录并监控。建议更新到已修复版本并验证锁文件完整性。工作量 S-L。

使用方式

参数:

  • mode:full / vulnerabilities_only,默认 full。full = 全部 5 项检查,vulnerabilities_only = 仅 CVE 扫描。

输入:

  • 必读:references/audit_worker_core_contract.md
  • 必读:references/mcp_tool_preferences.md 和 references/mcp_integration_patterns.md
  • 接收 contextStore,包含技术栈、包清单路径、代码库根目录、output_dir。
  • 来自 ln-620(codebase-auditor):mode=full(默认)
  • 来自 ln-760(security-setup):mode=vulnerabilities_only

工具偏好:当依赖引用或代码复用证据能实质性改善审计时优先使用 hex-graph;本地代码读取可用时优先使用 hex-line。如果 MCP 不可用、不支持或未索引,则继续使用内置 Read/Grep/Glob/Bash,并在报告中说明回退情况。

工作流程:

  1. 解析 context + mode 参数 + output_dir
  2. 运行依赖检查(Layer 1:审计工具,基于 mode)
  3. 按候选分析上下文(Layer 2):可用特性——读取使用情况,判断 lodash 是仅用于 1 个函数(易替换)还是深度集成(难替换);自定义实现——读取代码,判断是真正重新实现库还是领域特定逻辑;漏洞——读取代码,判断有漏洞的 API 是否实际被项目调用
  4. 收集发现项
  5. 计算评分
  6. 写报告:按 references/templates/audit_worker_report_template.md 在内存中构建完整 Markdown 报告,单次 Write 调用写入 {output_dir}/ln-625--global.md
  7. 返回摘要:向协调器返回最小摘要

输出格式:

  • 必读:references/audit_worker_core_contract.md 和 references/templates/audit_worker_report_template.md
  • 按 references/audit_summary_contract.md 写 JSON 摘要。托管模式下调用方同时传入 runId 和 summaryArtifactPath;独立模式下 worker 按共享契约生成自己的运行范围工件路径。
  • 报告写入 {output_dir}/ln-625--global.md,category: "Dependencies & Reuse",checks: outdated_packages、unused_deps、available_natives、custom_implementations、vulnerability_scan。
  • 当 summaryArtifactPath 缺失时,将独立运行时摘要写入 .hex-skills/runtime-artifacts/runs/{run_id}/evaluation-worker/{worker}--{identifier}.json,并可选在结构化输出中回显同一摘要。
  • 报告路径:.hex-skills/runtime-artifacts/runs/{run_id}/audit-report/ln-625--global.md
  • 评分:X.X/10 | 问题数:N (C:N H:N M:N L:N)

评分算法:必读 references/audit_worker_core_contract.md 和 references/audit_scoring.md。注意:当 mode=vulnerabilities_only 时,仅基于漏洞发现项评分。

适用场景

  • 作为 ln-760 安全设置流水线的一部分,以 vulnerabilities_only 模式执行 CVE 漏洞扫描。
  • 作为 ln-620 代码库审计的一部分,以 full 模式执行完整的依赖与复用审计。
  • 需要检查过时包、未使用依赖、重复造轮子或 CVE 漏洞时使用。

限制

  • 不自动修复:仅报告,绝不修改包清单或锁文件。
  • 模式感知执行:vulnerabilities_only 模式下完全跳过检查 1-4。
  • 工作量现实性:S = <1h,M = 1-4h,L = >4h。
  • 基于 CVSS 的严重级别:严格按 references/cvss_severity_mapping.md 映射漏洞严重级别。
  • 排除项:漏洞严重级别升级时跳过 devDependencies,跳过 vendored/bundled 依赖。

参考文件

  • references/vulnerability_commands.md:各生态系统的审计命令
  • references/ci_integration_guide.md:CI/CD 集成指南
  • references/cvss_severity_mapping.md:CVSS 到严重级别的映射
  • references/audit_output_schema.md:审计输出模式

完成定义

  • contextStore 已解析(包括 mode 参数和 output_dir)
  • 所有适用检查已完成(full 为 5 项,vulnerabilities_only 为 1 项)
  • 发现项已收集,包含严重级别、位置、工作量、修复类型、建议
  • 按 references/audit_scoring.md 计算评分
  • 报告已写入 {output_dir}/ln-625--global.md(原子单次 Write 调用)
  • 摘要已按契约写入

版本:4.0.0 最后更新:2026-02-05