安全与容器化

三类风险:滥用、失控、外部攻击

安全不是加一层提示词就够的,需要从架构层面进行结构性设计。这里介绍一套系统化的安全分类框架。

安全分类框架

每种 AI 产品面对的威胁模型不同,但所有风险都可以归入三个类别。理解这三类风险是设计安全架构的第一步。

MISUSE
用户滥用
用户故意让 Agent 做不该做的事情。这是来自用户侧的主动威胁。
  • 利用 Agent 生成钓鱼邮件
  • 诱导 Agent 执行恶意代码
  • 利用 Agent 获取未授权的数据
  • 通过越狱攻击绕过安全限制
MISBEHAVIOR
模型失控
模型自发的错误行为:没人指使它,但它自己做了不该做的事。
  • 过度行动:用户只让查看文件,模型却自作主张修改了
  • 幻觉驱动操作:基于虚构信息执行了真实操作
  • 权限越界:模型尝试访问不属于当前任务的资源
  • 停不下来:Agent 进入无限循环
EXTERNAL ATTACK
外部攻击
第三方通过注入恶意内容来操控 Agent 的行为。攻击来自数据源,用户本身可能毫不知情。
  • Prompt Injection:网页/文档中嵌入攻击指令
  • 供应链攻击:恶意 MCP 服务器返回篡改数据
  • 数据投毒:训练数据中植入后门
  • 间接注入:通过 Agent 读取的邮件/文件注入指令
双层 Containment 策略

MODEL LAYER 模型层防线

通过训练让模型从内心倾向于安全行为,就像培养一个有良好价值观的员工。
  • RLHF/Constitutional AI 训练安全偏好
  • 模型学会拒绝危险请求
  • 模型在不确定时主动询问用户
  • 遵循最小权限原则

ENVIRONMENT LAYER 环境层防线

通过系统架构让危险操作无法执行,就像给仓库加锁,不依赖员工的自觉。
  • 沙箱隔离:代码执行在受限环境中
  • 权限控制:按任务粒度授权
  • 审批机制:高危操作需人工确认
  • 网络隔离:限制 Agent 的网络访问范围
两者互补,缺一不可。模型层是让 Agent 想做对的事,环境层是让 Agent 即使想做错也做不到。只靠 Prompt 告诉模型「别做坏事」是不够的,你还需要在架构上让坏事不可能发生。
MCP 的双重风险

Model Context Protocol 带来的新攻击面

SUPPLY CHAIN RISK
供应链风险
不可信的 MCP 服务器可能注入恶意内容。Agent 信任 MCP 返回的工具描述和数据,但这些数据可能已被篡改。一个恶意的 MCP 服务器可以通过修改工具描述来操控 Agent 的行为:Agent 以为自己在用「搜索文件」工具,实际上在执行删除操作。
PROMPT INJECTION
注入攻击
MCP 返回的内容可能包含攻击指令。即使 MCP 服务器本身没有恶意,它返回的数据(比如从网页抓取的内容)可能包含 Prompt Injection 攻击。Agent 处理这些数据时,可能被说服执行非预期的操作。
MCP 本质上扩大了 Agent 的攻击面。每多接入一个 MCP 服务器,就多了一个潜在的数据注入入口。产品设计者需要像审核第三方 SDK 一样审核每个 MCP 集成,信任但要验证。
Auto Mode 的实践数据

分类器 + 沙箱:高自主与低风险的组合

~83%
权限弹窗减少比例
2
核心组件
Auto Mode 通过两个核心组件实现了高自主 + 低风险的平衡:
分类器
判断操作是否安全
+
沙箱
即使误判也不会造成破坏
=
高自主 + 低风险
分类器负责快速判断每个操作的风险等级:安全操作直接执行,可疑操作才弹窗询问。沙箱作为第二道防线,确保即使分类器误判,代码执行也不会对系统造成真实损害。两者组合,让用户减少了约 83% 的确认弹窗,同时保持了安全性。
安全不是加一层提示词就够的,需要结构性设计。理解三类风险(滥用、失控、攻击),在模型层和环境层同时构建防线,才能让 Agent 在实际生产环境中安全运行。