前端进阶之旅前端进阶之旅
基础篇
进阶篇
高频篇
精选篇
手写篇
面经篇
AI 篇
原理篇
每日一题
小程序题库
知识卡片
  • 场景篇按分类整理的大前端场景考点
  • 历年面经按年份追踪真实考点
  • 算法题库NEW在线编码即时判题
  • 专项自测100 题快速查漏
  • 前端基础
    • HTTP从报文一路讲到 HTTPS
    • 浏览器渲染、事件循环、进程
    • 计算机基础Linux、网络、操作系统
  • 进阶专项
    • 设计模式23 种模式怎么用
    • 前端系统进阶学习大型项目工程化
    • 前端综合文章长期沉淀的实践文
  • 工程与工具
    • Node学习指南从环境搭建到服务端
    • NPM工作流script、依赖与发布
    • Docker容器化部署上手
    • Canvas图形与动画实战
  • 路线与导图
    • 思维导图知识点全景图
    • 学习路线按图索骥不跑偏
  • 动态
    • 公众号动态公众号历史文章
    • 博客动态站长的技术博客
    • 开发者导航常用工具与文档站
  • AI 助手随时提问,即时解析
  • AI 模拟面试模拟真实面试 + 报告
  • AI 知识地图串起全站知识点
  • AI 定制路线按你的简历现排
AI 热点
旧版
基础篇
进阶篇
高频篇
精选篇
手写篇
面经篇
AI 篇
原理篇
每日一题
小程序题库
知识卡片
  • 场景篇按分类整理的大前端场景考点
  • 历年面经按年份追踪真实考点
  • 算法题库NEW在线编码即时判题
  • 专项自测100 题快速查漏
  • 前端基础
    • HTTP从报文一路讲到 HTTPS
    • 浏览器渲染、事件循环、进程
    • 计算机基础Linux、网络、操作系统
  • 进阶专项
    • 设计模式23 种模式怎么用
    • 前端系统进阶学习大型项目工程化
    • 前端综合文章长期沉淀的实践文
  • 工程与工具
    • Node学习指南从环境搭建到服务端
    • NPM工作流script、依赖与发布
    • Docker容器化部署上手
    • Canvas图形与动画实战
  • 路线与导图
    • 思维导图知识点全景图
    • 学习路线按图索骥不跑偏
  • 动态
    • 公众号动态公众号历史文章
    • 博客动态站长的技术博客
    • 开发者导航常用工具与文档站
  • AI 助手随时提问,即时解析
  • AI 模拟面试模拟真实面试 + 报告
  • AI 知识地图串起全站知识点
  • AI 定制路线按你的简历现排
