首页 > 新闻动态> 从AI安全范式转移到大模型合规实践
从AI安全范式转移到大模型合规实践
2026-08-03

摘要

AI 安全的战场已经从"模型说错话"转移到"系统做错事"。本文用 97 条真实 Agent 对话的审计数据验证这一判断,并给出应对实践。

审计发现 24 项真实隐私/敏感数据泄漏,其中 75% 本可通过公开信息推断——"不直接输入"不等于安全。两个反直觉发现:39.2% 的暴露并非用户输入,而是 Agent 自己调用 terminal、读文件、改代码时产生的,仅 terminal 一项的暴露量就超过完整密钥本身;Agent 触碰的也远不止个人信息——66% 的工具调用直接读写代码和项目结构,是架构/商业秘密级别的风险,姓名邮箱类正则完全看不见这层。

企业侧的答案是五层防御架构分三阶段落地;个人侧是不裸奔密钥、清理 memory、最小权限、接入审计网关。我们自己的实践,是把所有 Agent 对话收敛进统一审计网关,实现"可见性→可追溯→可审计"的闭环——第三节的实测数据本身就是这套网关的产物。

一、AI 带来的范式为何转移

2026 年,AI 安全的主战场发生了性质变化。

2023-2024 年,核心风险是模型生成有害内容、幻觉、提示词注入——本质是信息合规风险,最多导致监管处罚或品牌损失。2025 年"智能体元年"后,Agent 被赋予了调用 API 和控制业务系统的自主权,核心风险变成了越权操作、目标劫持、工具滥用——本质是业务执行与经济风险。

这不是程度变化,是性质变化。

OpenClaw 现象(72 小时 6 万星标,4 月突破 34.6 万)完成了对产业界、消费市场和政策制定者的三重教育:智能体可以代为操作文件、银行转账,"智能体安全=直接经济损失"成为社会共识 [1]。真实案例已经出现:Replit Agent 冻结期擅自删库,Amazon Q 被恶意 PR 劫持 [1]

核心威胁从"绕过安全对齐生成违规文本"变成了"系统替模型做错事(越权转账、误删库)"。报告的结论很直接:会话边界与授权边界必须物理分离 [1]

与此同时,模型能力的进化也在改变安全规则。Anthropic 为 Claude 5 模型移除了 80% 的系统提示词,编码评估无损失——核心发现是过度约束(over-constraining),系统提示中大量冲突指令反而让模型思考更费力 [2]。OpenAI GPT-5.6 的数据更进一步:精简提示词后评估分数提升 10-15%,token 减少 41-66%,成本降低 33-67% [3]。百川智能的判断也指向同一方向:Skill 本质是 SOP 的补丁,模型把优质数据内化后,补丁反而成了束缚 [4]

三方独立来源指向同一个结论:旧的安全范式(堆规则、堆约束)不仅无效,反而有害。新的范式必须是:精准约束+动态授权+持续审计。

二、大模型引入的新型风险图谱

报告将 AI 安全定义为六层嵌套边界 [1]

关键矛盾:企业安全预算集中在第一层(模型本体),但真实杀伤半径在第四到六层(Agent/协议/基础设施)。预算与风险严重错配 [1]

Computer Use Agent 进一步颠覆了传统安全六道防线——Same-Origin Policy、Site Isolation、Anti-CSRF、SameSite Cookies 全部失效。因为 Agent 同时看到所有标签页(突破视野隔离),所有请求以第一方发起(自带受害者凭证,绕过 CSRF)。RSAC 2026 的标志性 PoC 证明:通过 file:// URI 直接外泄本地文件,过去需要恶意软件,现在只需一个浏览器 [1]

一个容易被忽视的攻击向量是"有毒组合"(Toxic Combinations):单个工具权限合规,但组合后形成致命漏洞。Salesforce Agentforce 案例中,攻击者通过公共表单 42K 字符描述字段植入注入,绕过 CSP 外泄数据 [1]。报告提出"No Excessive CAP 原则":必须将"能力×自主性×权限"合并评估,用 AIVSS 取代传统 CVSS 打分 [1]

三、实测:97 条 Agent 对话中的敏感数据暴露

上述威胁并非理论。我们对一组真实的 Agent 对话数据进行了深度审计分析。

3.1 数据规模

数据来源为 Hermes Agent 通过 LiteLLM 网关接入 Langfuse 审计平台采集的完整对话 trace,覆盖一个开发会话的全生命周期。

3.2 隐私泄露(个人信息)

审计发现 8 项 真实个人隐私数据在对话中暴露:

