用途:在排查依赖安全通告、代码扫描告警或已提交密钥时使用。核心思路是按可达性而非 CVSS 排序:能从未认证网络入口调用到脆弱符号的为“可达—暴露”,仅内部或 CLI 可达为“可达—内部”,已安装但从不调用为“存在但不可达”,devDependencies 为“仅开发”,被间接引入且未调用为“传递依赖不可达”。要求打印调用路径使排序可审计;无法构造路径时应写“no path found”,而非“probably unreachable”。
已提交密钥:推送到远端的密钥即已泄露,删除提交无法撤销泄露。先吊销并在源头轮换,再移除并改用环境变量或密钥库引用;只有在明确批准且完成吊销后才考虑重写历史,并清楚会使所有开放 PR 和克隆失效。还要审计暴露窗口期内该凭据的活动。任何时候不得打印密钥值,只记录类型、文件、行号和首次出现的提交。
降低误报:明显假值的测试夹具、.env.example 占位符、看似密钥的公开标识符、哈希或 UUID 造成的高熵值;不确定的发现标为“possible”并说明原因。
代码扫描告警:尝试为每条告警构造具体利用路径,只有记录理由后才可判为误报,静默忽略与未处理无异。
维护风险:超过 24 个月未发布、单一维护者无组织、近期维护者变更、存在 postinstall 安装脚本、作者弃用、高扇入的传递依赖均为信号;近期维护者变更加安装脚本属于安全发现。
来源验证:制品是否由 CI 构建并附证明、第三方 action 是否固定到提交 SHA、注册表凭据是否最小权限。不要公开未修复漏洞细节,不要无记录地压制告警,不要未经审查自动合并会改变行为的安全修复。