该技能用于处理依赖漏洞与供应链风险,触发场景包括审阅 Dependabot 告警、检查易受攻击的依赖、审计第三方包及评估供应链风险。
用途与流程:第一步收集告警,使用 gh api 查询仓库的 Dependabot 告警,可按 severity 与 state 过滤,并获取单个告警详情。第二步评估影响,判断漏洞代码路径是否可达、是直接还是传递依赖、CVSS 分数与利用情况、受影响版本与修复版本。第三步决定行动:有小版本修复则立即更新;大版本需评估破坏性变更并排期;无修复但代码可达则实施绕过或替换依赖;不可达则记录监控并设定复查日期;传递依赖漏洞可用 overrides/resolutions 固定修复版本。
传递依赖:直接依赖可见,传递依赖常不可见却同样可被利用。可用 npm ls --all、npm ls <包名>、dotnet list package --vulnerable --include-transitive 等命令排查。
依赖健康评估:从维护活跃度、漏洞历史、维护者数量、社区采用、许可证兼容性、安全实践等方面判断是否采用或保留某依赖。
Aikido 集成:Aikido 是 Bitwarden 的容器与开源依赖扫描器,可连续扫描仓库,将开源(SCA)与容器发现与其他结果汇总。使用 aikido:issues 技能查询,将 issue_types 设为 open_source 或 docker_container。cloud_instance 属于独立类型,不在本范围。若被提供了 Aikido 证据则使用,否则查询 aikido:issues;不可用时应停止并告知用户,而非无数据继续。每个发现包含标题、类型、严重度及标签、修复指引和 SLA 截止日期,可用 out_of_sla 聚焦逾期项,并按 triaging-security-findings 流程处理。
平台指引:NuGet 用 dotnet list package --vulnerable 及 --include-transitive、--outdated;注意 .NET Framework 与 .NET Core 漏洞面不同,优先 PackageReference 与 Directory.Packages.props 集中管理版本。npm 用 npm audit、npm audit fix、npm audit fix --force、npm ci;package-lock.json 必须提交并保持同步,可用 package.json 的 overrides 固定传递版本,警惕依赖的 postinstall 脚本执行任意代码。
SBOM:软件物料清单是组件清单,含包名、版本、许可证与关系,标准格式为 SPDX、CycloneDX,GitHub 会自动生成依赖图供 Dependabot 告警。
关键规则:不得无书面理由忽略 critical/high 告警;优先更新而非固定版本;评估完整传递树;采用新依赖前按健康标准审查;始终提交锁文件,在 CI/CD 中使用 npm ci 而非 npm install。具体价格、支持平台等信息暂未提供。