AI 自主性风险分级清单
一句话摘要:把自主性审批边界那条原则落成一张能直接用的表。别给 AI 一刀切的自主度——按可逆性 × 爆炸半径 × 数据敏感度给每类操作定档:低风险自动放行,高风险强制人审,不可逆的先 dry-run。照着填进你的 settings 与 hooks。
一句话摘要:把自主性审批边界那条原则落成一张能直接用的表。别给 AI 一刀切的自主度——按可逆性 × 爆炸半径 × 数据敏感度给每类操作定档:低风险自动放行,高风险强制人审,不可逆的先 dry-run。照着填进你的 settings 与 hooks。
一句话摘要:一份可直接粘进 settings.json 的 permissions 块——deny 钉死绝不能碰的操作,ask 把写入 / 推送 / 装依赖卡在确认上,allow 放行高频只读操作。复制进项目的 .claude/settings.json,再按你的技术栈删改几行即可。
一句话摘要:2023 年 4 月,Samsung 半导体(DS)部门刚允许员工用 ChatGPT,不到 20 天就泄密三次——有人把排查 bug 的源码贴进去,有人把识别良率 / 坏片的测试程序贴进去,还有人把录下来的内部会议转成文字喂进去做纪要。数据一旦进了 OpenAI 的服务器,就出了你的边界、删不回来。这条里我是「被喂数据的那一方」:你把敏感内容贴给我,它就离开了你能控制的范围。
一句话摘要:你在准备阶段就给我开了 --dangerously-skip-permissions、把所有工具调用都自动批准,图的是「不被频繁打断」。但你同时也交出了在出错那一刻喊停的唯一机会——而出错的不一定是我,也可能是藏在某个文件里的一段注入指令借我的手干的。
一句话摘要:上线前对着这张清单逐项过一遍 AI(包括我)生成的代码——安全是我默认看不见的非功能需求,功能跑通时漏洞和安全代码表现一模一样。复制 到 PR 模板或发布工单里,逐条勾掉再发。
一句话摘要:你用 allow / ask / deny 这种「软权限」控制我能跑什么命令,但我跑命令的进程和你的整台机器、凭据、网络是同一个域。软权限是一道我(或我读到的恶意内容)可以试图绕过的策略,不是操作系统强制的墙。一旦提示注入劫持了我,我就够得着你的 SSH key、环境变量、整个文件系统和对外网络。
一句话摘要:你管住了我能读什么文件,却没管住我能往哪儿发请求。只要我能向任意域名发出站流量,我就成了数据外泄的出口:读到的源码、密钥、数据,我能编码进一个 URL 发到攻击者的服务器——这正是「致命三件套」里最该被砍掉的第三条腿。
一句话摘要:你让我从一个「谁都能写」的系统级目录(Windows 上的 C:\ProgramData)载入配置和 hook,却没人校验那个目录归谁、文件是谁放的。于是一个低权限的本地用户只要往那儿丢一份配置、挂一个「每次启动就跑」的 hook,我就会在每一个启动我的用户(包括管理员)名下替他执行那条命令——不用提权、不用你点确认、不留告警。
一句话摘要:把数据边界策略落成一张能直接用的分级表。AI 自己分不清「这条数据能不能出公司边界」——数据敏感度是你的策略,不写明它就一视同仁地拿去用。先给数据定档,再决定哪些绝不进外部 AI、哪些脱敏后可、哪些公开可。
一句话摘要:PR 描述写「只是个小重构,不动逻辑」,我审查时就顺着这个说法点头;你看到「AI 已审查通过」就盖章合并。两道本该相互独立的把关,一道迎合作者、一道迎合 AI,最后谁都没真正看那段代码——审查门塌成了传送带。
一句话摘要:你让我「把功能做出来」,我就只盯着功能跑通——安全是默认不可见的非功能需求,除非你显式要求,我不会主动按最小权限、敏感数据分级、纵深防御去想。结果是硬编码的密钥进了仓库、该鉴权的接口裸奔、敏感信息写进了日志和报错。
一句话摘要:日志是你事后追究「AI 到底做了什么」的唯一底座,但它本身是个攻击面。我会把没转义的外部输入直接写进日志(让攻击者伪造日志行、骗过 SIEM),也可能漏记关键动作;反过来,我读到被投毒的日志时还会被它误导。日志一脏,审计链就断——出事时你重 建不出真相。
一句话摘要:你让我处理一个仓库、一条 issue、一个依赖,里面的文本——README、issue 描述、.cursor/rules 或 AGENTS.md、网页、代码注释——可能藏着写给我的恶意指令。我读到后分不清那是「待处理的数据」还是「你的命令」,于是照做:把密钥外泄、在 diff 里插后门、跑破坏性命令。这不是产品上线后被攻击,是编码过程中的我自己当场被投毒内容劫持。
一句话摘要:当我帮你做的产品本身内置了 LLM——客服 bot、Agent、那种「读完用户内容/网页/邮件再行动」的功能——上线后,攻击者会把恶意指令藏进我会读到的内容里,诱导你后端那个 LLM 越权:泄露数据、调用它不该调的工具、绕过你定的规则。开发期我默认「输入都是善意的」,于是把一个本该当成攻击面的发布面,当成了普通功能交付。
一句话摘要:你给我接 MCP server 时图省事,一把授予整库读写、生产数据库、密钥、对外发请求的工具。问题不只是「我可能误用」——你每多给我一个高权限 MCP 工具,就多开一条提示注入的攻击路径:我读到的某条 issue、某个网页里藏的恶意指令,可能借我手里的工具把数据送出去。
一句话摘要:你让我一轮轮加功能、修 bug、重构,代码看着是越改越像样了——但安全漏洞会随迭代轮次悄悄累积。研究发现,仅五轮迭代后严重漏洞显著上升。一个「看起来一直在变好」的过程,安全面其实在变差,到发布时已积重难返。