用途
Secure Dependency Health Check 用于帮助开发者与 AI 智能体在选择开源依赖包时做出更明智的决策,通过评估安全健康状况、漏洞历史、流行度、社区与维护状态来降低供应链风险。核心原则是:明智地选择依赖,以最小化供应链风险。
主要能力
该技能围绕 snyk_package_health_check 工具展开,对候选包返回以下关键字段:
- overall_rating:"Healthy" 或 "Review recommended",作为主要评估指标
- security:按严重级别(critical/high/medium/low)统计漏洞数量以及安全评级
- maintenance:生命周期状态、最新发布日期、is_archived 标志以及维护评级("Healthy"、"Sustainable" 或 "Inactive")
- popularity:下载量、依赖包/仓库数量以及流行度评级
- community:star 数、社区文件是否存在以及评级("Active" 或 "Sustainable")
- latest_version:最新发布版本
- recommendation:可读的整体评估摘要
使用方式
整体流程分为四个阶段:
- 理解需求:确认功能需求,若用户已提供候选包则记录包名与版本并识别包生态;若需建议则搜索满足需求的包,并按流行度/相关性选出 2-4 个候选。
- 安全与健康分析:对每个候选包以包名、版本和生态(npm、pypi、maven、nuget 或 golang)运行 snyk_package_health_check,提取整体评级、安全评级与漏洞分布、维护评级与生命周期状态、流行度与社区评级。
- 生成推荐:输出对比表(如整体评级、安全评级、Critical/High CVE 数量、维护状态、最近发布、下载量、流行度等),并给出推荐结论、理由与权衡,推荐时使用最新版本以锁定精确版本。
- 集成指引:建议安装后运行 snyk_sca_scan 验证整个依赖树,并建议提交锁文件、开启漏洞通知、定期检查安全更新。
适用场景
- 为某个功能需求挑选开源包时进行安全与健康度对比
- 在多个候选依赖之间权衡安全风险与维护活跃度
- 安装新依赖后进行依赖树扫描与后续监控
限制与排除条件
出现以下情况时,无论整体评级如何都直接排除该包:存在 critical 或 high 严重漏洞;维护评级为 "Inactive" 或包已归档(is_archived: true);三年以上无发布(依据 latest_release_published_at);已知恶意包(供应链攻击);存在仿冒名称(与流行包名称相似)等指标。
若没有任何包满足安全阈值,该技能会输出“无安全选项可用”的警告,并列出每个包失败原因与替代方案(自行实现、fork 修复、等待更新、在记录理由与监控下接受风险)。若工具返回数据不足(例如提示 Snyk 缺少该包信息),会重试一次;仍无数据则回退到人工调研,并说明工具无法评估该包。约束包括:绝不推荐存在已知漏洞利用的包、推荐时始终指定精确版本、无法完整分析时披露局限、用户提供新约束时更新推荐。