本文为非官方中文翻译,内容以 OpenAI 官方英文文档为准。
官方来源:https://developers.openai.com/codex/security/faq
FAQ
关于 Codex Security 的常见问题
入门
什么是 Codex Security?
软件安全仍然是工程领域中最困难且最重要的问题之一。Codex Security 是一个由 LLM 驱动的安全分析工具包,可检查源代码,并返回带有建议补丁的结构化、排序后的漏洞发现结果。它帮助开发者和安全团队大规模地发现并修复安全问题。
为什么它很重要?
软件是现代工业和社会的基础,而漏洞会带来系统性风险。Codex Security 支持一种防御优先的工作流,能够持续识别可能存在的问题,在可能时对其进行验证,并提出修复方案。这有助于团队在不减慢开发速度的情况下提升安全性。
Codex Security 解决了什么业务问题?
Codex Security 缩短了从疑似问题到已确认、可复现且带有证据和建议补丁的发现结果之间的路径。与仅使用传统扫描器相比,这减少了分诊负担,并降低了误报率。
Codex Security 如何工作?
Codex Security 在一个临时的、隔离的容器中运行分析,并临时克隆目标代码仓库。它执行代码级分析,并返回结构化的发现结果,其中包含描述、文件和位置、严重性、根本原因以及建议的修复措施。
对于包含验证步骤的发现,系统会在同一个沙箱中执行建议的命令或测试,记录成功或失败、退出码、stdout、stderr、测试结果,以及任何生成的 diff 或制品,并将这些输出作为证据附加以供审查。
它会取代 SAST 吗?
不会。Codex Security 是对 SAST 的补充。它增加了基于语义的、由 LLM 驱动的推理和自动化验证,而现有的 SAST 工具仍然提供广泛的确定性覆盖。
功能
分析流水线是什么?
Codex Security 遵循一个分阶段的流水线:
- 分析 为代码仓库构建威胁模型。
- 提交扫描 审查已合并的提交和代码仓库历史,以查找可能存在的问题。
- 验证 尝试在沙箱中复现可能的漏洞,以减少误报。
- 补丁生成 与 Codex 集成以提出补丁,审查者可在打开 PR 之前先进行检查。
它与工程师一起在 GitHub、Codex 和标准审查工作流中协同工作。
支持哪些语言?
Codex Security 与语言无关。实际上,其表现取决于模型对代码仓库所使用语言和框架的推理能力。
扫描完成后我会得到哪些输出?
你将获得按严重性排序的发现结果,其中包含验证状态,以及在可用时提供的建议补丁。发现结果还可能包括崩溃输出、复现证据、调用路径上下文和相关注释。
客户代码是如何隔离的?
每个分析和验证任务都在一个临时的 Codex 容器中运行,并使用会话范围内的工具。制品会被提取出来供审查,任务完成后容器会被销毁。
Codex Security 会自动应用补丁吗?
不会。建议补丁是一种推荐的修复方式。用户可以审查它,并通过发现结果 UI 将其作为 PR 推送到 GitHub,但 Codex Security 不会自动将更改应用到代码仓库。
项目需要先构建后才能扫描吗?
不需要。Codex Security 无需编译步骤,仅根据代码仓库和提交上下文就可以生成发现结果。在自动验证期间,如果这有助于复现问题,它可能会尝试在容器内构建项目。有关环境设置的详细信息,请参阅 Codex cloud environments。
Codex Security 如何减少误报并避免损坏的补丁?
Codex Security 使用两个阶段。首先,模型对可能存在的问题进行排序。然后,自动验证会尝试在一个干净的容器中复现每个问题。成功复现的发现结果会被标记为已验证,这有助于在人类审查之前减少误报。
初始扫描需要多长时间,之后会发生什么?
初始扫描时间取决于代码仓库大小、构建时间,以及有多少发现结果进入验证阶段。对于某些代码仓库,扫描可能需要几个小时。对于更大的代码仓库,可能需要多天。后续扫描通常会更快,因为它们主要关注新的提交和增量变更。
什么是威胁模型?
威胁模型是在扫描时针对代码仓库的安全上下文。它将简明的项目概览与攻击面细节结合起来,例如入口点、信任边界、身份验证假设和高风险组件。有关更多详细信息,请参阅 Improving the threat model。
威胁模型是如何生成的?
Codex Security 会提示模型总结代码仓库架构和安全入口点,对代码仓库类型进行分类,运行专用提取器,并将结果合并为项目概览或威胁模型制品,在整个扫描过程中使用。
它会取代手动安全审查吗?
不会。Codex Security 会加速审查并帮助对发现结果进行排序,但它不能替代代码级验证、可利用性检查或人工威胁评估。
我可以编辑威胁模型吗?
可以。Codex Security 会创建初始威胁模型,你可以随着架构、风险和业务上下文的变化对其进行更新。有关编辑工作流,请参阅 Improving the threat model。
在使用威胁建模之前,我需要先配置扫描吗?
是的。威胁模型指导与扫描方式和扫描内容相关联,因此你需要先配置代码仓库。请参阅 Codex Security setup。
建议补丁包含什么内容?
当能够为该发现结果生成修复方案时,建议补丁会包含带有文件名和行上下文的、最小且可执行的 diff。
补丁会直接修改我的 PR 分支吗?
不会。该工作流会生成一个 diff、补丁文件或建议变更,供维护者和审查者在应用之前进行检查。
验证
什么是自动验证?
自动验证是尝试在隔离容器中复现疑似问题的阶段。它会记录复现是成功还是失败,并捕获日志、命令和相关制品作为证据。
如果验证失败会发生什么?
该发现结果将保持未验证状态。日志和报告仍会记录已尝试的内容,以便工程师重试、进一步调查或调整复现步骤。