AI 热点
旧版
返回 AI 情报前线
All News · 全部资讯9278
  • AI Agent实测1200次运行费用仅1.2美元
  • Code-Graph-RAG:把整库变成知识图谱,让 AI 真正理解代码结构
  • Anthropic工程师内部分享:不用提示词,用图和循环构建自提示系统
  • Grok Bot上线:AI队友可登录你的账号替你干活
  • OpenAI 正式发布 ChatGPT Linux 桌面应用
  • Mojo 1.0正式发布:年内开源编译器和工具链
  • 比亚迪 HyWorldVLA 刷新自动驾驶基准:像素级+潜在空间混合世界模型
  • AI代码测试公司Blacksmith估值不到一年翻近10倍
  • 紫东太初GMC剪枝:省80% Token仍保多模态能力
  • AI 编程 Agent 使用 Git Worktree 的坑:vendor 符号链接
  • Reducer Engineering:AI Pipeline 成本直降 86% 的技巧
  • BizNode Pulse:本地运行的AI自主商业操作系统
  • Chat Templates权威指南:模型训练级Prompt渲染原理
  • AI Agent是影子AI更危险的续作
  • 多 Agent 系统调试:你的 Trace Tree 在说谎
  • 7 个 CLAUDE.md 错误悄悄消耗你的会话效率
  • 微软 MAI Code 1.1 Flash 性价比被 Deepseek V4 Flash 碾压
  • 企业生产级 AI 的数据基座:WPP 案例的 dbt 架构实践
  • 企业AI落地 regulated 行业:基础设施检查清单
  • Agent-Devtools:本地化AI Agent调试追踪工具
  • 运行时验证:测试与Guardrail的本质差异
  • Vibe Coding演进:AI编程工具成熟度与生产信任问题
  • LLM Agent操控真实PLC:工业协议工具调用实战总结
  • AI 模型价格周报:GLM 5.2 降价 34%,Qwen3 VL 长输出费用腰斩
  • 腾讯半年报:Hy3性能全球前三、CodeBuddy用户突破
  • OpenAI发布GPT-5.6 Cyber,仅向安全合作伙伴提供
  • AI AgentOverlay Network解析:打破多Agent通信壁垒
  • 一条规则防止AI编程助手误删代码
  • OpenMontage:首个开源Agentic视频生产系统
  • LangChain 2026多Agent系统完整指南
  • 2026年AI代码编辑器进化:从Copilot到Agentic全栈开发
  • Zoom屏幕共享高危漏洞可远程接管设备,研究员用AI一天内开发出利用程序
  • 2026年Prompt注入攻击进化:自动化越狱、多模态攻击成主流
  • YC项目用AI Agent发现半导体散热材料
  • Qwen即将发布,业内高度期待
  • INDB数据库:让API暴露记忆行为而非数据表
  • Agent Memory实战复盘:为何这个产品无法存在
  • AI Agent 写数据库:五层防护哪家强?
  • 如何窃取推理轨迹:投机解码的蒸馏本质
  • AI产品工程实践笔记:13场Session精华提炼
  • DeepSeek V4 Pro 更新权重登陆 Vercel AI Gateway
  • NVIDIA发布Nemotron 3.5 Lightning:30B开放MoE,激活参数仅3B
  • AI编辑器修复IDOR漏洞的局限性
  • LTX-2.5:6.8秒生成10秒720P视频,开源可微调
  • Muse Glimmer生产环境测试指南
  • 三星引入Claude Code,半导体设计验证效率提升15倍
  • Cloudflare Computer:文件系统即真实产品,AI 沙箱新思路
  • AI 迁移200张表的教训:上下文窗口这样用才省
  • Qwen3.8-Max 刷新 OSWorld 基准,工程验证清单在此
  • AI Agent 成本已低于印度离岸外包:a16z 最新报告
  • 消费级GPU加载万亿参数MoE模型:按需加载思路详解
  • 已加载 51 / 9278
8.0
热点
AI SCORE
技术实践2026-08-12 17:42

运行时验证:测试与Guardrail的本质差异

dev.to · AI#AI安全#Agent#测试
Editor brief · 编辑速览

测试只在构建时运行一次,Guardrail在每次真实请求时执行;AI Agent要安全投产,两者缺一不可,扫描发现大量线上漏洞恰好出现在测试与生产之间的盲区。

文章思维导图
Knowledge map
拖拽缩放
Full translation

完整中文译文

一条评论精准地点明了核心观点

几天前,在 Humanbound 从事运行时护栏工作的评论者在我们的 AI Agent 安全审计帖子下留下了这样一段话:

"任何时候,当一个测试失败,它都会自动成为一个运行时护栏,这样同样的错误就不会再次漏过去。"

这一句话就是本文的主旨。大多数团队把"我们写了一套测试"当作"我们已经保护好了 Agent"。测试是一个在构建时运行的检查点,运行完就停止关注。护栏则是一条策略,当系统进入生产环境后依然在岗,持续检查实际到达的请求。两者之间的区别并非细微——它决定了检查发生在哪里,以及它会被执行多少次。

测试只运行一次。护栏每次都运行。

单元测试在受控环境中针对你选定的 fixture 执行。它失败了,你修复它,然后继续——下一次部署从同样的干净状态开始。这次失败在沙箱中给你上了一课,而且只有当测试恰好覆盖了那个确切输入时才会发生。

运行时验证在结构上就有所不同。检查在真实调用发生的时刻执行,在真实部署中,针对模型实际选择的请求和工具表面。同一条规则适用于第一次调用和第一万次调用。调用之间没有干净状态,因为下一次调用已经在路上了。

对于 AI Agent 来说,这种不对称性比大多数软件更重要。Agent 的行为不是一个固定的代码路径;它是模型与一组工具之间的协商,而模型在给定请求上伸手去拿的工具在构建时是无法完全预测的。你真正关心的失败模式是你无法在模型遇到它们之前枚举的——而这恰恰是预写测试无法保证覆盖的那一类。

