为 AI 开发工作流建立威胁模型
已完成梳理资产、信任边界和可能故障。为具体开发场景选择控制措施和测试。
检验理解威胁登记表只写了“AI 风险:高”,没有其他细节。首先应补充什么?完成练习
你将学到什么
- 绘制涵盖应用之外环节的开发系统图。
- 用参与者、操作和后果描述具体威胁。
- 将威胁转化为有负责人承担的控制措施和验证步骤。
选择范围有限的场景
从一套容易理解的工作流开始。例如,智能体读取 issue、修改代码仓库、运行测试并创建 pull request。纳入支持这些操作的系统。
列出重要资产:源代码、客户信息、凭据、发布制品和服务可用性。明确各自负责人,再识别谁或哪些系统可以读取、修改每项资产。
OWASP 建议先为系统建模,再识别威胁、选择应对措施并验证结果。尽早使用这种方法,并随系统变化更新。参见威胁建模指南。
绘制信任边界
对于这个虚构的 issue 到 PR 工作流,画出以下连接:
Issue → agent → repository → test runner → artifact store → deployment
加入模型提供方和秘密信息存储系统。标出哪些内容来自可信度较低的来源。标出身份在哪里获得新的能力,例如从读取 issue 转向写入代码仓库文件。
仅有应用图不能展示完整的开发风险。生产数据库可以是私有的,而 CI 任务仍可能暴露凭据。如果临时环境和支持人员访问影响该场景,也应纳入。
写出具体失败路径
避免“AI 可能不安全”这类条目。写明参与者、操作、受影响资产和后果,也写明场景发生所需的条件。
| 场景 | 应检查的控制措施 | 应要求的证据 |
|---|---|---|
| Issue 文本将智能体引向无关代码仓库 | 代码仓库和工具范围 | 对任务代码仓库之外的写入被拒绝 |
| 不可信测试任务读取生产凭据 | 任务身份与秘密信息隔离 | 工作流检查和隔离环境中的拒绝测试 |
| 部署使用了与已审查制品不同的制品 | 制品身份与提升到下一环境的规则 | 批准记录和部署记录中的摘要值一致 |
| 迁移失败导致服务无法恢复 | 兼容性与恢复流程 | 使用有代表性的虚构数据完成恢复演练 |
这些只是示例,不是完整威胁清单。哪些场景相关,取决于你的数据、工具和运行环境。
选择应对措施并指定负责人
根据后果和可信的风险暴露确定优先级。不要用数字评分装作拥有实际并不具备的精度。记录不确定性,以及哪些证据可能改变优先级。
应对方式可以是移除高风险能力、缩小范围、增加控制措施,或接受明确定义的剩余风险。接受风险需要获授权的负责人和理由,不能只凭智能体未经审查的结论。
将选定的应对措施转化为工作,并设置可观察的验收条件。“改进智能体安全”难以验证。“测试任务无法读取生产秘密信息”则明确了一条可检查的边界。
重大变更后重新审查
新的连接器、模型路由、环境或权限都可能改变威胁模型。将这些变化列入复核触发条件,也利用事件和失败评估来更新假设。
尝试风险审查练习,改变场景中的数据、权限、用户范围和恢复条件。结果会提示需要考虑的问题,但不能代替针对具体系统的威胁模型,也不会授权执行工作。
完成练习
打开风险审查练习。选择内部数据、分支写入、外部用户和恢复困难。选择结果中的一项关注事项。写出参与者、入口、受影响资产、后果、控制措施、拒绝测试、负责人和复核触发条件。
下载工作表(Markdown)取消勾选将删除此浏览器保存的全部进度。
进度保存在此浏览器中。无需账户,不追踪使用情况。