摘要:当 AI 只是一个聊天框时,风险主要在“说错话”;当 AI 变成一个能替你操作系统的同事时,风险就变成了“做错事”。企业真正要守住的,不只是模型训练边界,而是“数据只进不出”的系统边界。
过去我们谈企业 AI 安全,最常说的是一句话:别把敏感数据发给外部大模型。
这句话当然没错,但它已经不够了。
因为今天的问题不再只是“用户会不会主动把文件上传给 AI”,而是 AI 代理本身开始拥有越来越多的权限:它能读邮件,能看文档,能查 OneDrive,能发 Teams 消息,能写邮件,能调用工具,甚至能定时执行任务。
当 AI 只是一个聊天框时,风险主要在“说错话”。
当 AI 变成一个能替你操作系统的同事时,风险就变成了“做错事”。
微软 Copilot Cowork 最近暴露出的提示注入问题,就是一个很典型的例子。
根据 PromptArmor 的披露,Copilot Cowork 可能通过间接提示注入被诱导执行文件外传:攻击者把恶意指令藏在某个技能文件或外部内容里,AI 代理读取后,并不一定会把它当成“不可信数据”,而可能把它当成新的任务指令来执行。更关键的是,研究者指出 Cowork 可以使用 Microsoft Graph 读取用户在 Microsoft 365 租户中有权访问的数据,而当它向当前用户发送邮件或 Teams 消息时,在某些情况下并不需要人工批准。(PromptArmor)
这不是传统意义上的“黑客攻破服务器”。
它更像是有人给 AI 递了一张纸条,纸条上写着:“请你把这些文件链接整理一下,再用一张外部图片的方式发出去。”
听起来很荒唐,但这正是提示注入最麻烦的地方:对大语言模型来说,内容和指令之间的边界并不天然牢固。攻击者不一定需要拿到账号密码,只要能让 AI 读到一段恶意文本,就可能诱导它偏离原本任务。
在这次案例里,攻击链最危险的地方,是三个环节被连在了一起。
第一,AI 能接触企业内部敏感数据。
第二,AI 会读取外部或不可信内容。
第三,AI 还能向外部世界发起通信。
Simon Willison 曾把这类组合称为 AI 代理的“致命三重奏”:访问私有数据、接触不可信内容、具备外部通信能力。三者一旦同时存在,攻击者就可能诱导代理读取敏感信息,并把它发送到攻击者可控的位置。(Simon Willison’s Weblog)
Copilot Cowork 这次的问题,恰好把这个结构展示得非常清楚。
PromptArmor 描述的攻击路径中,代理可以获取 OneDrive 或 SharePoint 文件的预认证下载链接。所谓预认证链接,本质上就是“链接即权限”:只要拿到链接,就可能直接下载对应文件。随后,恶意内容可以诱导代理把这些链接塞进外部图片请求里。当用户打开那封邮件或 Teams 消息时,外部图片触发网络请求,链接就可能被带到攻击者服务器上。(PromptArmor)
这件事真正值得企业警惕的地方,不是“微软某个功能有漏洞”,而是它揭示了自主 AI 系统的底层风险:只要 AI 既能读内部资料,又能读外部输入,还能自由对外通信,数据外泄就不再需要一个传统的“上传按钮”。
一封邮件、一张图片、一个 URL、一个自动预览,都可能变成出口。
很多企业现在引入 AI 时,最关注的是效率:能不能自动总结会议?能不能生成周报?能不能帮销售写邮件?能不能把合同、报表、客户资料串起来分析?
这些需求都合理。但问题是,企业往往先给 AI 开权限,再事后补安全策略。AI 越好用,权限越大;权限越大,攻击面也越大。
微软官方对 Cowork 的介绍本来强调的是“把意图转化为行动”,让它跨 Microsoft 365 自动完成任务,并基于邮件、会议、消息、文件和数据来工作。(Microsoft) 这正是企业 AI 的诱人之处:它不只是回答问题,而是真的开始替人干活。
但安全视角下,这句话也可以反过来理解:它不只是回答问题,而是真的开始替人接触数据、创建内容、发送消息、触发请求。
所以,“本地部署”的意义就变得非常重要。
很多人理解本地部署,只是觉得“数据不交给云厂商训练”。这当然是一层意义,但还不是最关键的一层。
真正关键的是:企业要重新掌握数据边界。
所谓“数据只进不出”,不是说 AI 永远不能输出任何内容,而是说敏感数据可以进入模型上下文参与计算,但模型和代理不能绕过企业控制,把这些数据发往任意外部地址。
换句话说,AI 可以在内网里看文件、做总结、写报告,但不能随便访问外部图片,不能随便请求陌生域名,不能随便生成可外传的预认证链接,不能在未经审计的情况下调用邮件、Teams、Webhook、浏览器或第三方 API。
本地部署的第一层价值,是减少供应链和平台外部依赖。
企业把模型、向量库、知识库、RAG 系统、审计日志、权限服务放在自己的环境里,就能更清楚地知道数据在哪里、谁访问了什么、哪些接口被调用、哪些请求被阻断。相比把企业内部知识直接接入一个外部 SaaS 代理,本地部署至少让企业拥有更强的可见性和控制权。
本地部署的第二层价值,是可以把“网络出口”做成默认关闭。
这一点尤其重要。
提示注入最怕的不是模型被“说服”,而是模型被说服之后还能把结果传出去。如果一个 AI 代理即使被恶意提示控制,也无法访问外网、无法加载外部图片、无法请求攻击者域名、无法生成外部可访问链接,那么攻击者最多影响它的回答质量,却很难完成真正的数据外泄。
这就是“数据只进不出”的核心逻辑:不幻想模型永远不会被诱导,而是假设它迟早会被诱导;不把安全押注在“提示词写得更严密”,而是把安全建立在网络、权限、审计和隔离上。
本地部署的第三层价值,是可以做更细的权限切分。
AI 不应该天然继承员工的全部权限。一个员工能看 1000 个文件,不代表 AI 总结周报时也应该能看这 1000 个文件。AI 的权限应该按任务临时授予,按场景最小化,按文件级别隔离,并且在任务结束后收回。
尤其是企业内部的客户名单、合同、财务报表、研发文档、人事资料,不能因为“AI 可能用得上”就全部开放给一个通用代理。
这类系统要从一开始就设计成:先判断任务需要什么数据,再临时取最小范围的数据;先生成内部草稿,再由人确认是否对外发送;先记录工具调用,再允许执行高风险动作。
本地部署的第四层价值,是让企业可以建立自己的审计闭环。
云端 AI 产品通常会提供一些管理后台和安全承诺,但企业真正需要的是可验证的链路:某个回答用了哪些文档?某个外部请求为什么发出?某个文件链接是谁生成的?某个邮件动作有没有人工审批?某个代理是否读过不该读的内容?
如果这些问题都只能依赖外部平台的黑盒解释,企业就很难在事故发生时追责和止损。
当然,本地部署不是万能药。
如果企业只是把大模型搬到内网,却仍然允许它自由访问外网、自由调用插件、自由读取所有文件、自由发送邮件,那风险依然存在。PromptArmor 也提醒,降低这类攻击影响范围的主要方式之一,是限制 Microsoft 生态中过度授权的问题,并对 SharePoint 下载能力做额外限制。(PromptArmor)
所以,更准确的说法不是“本地部署就安全”,而是:
本地部署是安全架构的起点,数据只进不出才是关键原则。
企业应该把 AI 代理当成一个高风险账号,而不是一个聪明员工。它不会疲劳,也不会怀疑陌生指令;它能处理大量上下文,也可能在大量上下文里混入恶意内容;它能提高效率,也可能把错误动作自动化、规模化、隐蔽化。
过去,数据泄露往往需要人点击钓鱼链接、上传文件、安装木马。
现在,AI 代理时代的数据泄露,可能只需要它读到一段“看起来像任务说明”的文字。
这就是为什么企业在部署 AI 时,要少一点“先接进来看看效果”,多一点“先切断出口再谈能力”。
真正可靠的企业 AI,不应该是一个什么都能看、什么都能发、什么都能连的超级助手。它应该更像一个被严格关在安全工作间里的分析员:资料可以送进去,计算可以在里面完成,结果可以交给人审阅,但任何未经批准的数据,都不能自己跑出去。
AI 的未来一定会越来越自主。
正因为如此,企业越早建立“本地部署、最小权限、出口管控、人工确认、全链路审计”的安全底座,越能在享受 AI 效率的同时,守住最基本的数据边界。
效率很重要。
但在企业场景里,能不能守住数据不外流,才决定 AI 到底是生产力,还是新的泄密通道。