另发现 4 项 mock 测试数据(工信部官方测试号段/明显合成的示例号码,非真实个人信息,不计入上述统计):手机号 138\*\*\*\*8000(工信部测试号段,出现 466 次)、155\*\*\*\*4567(出现 34 次)、199\*\*\*\*1123(出现 412 次),以及配套的示例身份证号 110101\*\*\*\*\*\*\*\*1234(出现 412 次,与前一手机号在同批测试数据中同时出现)。这组数据说明 Agent 在处理代码测试场景时会自由生成、搬运敏感格式的数据——一旦测试模板换成真实数据,泄漏路径是现成的。

3.3 敏感数据泄露(凭证/配置)

审计发现 16 项 敏感配置和凭证数据暴露:

隐私 + 敏感数据合计:24 项真实泄漏(另有 4 项 mock 测试数据,非真实,不计入统计)。

3.4 暴露机制:三个系统性问题

问题一:系统提示词每轮自动注入。 Agent 的 memory 和 user profile 中的邮箱、姓名、工作领域、文件路径,在 97 条 trace 的每一条中都完整注入 system prompt。一次配置,97 次暴露 [5]

问题二:对话历史累积导致重复暴露。 每条 trace 包含完整对话历史。最早的 trace 只有几条消息,最后的 trace 有上千条。API 公钥被重复发送了 345 次——原因是用户反复粘贴包含密钥的调试日志 [5]

问题三:Agent 工具调用额外提取系统信息。 工具结果暴露了 macOS 用户名(来自 skill_view/skill_manage 工具,23 次),也暴露了 mock 测试数据中的手机号和身份证号。说明 Agent 在执行代码测试时可以自由生成和处理敏感格式的数据 [5]

3.5 关键发现

发现一:Agent 掌握的信息远比想象的多,不止是姓名、邮箱这类个人信息。

这批对话里 Agent 一共执行了 5,759 次工具调用,其中 1,825 次是代码补丁(patch)、1,642 次是文件读取(read_file)、347 次是文件搜索(search_files)——三者合计占全部工具调用的 66%,触及的是代码和文件内容,而不是用户对话本身。具体到这批数据:Agent 反复读取、编辑了审计管道自身的实现源码,并用 terminal 命令探测了完整的项目目录结构,命令参数里还直接带出了内部函数名。这些不是个人隐私信息,而是实现细节、代码架构、甚至可以算作商业秘密的内容——如果审计只扫描姓名、邮箱、身份证号这类个人信息正则,会完全漏掉这一层风险 [5]

发现二:泄漏不止来自"用户输入"和"可被推断",Agent 调用外部工具本身就是一条独立的暴露路径。

把这批对话中可精确复现计数的真实隐私/敏感数据(累计 9,819 次暴露)按暴露渠道拆解:

外部工具内部再拆分:patch(代码补丁)13.4%、terminal(终端命令)12.3%、read_file(文件读取)9.5%,其余为 search_files 等更小的渠道。仅 terminal 一个工具的暴露量,就超过了"完整私钥"单项数据在全部对话中的暴露总量——terminal 不是配角,而是仅次于代码补丁的第二大暴露源 [5]

这意味着即便某次对话里用户完全没有主动输入或粘贴任何敏感内容,Agent 自己执行的工具调用也可能把这些信息带入上下文——审计如果只看"用户说了什么",会漏掉近四成的暴露量。

发现三:24 项真实泄漏数据按"能否从公开信息推断还原"分两类,多数并不需要用户直接输入。

这意味着即使不直接输入凭证,Agent 对话中仍有大量可被关联利用的个人信息 [5]——没有审计管道,这些暴露无从发现。

四、企业和个人如何应对安全风险

4.1 企业层面:五层防御架构

基于威胁分析和实测数据,提出五层企业安全架构 [1]

  1. 身份基建
  2. 能力隔离
  3. 底座防御
  4. 人在环路
  5. 兜底韧性

第五层是关键认知转变:不追求"不犯错"(不可能),而是追求"犯了能撤"。

落地分三阶段 [1]

静态测试已失效。安全评估从"一次性验证"演进为"7x24 持续态势感知" [1]

组织层面需要"全组织共治":AI 安全治理委员会(CIO/CISO/首席法务官/业务线负责人)、AI 安全架构师、专属 AI 红队(Garak/PyRIT)、合规与治理专员 [1]

4.2 个人层面

  • 不粘贴密钥到对话中
  • 定期审查 Agent 的 memory 和 profile
  • 最小权限原则
  • 使用审计网关

五、我们的实践:大模型合规

5.1 大模型审计网关解决的问题

Agent 对话默认是一个黑箱:谁在什么时候、用什么身份调用了模型,说了什么、调用了哪些工具、读取了哪些数据,事后没有留痕,出了问题也无法追溯到具体的人和会话。第三节实测的 24 项真实泄漏之所以能被发现,前提就是这批对话恰好经过了审计管道采集——如果没有这层留痕,这些暴露会一直存在,但没有人知道。

