ARTICLE · 1185647
你的 AI 编程工具权限,可能正在裸奔:五道防线,二十分钟配完
权限全开,交付最快?
五道防线,二十分钟
把门配上
防护实操 · 事故拆解 · 自查清单

程序员的 AI 工具实测
📦 3 Parts + Conclusion
👉 滑动
PART 01
新的攻击面
十月行情
PART 02
五道防线
今天能配
PART 03
自查清单
二十分钟
PART ///
写在最后
能力层设防
你信任它读到的每一个字,它替你执行每一条命令——中间没有锁。
上一篇写 AI 代理翻车实录的时候,我在结尾埋了个钩子:评论里问防护怎么配的读者,这篇兑现。
先看背景。九月底,国家互联网应急中心(CNCERT)发布了一份 2026 年人工智能大模型安全众测活动的通报,里面有个细节值得每个用 AI 工具的开发者细看:攻击者通过提示操纵、上下文投毒,就能诱导智能体生成未经核验的脚本并直接运行。通报的建议里反复出现一个词——最小权限。

— AI 的手伸向凭证,中间得有一道边界
OWASP 的 2026 年追踪数据更直白:针对生产 AI 系统的提示注入攻击同比上涨 340%,是它所有追踪类别里涨得最快的;被跟踪的 53 个智能体项目里,28 个是编程代理。另一份企业调查显示,88% 的组织在过去一年里报告过确认或疑似的 AI 智能体安全事件。
好消息是,这件事不需要你懂密码学,二十分钟能把大半防线配上。先看清楚攻击面长什么样。
01
PART
新的攻击面:它读到的每个字都可能是命令
NEW ATTACK SURFACE
1. 白名单也可能是洞
四月披露的 CVE-2026-22708(Cursor):Auto-Run 模式允许你把常用命令加白名单免审批,但 shell 内建命令 export、declare 这类被隐式信任、从不上名单。任何能把文本送到 AI 面前的东西——一个 README、一个依赖文件、一条 issue——都能借它们污染环境变量,等你下次批准一条你审查过的普通命令时,跑的已经是攻击者的代码。
白名单没配错,它就是这么设计的。洞在「什么算一条命令」这个没人细想的边界上。

— 藏在代码注释里的,不一定是注释
2. 一条 issue 就能劫持代理
同一时期,「Comment and Control」攻击得到确认:藏在 GitHub issue、PR 描述和代码注释里的恶意指令,能驱动 AI 编程助手执行任意命令、窃取凭证、改文件。Claude Code 的安全审查代理、Gemini CLI Action、Copilot Coding Agent 都在受影响之列,Anthropic 给的定级是critical。GitHub 的说法是「已知架构限制」——意思是修不掉,只能防。
3. 供应链连防护组件都不放过
五月,PyPI 上的防护库 guardrails-ai,v0.10.1 版本被投毒——专门给 AI 加护栏的库,自己的护栏被悄悄拆了。还有更针对个人的:伪造的「求职技能测试」仓库里埋一个 .vscode/tasks.json,开发者一打开项目就自动执行,一个季度感染 2726 台开发者机器,卷走 26584 条加密钱包记录,损失约 1200 万美元。
这些事有个共同点:出事的时候,工具本身没坏,是「它读到的内容」和「它能做的动作」之间,没有边界。
02
PART
五道防线,今天就能配
FIVE LINES OF DEFENSE
防线 1:把权限收到任务的最小范围
所有通报和事故报告里出现频率最高的一条:61% 的智能体安全事件和过度授权有关。具体做法:仓库里的项目级 AI 配置(比如 permissions.allow 这类授权字段)移到仓库之外的用户级配置——仓库里谁都能改的配置,等于别人替你授权;凭证一律用短时效、窄作用域的 token,下午两点被劫持的会话,三点之后凭证应该已经失效;删除、覆盖、生产部署类命令直接 deny,而不是靠提示词叮嘱它小心。

— 钥匙串缩到多小,事故就能缩到多小
防线 2:给 MCP、插件、技能建台账
MCP 服务器不是一条提示,是一个完整的代码执行边界——Cursor 那次远程代码执行就是恶意 MCP 描述符触发的。把团队在用的每个 MCP 服务器、插件、技能列成清单:名称、版本、来源、权限;新装之前过一遍源码和发布者验证;版本固定锁死;退役的及时移除。你无法治理一份你没列过的清单。
防线 3:沙箱里跑,断掉不必要的外网出口
docker run --rm -it \
--network none \
--read-only \
--tmpfs /tmp \
-v "$PWD:/workspace:rw" \
-w /workspace \
my-agent-image
绝大多数外泄都需要一次出网请求才能完成,--network none 这一行是大多数团队跳过、却拦住大多数外泄链路的配置——注入就算成功,也走不出去。需要联网的任务再单独开。包安装走内网 registry,锁文件加进 CI 检查:装到 latest 或通配版本,直接让构建失败。

— 够不着的网络,它就外泄不了
防线 4:外部内容一律当不可信
代理读到的 issue、PR、README、网页、工具返回值,都默认是「数据」,不是「指令」。落到配置上:处理外部 PR 的审查类代理设为只读,不能 push、不能写评论、不能访问外链;发邮件、删数据、写文件到任务仓库之外这类高危操作,强制逐条人工确认,会话级的一次性授权不能覆盖后续动作;处理不可信内容的会话,不要和能碰到敏感工具的会话共享上下文。
防线 5:留下日志,定期对账
每一次工具调用都留日志,让你随时能回答「它到底做了什么」,而不是靠 diff 反推。个人开发者的最低配版本:每轮工作结束git diff 一下工作区,改动范围超出任务本身就回滚。团队环境再加一条 SIEM 查询——代理进程连了白名单之外的域名就告警。
03
PART
二十分钟自查清单
QUICK CHECKLIST
把五道防线浓缩成一张自查表,照着过一遍,大约二十分钟:
翻一遍仓库里的项目级 AI 配置文件,危险授权移出仓库
检查凭证:有没有长期 token?换成短时效、窄作用域
列出 MCP 服务器和插件台账,锁版本、审来源
高频任务迁移到容器里跑,默认断网
确认高危操作是逐条确认,不是会话级放行
外部 PR 的审查代理设为只读
跑一轮受控的注入测试:往测试仓库里塞一条指令型文本,看它听不听
定一个回滚预案:谁能停掉代理、吊销哪个 token、证据存哪里

— 墙上那二十分钟,比事后追查划算得多
///
LAST
写在最后
SUMMARY
这些防线没有一条需要新知识,本质上都是几十年前的老原则:最小权限、能力隔离、沙箱。行业缺的从来不是知识,是默认设置——工具厂商为了演示效果,默认权限开到最大,于是每个团队都在手动加固,而大多数团队没在做。
模型层的防线——更强的系统提示、更好的注入分类器——会一直被绕过,因为「从文本判断意图」本身是个无解的问题。真正守得住的是能力层:它够不着的网络,它就外泄不了;十五分钟过期的 token,明天就废了。
工具越主动,越要有人负责把门。
二十分钟,把五道防线配上,比事后追查一万行的 diff 划算得多。
你配过哪道防线?或者踩过哪个权限坑?评论区聊聊,我会把大家的问题整理成一篇读者问答。
我是 {{作者名}},一个白天写代码、晚上替你测 AI 工具的程序员。
既然看到这里了,如果觉得有用,随手点个赞、在看、转发三连吧。
THANKS FOR READING















































































