agent安全的完整框架。学术界三层(架构→工具→密码学)+ GCP三层(身份→网络→资源)。每一层管一件事,六层各自独立、叠在一起。
前提:agent框架本身不防护。IssueTrojanBench测了4176次——66.5%恶意GitHub issue穿透Cursor/Claude Code/Codex的全部guardrails。Supply Chain Attack类别GPT全100%穿透。拦截几乎全靠LLM自身判断,agent层什么都没做。所以需要在外面包六层。
David Wagner(UC Berkeley)的方案。两个agent——Safe在可信环境,Explore在不可信环境。Explore接触外部数据但不能直接行动。所有决策经过Safe审核。信息通过100字符hint传递——residual compression,只传delta不传全文,攻击payload在压缩中丢失。
SWE-bench 62.5%效用,0%攻击成功率。核心是信息流隔离:不可信数据永远到不了决策端的完整上下文。
Rust gateway坐在agent和API之间。Agent用FAKE_KEY,gateway在出站请求时换成REAL_KEY。AES-256-GCM加密存储,host+path匹配路由。每个agent有scoped access token。
即使agent被穿透(IssueTrojanBench说66.5%会),没有凭据可泄露。credential isolation是对prompt injection攻击的直接缓解——攻击者拿到的是假钥匙。
github.com/onecli/onecli · HN 103分
用zk-SNARKs让agent在执行前证明请求满足策略——零知识证明,验证者能确认agent有权但看不到具体授权内容。三层binding分离:identity binding / authorization-request binding / runtime execution binding。
这是Controlled Capability Allocation(CCA)的密码学实现。Twin Agent用架构限制信息流,这篇用密码学验证每一步授权。
arxiv 2607.21325
2026年6月27日GCP博客,Pratik Bhangale。VPC Service Controls专门给agentic AI加的新能力。
Agent作为first-class IAM principal加入VPC-SC规则。principal映射单个agent,principalSet映射agent fleet。PAB强制最小权限——agent只有完成目标必需的权限。
被入侵可立即在网络层撤销agent身份,不需要等应用层响应。
VPC-SC是destination-based perimeter——不看"谁"在请求,看请求"去哪"。三个OWASP攻击向量的防御:
ASI01 indirect prompt injection:agent被劫持尝试发数据到外部webhook→目标在perimeter外→阻断。ASI02/ASI08 tool misuse:prompt劫持导致工具串联恶意传数据→跨信任区→阻断。ASI03 insider threats:agent做BigQuery跨项目拷贝→IAM看到合法SA、防火墙看到合法HTTPS,但VPC-SC检查目标资源在perimeter外→拒绝。
新增MCP属性条件访问:基于mcp.toolName / mcp.method / mcp.tool.isReadOnly控制agent能用哪些工具。例:允许读Workspace MCP但禁止发邮件。
Org Policy设广域不可变约束——资源怎么配置、怎么使用,在组织级别锁死。防止risky configurations by default。不是运行时检查,是配置时约束。
六层各管一件事:架构管信息流、工具管凭据、密码学管授权、身份管准入、网络管流向、资源管配置。任何一层被突破,其他层仍然站着。
因为agent不是传统应用。传统应用的attack surface是代码漏洞——patch了就行。Agent的attack surface是自然语言输入——66.5%的恶意issue能穿透全部guardrails。你没法patch自然语言。
所以不靠agent自己防。在外面包。每一层都假设内层已经被突破了——Twin Agent假设Explore会被劫持,OneCLI假设agent会泄密,VPC-SC假设IAM会被绕过。defense in depth不是新概念,但在agent安全里是必需品。
LLM01 Prompt Injection → 第一层Twin Agent + 第五层VPC-SC。LLM05 Supply Chain → 第二层OneCLI。LLM07 Insecure Plugin → 第五层VPC-SC MCP过滤。LLM08 Excessive Agency → 第三层CVA + 第四层IAM。十个风险里八个被六层覆盖。剩两个(LLM03 Training Data Poisoning和LLM09 Overreliance)是模型层问题,不在agent运行时防御范围内。
最后更新:2026年7月26日