概览
使用 Codex 将公开的软件包或供应链安全公告转化为只读审计,然后在不运行不受信任代码的情况下检查清单文件、锁文件、CI 工作流和脚本。
适合场景
- 需要响应公开软件包或供应链安全公告的工程和安全团队。
- 在更改依赖项之前,需要检查锁文件、脚本、CI 权限和缓存的维护者。
- 需要由 Codex 收集证据、且不安装软件包或运行不受信任代码的事件复盘。
构建事件审计
帮助我审计这个仓库是否受到这条公开软件包安全公告的影响:[advisory URL]。 除非我明确批准修复步骤,否则请保持只读。 首先,请总结: - 受影响的软件包和版本范围 - 权威来源与更广泛的报告之间的区别 - 哪些证据可以证明该仓库受到了影响 - 哪些证据可以排除这种影响 然后检查: - 软件包清单文件和锁文件 - CI 工作流和权限 - install、build 和 postinstall 脚本 - 如果相关,检查随仓库提供的制品、容器或生成的 bundle - 如果该公告涉及 CI 或发布,检查缓存或令牌暴露路径 返回: - 证据状态:已确认受影响、需要验证,或已排除 - 严重性和影响范围说明 - 每条与仓库相关结论对应的文件引用 - 注意事项和建议的后续步骤 不要安装软件包、运行生命周期脚本、构建项目、执行不受信任代码、轮换凭据或清理文件,除非我明确批准该步骤。
建议推理强度:高
从安全的审计计划开始
当依赖或供应链事件快速发展时,最有用的首个产出并不是仓促打补丁,而是一份清晰的审计计划:发生了什么变化、哪些软件包或工作流可能受到影响,以及哪些证据可以证明你的仓库受到了影响。
使用 Codex 在安装、构建、测试或运行任何内容之前,先将公告转化为一份保守的只读检查清单。
保持首次检查为只读
- 将公开公告、事件报告或受影响软件包列表提供给 Codex。
- 要求它区分权威来源和更广泛的评论性内容。
- 让它定义哪些证据可以证明或排除仓库受影响。
- 让它检查清单文件、锁文件、CI 工作流、脚本和相关仓库文件。
- 要求它按证据状态、严重性和建议的下一步对发现进行分组。
对于软件包事件,在你明确公告影响范围之前,应避免运行 install、build、test、import 或生命周期命令。Codex 可以在不执行不受信任代码的情况下搜索锁文件和工作流。
将证据状态与严重性分开报告
一份有用的审计结果应同时显示问题可能有多严重,以及证据有多充分:
<p> <strong>已确认受影响:</strong>锁文件在生产依赖路径中包含受影响的软件包版本。 </p> <p> <strong>需要验证:</strong>某个 CI 作业具有发布权限,但该工作流似乎并未直接安装受影响的软件包。 </p> <p> <strong>已排除:</strong>该软件包名称仅出现在文档中,并不存在于清单文件或锁文件里。 </p> <p> <strong>下一步:</strong>在采取任何破坏性操作之前,先审查拟议的依赖更新和令牌轮换计划。 </p>
完成只读检查后,你可以让 Codex 准备修复 PR、更新 CI 权限,或撰写后续事件说明。请将这些操作与初始审计分开。