这正是报告提出的"Agent 网关成为新基线"判断所指向的问题 [1]:Agent 是继人、服务之后的"第三类身份",如果这类身份的行为不经过统一入口留痕和管控,企业既无法满足数据追溯的合规要求,也无法在数据泄漏、越权操作发生后定位责任。

5.2 如何解决:我们的实践

我们的做法是把所有 Agent 对话强制收敛到一个统一网关,任何调用都必须经过这个入口,不允许绕过:

  • 按用户、按会话隔离请求身份,每一次调用都能追溯到具体是谁、在何时、以什么身份发起的
  • 全量留痕采集对话内容——输入提示词、模型输出、调用的工具、工具返回结果,一条不漏
  • 在留痕数据之上构建自动化审计管道,实现 [5]:

- 逐条 trace 解析:调用了哪些工具、访问了哪些文件/目录、读取了哪些数据

- 敏感数据扫描:API 密钥、邮箱、手机号、身份证号、IP 地址、文件路径等多类正则匹配

- 来源分类:区分用户直接输入、系统提示词注入、工具结果暴露三种暴露路径

- 可推断性分析:区分不得不输入的凭证 vs 可通过多源信息推断的个人信息,评估实际风险等级

- 结构化报告生成:生成含详细违规条目的报告,支持事后审计和合规检查

第三节实测的 97 条 trace,正是基于这套网关和审计管道采集、分析出来的数据。这套做法也直接回应了报告的"No Excessive CAP 原则"——不仅看 Agent 做了什么,还看它能看到什么、能访问什么 [1]

5.3 网关的价值闭环

审计网关解决了三个核心问题:

  1. 可见性
  2. 可追溯 — 每条对话带用户标识和时间戳,满足网信办备案的数据追溯要求。当安全事件发生时,可以精确定位到是哪个用户、哪个会话、哪次工具调用触发了问题。
  3. 可审计— 自动化审计管道对 trace 数据做持续扫描,从"一次性验证"演进为"7x24 持续态势感知"[1]。敏感数据暴露、异常工具调用、权限越界等问题可以在事后被自动发现和报告。

这三层能力对应了报告提出的五层企业安全架构中的第一层(身份基建)和第五层(兜底韧性):Agent 作为第三类身份接入网关获得可见性,全量留痕提供事后可溯源和撤销的基础 [1]

六、结论

1、范式已变:AI 安全从"内容护栏"转向"动作阻断",核心是防止系统做错事而非防止模型说错话 [1]

2、过度约束有害:Anthropic 移除 80% 系统提示词无损失,OpenAI 精简后评分提升 10-15%。旧范式"堆规则"不仅无效反而降低性能 [2][3]

3、Agent 审计是刚需:实测 97 条对话暴露 24 项真实隐私和敏感数据(另有 4 项 mock 测试数据),其中系统提示词每轮自动注入是最大系统性暴露机制。没有审计管道,这些暴露无从发现 [5]

4、网关是新基线:Agent 身份治理、运行时行为监控、数据追溯——大模型审计网关是解决这些问题的基线设施 [1]

5、价值闭环:可见性(全量留痕)→ 可追溯(用户标识+时间戳)→ 可审计(持续扫描),三层能力构成完整的安全闭环。

预告:网关不是终点

把 Agent 对话收敛进统一审计网关,是 Agent 安全的必要一环,但不是完整方案。它解决的是"可观测、可追溯、可拦截"的问题——网关只看得到"文本流量",看不到 Agent 内部的决策逻辑和工具执行的真实副作用。一个被劫持的 Agent,完全可以在网关看来"合规"的对话下,通过工具调用完成越权操作:网关拦得住语义违规的内容,拦不住语义合规、但意图恶意的行为。

第三节的实测数据其实已经提示了这一点:39.2% 的真实暴露不是来自对话本身,而是 Agent 调用 terminal、读文件、改代码时产生的。完整的 Agent 安全需要分层防御——输入边界层、权限与工具层、执行运行时层、输出层、观测审计层,网关只覆盖了最后一层。

下一篇,我们展开讲这套分层防御里最关键、也最容易被忽视的一层:权限与工具层。网关管的是"说了什么",权限层管的是"能做什么"——后者才是 Agent 安全 blast radius 真正的边界。



参考来源

[1] 谭晓生.《AI 安全产业研究报告 2026》(336 页完整版 + 104 页摘要版). 数说安全, 2026-06.

[2] Anthropic Thariq. "The new rules of context engineering for Claude 5 models". 2026-07-24.

[3] OpenAI. "GPT-5.6 模型指南:新特性、迁移与提示词最佳实践". 2026-07.

[4] 百川智能郭美青对谈. "Skill 是补丁,模型变强后补丁成累赘". AIGCLINK, 2026-07-25.

[5] Agent 对话数据审计分析. 数据源:agent 安全实验数据:traces.json。