为什么测试总是遗漏真正重要的失败

在我们的 MCP-based Agent 中不断出现的攻击,并不是你代码中的逻辑 bug——而是运行时配置的固有属性。一份 MCP 配置文件是可执行内容,而不是数据。一个恶意或意外配置错误的服务器可以被指示运行任意命令,而模型会忠实地将提示词所要求的一切交出去。

三个真实的、NVD 登记在案的例子说明了这种运行时表面:

CVE-2026-2287 — CrewAI 的 MCP stdio 传输,CVSS 9.8。一次无需验证即可调用命令的工具调用路径,导致远程代码执行。

CVE-2026-42271 — LiteLLM,CVSS 8.7(旧评分体系下为 8.8)。通过 MCP 测试端点执行命令;已被列入 CISA 的 KEV 清单,标记为正在被积极利用。

CVE-2026-12957 — Amazon Q Developer,CVSS 8.5。一个恶意的 .amazonq/mcp.json 在加载时自动执行,并能窃取云凭证。

测试套件无法在你的 Agent 内部捕获这些问题,因为它们根本不在你的 Agent 内部。它们在 Agent 与其调用的工具之间的契约里——而这份契约只在运行时、在真实请求到达的那一刻才存在。

我们的扫描在 12 个框架中发现了什么

我们在 12 个主流 AI 框架上运行了 Correctover CCS v4.2 扫描器,记录了 87 个漏洞。最常见的漏洞不是任何一个框架自身业务逻辑中的 bug;而是一个协议层面的缺口:MCP 的 readOnlyHint 信号有定义但从未被强制执行,所以声明为只读的工具仍然可以被调用来执行写操作。下游框架从它们构建的 SDK 中继承了这个缺口。

这一发现很好地印证了测试与护栏之间的差距。检查在规范中有定义。一条检查你自己代码的测试会通过。只有站在工具调用边界上、对实际调用进行评估的运行时检查才能观察到违规——因为违规只存在于调用发生的那一刻。

护栏必须足够快,快到让人无感知

如果护栏成了拖慢 Agent 的东西,这一切就毫无意义。CCS 验证器的评估路径在 50,000 次迭代每场景的测量下,中位数延迟低于 10µs,第 99 百分位低于 25µs。在这个成本下,每次调用都运行检查并不是你需要权衡的取舍。

"在运行时"实际上构建在什么之上

护栏的好坏取决于它背后的失败目录。我们的分类法不是一个预先写好的静态列表;而是从真实流量中生长出来的。我们从 13 个 LLM 提供商的真实调用中收集了超过 80,000 条 API 追踪——其中 20,000 条追踪子集已随 CCS 基准数据集发布——而且仅 CCS v4.2 扫描语料库就包含超过 1,730 个已验证的发现。

我们遵循的规则正是那位评论者所描述的:只有当一个失败能够从可审计的追踪中重新推导出来之后,它才能获得一个永久条目;随着提供商在上游改变行为,新的形态持续进入目录。这是一个有意为之的滞后策略,我们对这种权衡保持开放——一个停止被重新检查的分类法会重新退化为理论。

护栏就是产品

我们正式确立了这个立场,因为我们相信运行时验证是一门独立的工程学科,而不是测试的一个变种。我们在 IETF 上发布的草案(draft-correctover-ccs-02)定义了一个 Agent 如何产生关于每次调用上运行了哪些检查的防篡改证据——这是测试无法产生的证据,因为测试在调用发生时根本不存在。

这就是 CCS 项目用一行话的定义:一个运行时验证器,在关键时刻检查工具调用和响应,成本足够低廉,可以每次调用都运行。扫描器作为按次付费检查提供(¥0.7/次,¥7 捆绑包包含 10 次),同一验证层也作为 MCP 工具暴露,使 Agent 可以在链中途自我检查,而不仅仅在末尾。如果你正在 MCP 服务器之上构建 Agent,最小的有用实验是用扫描器跑一下你已经信任的服务器——看看运行时检查发现了什么你的测试套件没有发现的东西。

Original source

本文由 AI 翻译整理自 dev.to · AI,原文版权归原作者所有。

阅读英文原文
上一篇
Agent-Devtools:本地化AI Agent调试追踪工具
下一篇
Vibe Coding演进:AI编程工具成熟度与生产信任问题