Agent 一旦能出网、改仓、调工具:对照 AISI 越权事件,把四层控制写进架构

英国 AISI 对前沿 Agent 的真实世界安全评测再次说明一件事:当智能体挂上浏览器、代码仓库、身份相关能力时,「完成任务」和「遵守授权」会在目标函数里打架。公开转述里出现了约 122 次测试、多次越界与未授权操作,以及开源协作流程中的恶意改动尝试等记录。

下面不写选型话术,只写可落地的工程控制:适合自建 Agent Runtime / Tool Gateway 的团队直接改架构。


0. 先定威胁模型(否则红线会写成口号)

把 Agent 当成带工具的非信任执行体,而不是「更聪明的 HTTP Client」:

资产 典型失败模式 工程含义
出网 任意域名访问、数据外带 egress 默认拒绝
仓库 直推 main、改 workflow、塞毒依赖 写权限与合并权限拆开
身份 长效 Token、可注册新身份 短时签发 + 能力范围绑定
工具 prompt 说「别越权」但仍调用 运行时策略引擎拦截

评测环境「像真」可以,「就是生产」不行。下面四层按这个模型收。


1. 网络层:egress allowlist,而不是「模型自己决定要不要上网」

错误做法:Tool 里直接 requests.get(url),URL 由模型生成。

正确做法:所有出网走 Egress Proxy / Sidecar,策略在代理侧强制执行。

最小策略:

text 复制代码
default: DENY
allow:
  - host: api.github.com
    methods: [GET, POST]   # 按任务再收窄 path
  - host: docs.internal.example
    methods: [GET]
deny_always:
  - metadata / IMDSv2
  - *.internal 未声明网段
  - raw IP(防 DNS 绕过时另做解析校验)

工程要点:

  • DNS 解析结果与 allowlist 二次校验(防 DNS rebinding)
  • 每次出网打结构化日志:session_id, tool, dest_host, status, bytes
  • 目的地未命中白名单 → 硬失败返回给编排层,不要静默重试换域名
  • 评测机与生产机 不同 VPC / 不同出口,禁止共用可路由网段「图省事」

一句话:出网权限属于基础设施,不属于 prompt。


2. 仓库层:Agent 只能提案,不能终审

AISI 相关转述里出现「对开源协作流程动手」的风险动作------工程上对应的就是:Agent 同时拥有 push + merge + 改 .github/workflows

推荐拆权:

text 复制代码
Agent identity
  ├─ git push → only fork / agent/* branches
  ├─ open PR  → allowed
  ├─ merge to main → DENY(永远)
  └─ modify .github/workflows/** → DENY or 人工高危通道

落地组合(任选你们栈,原则一致):

  1. CODEOWNERS/.github//infra/、锁文件必须人审
  2. Branch protection:required reviews ≥1,禁止 self-approve
  3. CI 高危扫描 :PR diff 命中 workflowpackage-lock 大变、新增 curl | sh → 阻断或转人工队列
  4. Agent 输出形态固定为 diff / patch,由人点「应用」;不要给「直接改工作区文件并 push」的超级工具

如果必须让 Agent 跑 git,把可执行命令收成白名单,例如只允许:

status / diff / checkout -b agent/* / commit / push origin HEAD:agent/*

禁止:push --forcemergetag、改 remote URL。


3. 身份与工具层:短时凭证 + 能力声明,不要「全能 API Key」

常见翻车配置:把个人 GitHub PAT、云厂商 Admin Key、邮箱 SMTP 密码塞进 Agent 环境变量,再告诉模型「小心使用」。

改成:

text 复制代码
Task start
  → STS / OAuth 签发 scoped token(TTL 5~15min)
  → scopes = 本任务工具清单的最小集
  → Task end / Kill switch → 立即 revoke

工具注册建议用显式 schema,并在网关做参数校验(伪接口):

json 复制代码
{
  "name": "create_pr",
  "scopes": ["repo:pr:write"],
  "args_schema": {
    "base": {"enum": ["main"]},
    "head": {"pattern": "^agent/.+"},
    "title": {"maxLength": 120}
  },
  "side_effect": "write",
  "requires_human_approval": true
}

运行时顺序固定为:

模型提议调用 → Policy Engine 校验 scope/args/side_effect →(写操作)人审 → 执行 → 审计落库

禁止只靠系统提示词:「你必须遵守公司安全政策」。目标压力下,这层会先塌。

社交通道(发帖、加好友、改资料、批量私信)在生产默认 关闭;评测若要做社交工程压测,用独立身份池与独立网络,任务结束销毁。


4. 观测与急停:把「越权」定义成可判定的 P0

没有判定标准,值班手册就是空的。建议直接写入 oncall:

text 复制代码
越权 := 任意一次工具调用不在 (session.allowed_tools × policy) 内
     或 参数突破 schema / 目的地突破 egress
     或 写操作绕过人审

最小可观测字段:

  • trace_id / session_id / agent_id
  • tool_name / args_hash / decision(allow|deny|escalate)
  • approver_id(写操作)
  • egress_dest(若有)
  • policy_version

Kill switch 至少做到两级:

  1. 会话级:冻结当前 session 的全部 tool
  2. 身份级:revoke Agent 服务账号 / 临时 Token

演练题目别写虚的:模拟「Agent 试图改 workflow 并 push」,量一次 发现 → 冻结 → 吊销 的时间。


5. 一周能做完的最小切片(按优先级)

Day 动作 验收
1 工具清单从全能砍到业务必需;写操作全部变「生成提案」 工具表 + side_effect 标注
2--3 出网代理 + allowlist + 日志 未声明域名必失败
4 仓库拆权:Agent 分支 + 禁自合并 用测试号打一次被拒
5 短时 Token + revoke API TTL 到期不可再调
6--7 10 个越权回归用例进 CI 提权 / 外带 / 改 workflow / 访未授权域 全红

回归用例比再换一个「更安全的模型」更值钱:模型会换,控制面应复用。


小结

AISI 这条线对工程团队的含义不是「某两家模型坏了」,而是:

Agent Runtime 必须按非信任执行体来建:网络默认拒绝、仓库只能提案、凭证短时签发、越权可判定可急停。

编码榜分数高,只说明会写代码;工具链控制面过关,才说明敢挂真实权限。评论区可以贴你们现在的 Tool Gateway 是「直连」还是「策略层」。

相关推荐
用户469368483201 小时前
kimi-code 深度掌握系列文章-Agent 类编排者(四)
llm·agent
jkyy20141 小时前
以科技赋能运动康养!健康有益×泰康养老,打造智能运动新体系
大数据·人工智能·健康医疗
牧艺1 小时前
Knowledge Studio 本地开源版:对标百炼 RAG 控制台的架构、重难点与差异
llm·agent·next.js
不瘦80斤不改名1 小时前
05-vibe-coding-向agentic-engineering演进
人工智能·笔记·python·prompt
晨米酱1 小时前
Matt Pocock Skills v1.2:控制从主流程深入到每一步
面试·架构·agent
Smoothcloud润云1 小时前
GPU租赁数据安全怎么做?
人工智能·算法·ai·aigc·gpu算力·gpu
北墨NoLimit1 小时前
TRAE Work实战:把办公Agent竞品调研从2-3天压到32分钟,有完整指令模板
前端·人工智能·数据可视化
lvts_cs1 小时前
高青原料药及上下游:全链协同,打造医药制造新增长极
大数据·人工智能·制造
AI数据标注猿1 小时前
自动驾驶数据标注:从劳动力套利到系统能力竞争
人工智能·机器学习·自动驾驶