<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Ai安全 on Kalend's Blog</title><link>https://blog.kalend.top/categories/ai%E5%AE%89%E5%85%A8/</link><description>Recent content in Ai安全 on Kalend's Blog</description><generator>Hugo -- gohugo.io</generator><language>zh</language><lastBuildDate>Sun, 02 Aug 2026 08:30:00 +0800</lastBuildDate><atom:link href="https://blog.kalend.top/categories/ai%E5%AE%89%E5%85%A8/index.xml" rel="self" type="application/rss+xml"/><item><title>AI Agent 安全实战：从 MCP 漏洞到权限沙箱，生产环境必须知道的事</title><link>https://blog.kalend.top/2026/08/02/2026-08-02-agent-security-production-guide.html/</link><pubDate>Sun, 02 Aug 2026 08:30:00 +0800</pubDate><guid>https://blog.kalend.top/2026/08/02/2026-08-02-agent-security-production-guide.html/</guid><description>&lt;p&gt;上一篇我们拆了 MCP 生态的 5 条攻击路径——30+ CVE、20 万台服务器中招、1.5 亿次下载处于风险。数据摆完，一个现实问题浮出来：&lt;strong&gt;知道了攻击者怎么打进来，接下来怎么防？&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;这篇文章不重复列漏洞。我要讲的是生产环境的安全工程——权限怎么设计、沙箱怎么选、审批流怎么建、供应链怎么审。每一条都有对应的技术方案和真实案例，看完直接能落地。&lt;/p&gt;
&lt;h2 id="owasp-agentic-top-10ai-agent-的专属安全标准"&gt;OWASP Agentic Top 10：AI Agent 的专属安全标准
&lt;/h2&gt;&lt;p&gt;2025 年 12 月，OWASP 正式发布了 &lt;strong&gt;Agentic AI Top 10&lt;/strong&gt;——这是继 LLM Top 10 之后，专门针对自主 AI Agent 的安全风险标准。两套标准互补：LLM Top 10 关注模型层面的漏洞（prompt injection、数据泄露），Agentic Top 10 关注 Agent 作为「自主行动体」带来的结构性风险。&lt;/p&gt;
&lt;p&gt;核心风险条目：&lt;/p&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;编号&lt;/th&gt;
					&lt;th&gt;风险&lt;/th&gt;
					&lt;th&gt;一句话解释&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;Ag1&lt;/td&gt;
					&lt;td&gt;Agentic 机制滥用&lt;/td&gt;
					&lt;td&gt;Agent 被诱导执行非预期动作&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Ag2&lt;/td&gt;
					&lt;td&gt;工具链安全&lt;/td&gt;
					&lt;td&gt;调用的工具本身有漏洞或恶意&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Ag3&lt;/td&gt;
					&lt;td&gt;多 Agent 信任链&lt;/td&gt;
					&lt;td&gt;Agent 间传递的信息被污染&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Ag4&lt;/td&gt;
					&lt;td&gt;上下文投毒&lt;/td&gt;
					&lt;td&gt;恶意内容注入 Agent 的上下文窗口&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Ag5&lt;/td&gt;
					&lt;td&gt;权限提升&lt;/td&gt;
					&lt;td&gt;Agent 突破任务边界获取更高权限&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Ag6&lt;/td&gt;
					&lt;td&gt;记忆/状态污染&lt;/td&gt;
					&lt;td&gt;持久化记忆被投毒，影响后续决策&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Ag7&lt;/td&gt;
					&lt;td&gt;工作流劫持&lt;/td&gt;
					&lt;td&gt;攻击者篡改 Agent 的执行流程&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Ag8&lt;/td&gt;
					&lt;td&gt;身份冒用&lt;/td&gt;
					&lt;td&gt;Agent 假冒其他身份执行操作&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Ag9&lt;/td&gt;
					&lt;td&gt;资源耗尽&lt;/td&gt;
					&lt;td&gt;无限循环、Token 滥用导致成本失控&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Ag10&lt;/td&gt;
					&lt;td&gt;审计缺失&lt;/td&gt;
					&lt;td&gt;没有日志，出事无法追溯&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;这不是学术分类——每一条都对应我在 #32 中拆解过的攻击路径。区别在于：#32 从攻击者视角讲「怎么打进来」，现在切换到防御者视角讲「怎么建防线」。&lt;/p&gt;
&lt;h2 id="权限最小化agent-不该用你的钥匙开门"&gt;权限最小化：Agent 不该用你的钥匙开门
&lt;/h2&gt;&lt;p&gt;权限设计是第一道防线，也是最容易做错的一环。很多团队的 Agent 直接复用开发者的个人凭证——GitHub token、AWS key、数据库密码。一旦 Agent 被注入恶意指令，攻击者等于拿到了你的全套权限。&lt;/p&gt;
&lt;h3 id="三个核心原则"&gt;三个核心原则
&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;原则一：Agent 身份独立化。&lt;/strong&gt; Agent 需要自己的身份，不是复用人的凭证。微软在 2026 年 7 月发布的《Least Privilege for AI Agents》白皮书中明确建议：每个 Agent 分配独立的服务账号，权限范围严格限定在任务所需之内。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;原则二：Task-scoped RBAC。&lt;/strong&gt; 传统 RBAC 是按角色分配权限——「开发者」角色拥有所有开发工具的访问权。Agent 安全需要的是按任务分配权限：一个负责「读代码并生成文档」的 Agent，不应该有写入数据库的权限。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;原则三：Tool binding 而非 prompt 约束。&lt;/strong&gt; 很多人在 system prompt 里写「不要删除文件」「不要访问外部网络」——这不叫安全，叫「请攻击者用 prompt injection 覆盖你的规则」。权限控制必须在工具层强制执行（runtime checks），不是在 prompt 里写规矩。&lt;/p&gt;
&lt;h3 id="amazon-的真实教训"&gt;Amazon 的真实教训
&lt;/h3&gt;&lt;p&gt;Amazon 内部在多次成本高昂的生产事故后，强制推行了「AI 辅助代码变更需显式审批」的政策。任何由 AI Agent 生成或修改的代码变更，必须经过人工审批才能合入主分支。这不是不信任 AI，而是承认：&lt;strong&gt;自动化操作的错误率虽然低，但一旦出错，影响面比人工操作大得多。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;落地建议：30 天内盘点你的 Agent 身份，移除宽泛角色，引入任务级 RBAC。优先审计那些拥有「admin」或「write-all」权限的 Agent 服务账号。&lt;/p&gt;
&lt;h2 id="沙箱隔离选型五种技术怎么选"&gt;沙箱隔离选型：五种技术，怎么选
&lt;/h2&gt;&lt;p&gt;Agent 有了独立身份，下一步是限制它能接触到的资源。沙箱隔离的核心思想：即使 Agent 被注入恶意指令，它也突破不了运行时的边界。&lt;/p&gt;
&lt;h3 id="五种主流技术对比"&gt;五种主流技术对比
&lt;/h3&gt;&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;技术&lt;/th&gt;
					&lt;th&gt;代表工具&lt;/th&gt;
					&lt;th&gt;隔离强度&lt;/th&gt;
					&lt;th&gt;性能开销&lt;/th&gt;
					&lt;th&gt;适用场景&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;Bubblewrap (namespace)&lt;/td&gt;
					&lt;td&gt;Codex CLI&lt;/td&gt;
					&lt;td&gt;中&lt;/td&gt;
					&lt;td&gt;极低&lt;/td&gt;
					&lt;td&gt;文件系统隔离，开发环境&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;gVisor (用户态内核)&lt;/td&gt;
					&lt;td&gt;Google Cloud Run&lt;/td&gt;
					&lt;td&gt;高&lt;/td&gt;
					&lt;td&gt;中&lt;/td&gt;
					&lt;td&gt;容器级隔离，云端部署&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;MicroVM (Firecracker)&lt;/td&gt;
					&lt;td&gt;Docker Sandbox, Northflank&lt;/td&gt;
					&lt;td&gt;最高&lt;/td&gt;
					&lt;td&gt;高 (128MB+/VM)&lt;/td&gt;
					&lt;td&gt;企业级隔离，多租户&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Container (Docker)&lt;/td&gt;
					&lt;td&gt;Docker Sandboxes&lt;/td&gt;
					&lt;td&gt;中-高&lt;/td&gt;
					&lt;td&gt;低&lt;/td&gt;
					&lt;td&gt;通用场景&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;WASM&lt;/td&gt;
					&lt;td&gt;Cosmonic&lt;/td&gt;
					&lt;td&gt;中&lt;/td&gt;
					&lt;td&gt;极低&lt;/td&gt;
					&lt;td&gt;插件级隔离&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="codex-vs-claude-code两种截然不同的策略"&gt;Codex vs Claude Code：两种截然不同的策略
&lt;/h3&gt;&lt;p&gt;Codex CLI 默认强制启用 Bubblewrap 沙箱，所有文件操作和 shell 命令都在 namespace 隔离中执行。Claude Code 则走可配置路线——开发者可以调整沙箱的严格程度，甚至完全关闭。&lt;/p&gt;
&lt;p&gt;两种策略各有道理：Codex 适合「安全优先，体验次之」的场景；Claude Code 适合「开发者清楚自己在做什么，需要灵活度」的场景。我的建议是：&lt;strong&gt;生产环境用 Codex 的强制模式，开发环境可以用 Claude Code 的可配置模式。&lt;/strong&gt;&lt;/p&gt;
&lt;h3 id="docker-sandbox-的-microvm-升级"&gt;Docker Sandbox 的 microVM 升级
&lt;/h3&gt;&lt;p&gt;2026 年 7 月，Docker 发布了基于 microVM 的沙箱隔离方案。传统容器共享宿主机内核，逃逸漏洞虽然罕见但存在（如 CVE-2024-21626）。microVM 在容器和宿主机之间加了一层虚拟化——每个 Agent 运行在独立的微虚拟机中，即使逃逸容器，也撞上虚拟化层。&lt;/p&gt;
&lt;p&gt;性能代价？每个 microVM 最少需要 128MB 内存。对于跑几十个 Agent 的场景，内存开销不小。但对于高安全需求的生产环境，这是目前最可靠的隔离方案。&lt;/p&gt;
&lt;h3 id="场景推荐"&gt;场景推荐
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;开发/测试&lt;/strong&gt;：Bubblewrap 或 Container，够用就行&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;内部工具/CI&lt;/strong&gt;：Container + 网络隔离&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;面向客户的 Agent&lt;/strong&gt;：gVisor 或 MicroVM&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;多租户 SaaS&lt;/strong&gt;：MicroVM，没商量&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="敏感操作审批流哪些事不能让-agent-自己决定"&gt;敏感操作审批流：哪些事不能让 Agent 自己决定
&lt;/h2&gt;&lt;p&gt;权限再小、沙箱再硬，总有些操作必须人工把关。关键问题是：怎么定义「哪些操作必须审批」？&lt;/p&gt;
&lt;h3 id="必须人工审批的操作"&gt;必须人工审批的操作
&lt;/h3&gt;&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;操作类型&lt;/th&gt;
					&lt;th&gt;为什么必须审批&lt;/th&gt;
					&lt;th&gt;典型后果&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;删除资源&lt;/td&gt;
					&lt;td&gt;误删无法自动恢复&lt;/td&gt;
					&lt;td&gt;数据丢失&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;支付/转账&lt;/td&gt;
					&lt;td&gt;资金不可逆&lt;/td&gt;
					&lt;td&gt;直接经济损失&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;生产部署&lt;/td&gt;
					&lt;td&gt;影响线上用户&lt;/td&gt;
					&lt;td&gt;服务中断&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;凭证变更&lt;/td&gt;
					&lt;td&gt;可能导致权限失控&lt;/td&gt;
					&lt;td&gt;安全事件&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;外部 API 调用&lt;/td&gt;
					&lt;td&gt;无法撤回&lt;/td&gt;
					&lt;td&gt;数据泄露&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="approval-gate-实现方案"&gt;Approval Gate 实现方案
&lt;/h3&gt;&lt;p&gt;最简单的实现：在 Agent 的 tool 定义中，对敏感操作标记 &lt;code&gt;requires_approval: true&lt;/code&gt;。当 Agent 尝试调用该工具时，框架暂停执行，发送审批请求到 Slack/邮件/IM，等待人工确认后继续。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;span class="lnt"&gt;2
&lt;/span&gt;&lt;span class="lnt"&gt;3
&lt;/span&gt;&lt;span class="lnt"&gt;4
&lt;/span&gt;&lt;span class="lnt"&gt;5
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Agent 调用 &amp;#34;delete_resource(id=xxx)&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; → 框架检测到 requires_approval
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; → 暂停执行，发送审批通知
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; → 人工审核 → 批准/拒绝
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; → 批准：继续执行 → 拒绝：终止并记录
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id="读写分离原则"&gt;读写分离原则
&lt;/h3&gt;&lt;p&gt;一个被低估的安全设计：&lt;strong&gt;把读操作和写操作拆成不同的 Agent。&lt;/strong&gt; 读 Agent 只有查询权限，写 Agent 有修改权限但必须通过审批流。这样即使读 Agent 被注入恶意指令，它也压根没有写入的能力——不是「不让它写」，而是「它物理上不能写」。&lt;/p&gt;
&lt;h2 id="供应链安全审计mcp-server-不是随便装的"&gt;供应链安全审计：MCP Server 不是随便装的
&lt;/h2&gt;&lt;p&gt;MCP 生态的供应链攻击已经不是假设性威胁。在 #32 中我们拆解过 npm typosquatting、后门代码、恶意 MCP Server 等真实案例。这里讲怎么防。&lt;/p&gt;
&lt;h3 id="安装前必做检查"&gt;安装前必做检查
&lt;/h3&gt;&lt;p&gt;装一个 MCP Server 之前，至少检查这几项：&lt;/p&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;检查项&lt;/th&gt;
					&lt;th&gt;怎么查&lt;/th&gt;
					&lt;th&gt;红线&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;来源&lt;/td&gt;
					&lt;td&gt;GitHub/GitLab 仓库地址&lt;/td&gt;
					&lt;td&gt;无仓库或个人小号&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Star 数&lt;/td&gt;
					&lt;td&gt;低于 100 需警惕&lt;/td&gt;
					&lt;td&gt;低于 10 且刚发布&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;维护频率&lt;/td&gt;
					&lt;td&gt;最近 commit 时间&lt;/td&gt;
					&lt;td&gt;超过 6 个月无更新&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;依赖树&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;npm audit&lt;/code&gt; / &lt;code&gt;pip-audit&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;有已知 CVE 未修&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;代码审查&lt;/td&gt;
					&lt;td&gt;快速扫一眼主入口文件&lt;/td&gt;
					&lt;td&gt;有混淆代码或可疑网络请求&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="运行时监控"&gt;运行时监控
&lt;/h3&gt;&lt;p&gt;安装检查只是第一道关。运行时监控更关键：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;网络流量审计&lt;/strong&gt;：MCP Server 启动后，用 &lt;code&gt;netstat&lt;/code&gt; 或 &lt;code&gt;ss&lt;/code&gt; 检查它连接了哪些外部地址&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;文件系统监控&lt;/strong&gt;：用 &lt;code&gt;inotifywait&lt;/code&gt; 或 auditd 监控它读写了哪些文件&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;进程行为&lt;/strong&gt;：&lt;code&gt;strace -f -e trace=network&lt;/code&gt; 追踪它的系统调用&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="docker-mcp-的供应链方案"&gt;Docker MCP 的供应链方案
&lt;/h3&gt;&lt;p&gt;Docker 推出的 MCP marketplace 对上架的 Server 做了三重检查：静态代码扫描、依赖树审计、运行时行为监控。虽然不能保证 100% 安全，但比直接从 npm 装一个未审核的包靠谱得多。&lt;/p&gt;
&lt;p&gt;建议：&lt;strong&gt;生产环境只用经过审核的 MCP Server，开发环境可以用社区的但必须容器化隔离。&lt;/strong&gt;&lt;/p&gt;
&lt;h2 id="全链路审计追踪出事能追溯"&gt;全链路审计追踪：出事能追溯
&lt;/h2&gt;&lt;p&gt;安全的最后一道防线是审计。如果 Agent 被注入恶意指令并执行了破坏性操作，你需要能回答三个问题：&lt;strong&gt;做了什么、什么时候做的、是谁触发的。&lt;/strong&gt;&lt;/p&gt;
&lt;h3 id="审计日志必须包含的字段"&gt;审计日志必须包含的字段
&lt;/h3&gt;&lt;p&gt;每一条 tool call 记录必须包含：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;时间戳&lt;/strong&gt;：精确到毫秒&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Agent ID&lt;/strong&gt;：哪个 Agent 执行的&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Task ID&lt;/strong&gt;：属于哪个任务&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Tool 名称&lt;/strong&gt;：调用了什么工具&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;输入参数&lt;/strong&gt;：传了什么参数&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;执行结果&lt;/strong&gt;：成功/失败/返回值&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;触发来源&lt;/strong&gt;：用户手动触发还是 Agent 自动调用&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;审批状态&lt;/strong&gt;：是否经过人工审批&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="异常行为检测"&gt;异常行为检测
&lt;/h3&gt;&lt;p&gt;基于审计日志，可以设置告警规则：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;单个 Agent 在短时间内调用大量写操作&lt;/li&gt;
&lt;li&gt;Agent 访问了任务范围之外的工具&lt;/li&gt;
&lt;li&gt;Agent 尝试读取凭证文件（&lt;code&gt;.env&lt;/code&gt;、&lt;code&gt;.ssh&lt;/code&gt;）&lt;/li&gt;
&lt;li&gt;Agent 向外部 IP 发送大量数据&lt;/li&gt;
&lt;li&gt;同一 Agent 在非工作时间执行操作&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;这些规则不需要复杂的 ML 模型——简单的阈值检测就能拦住 80% 的异常行为。&lt;/p&gt;
&lt;h2 id="落地安全检查清单"&gt;落地安全检查清单
&lt;/h2&gt;&lt;p&gt;最后附一个可直接执行的 checklist。按这个过一遍，你的 Agent 安全基线就有了：&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;权限层&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;input disabled="" type="checkbox"&gt; Agent 使用独立服务账号，不复用个人凭证&lt;/li&gt;
&lt;li&gt;&lt;input disabled="" type="checkbox"&gt; 权限按任务分配（Task-scoped），不是按角色&lt;/li&gt;
&lt;li&gt;&lt;input disabled="" type="checkbox"&gt; 敏感工具标记 &lt;code&gt;requires_approval&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;input disabled="" type="checkbox"&gt; 读写 Agent 分离&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;沙箱层&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;input disabled="" type="checkbox"&gt; Agent 在隔离环境中运行（Container/MicroVM/gVisor）&lt;/li&gt;
&lt;li&gt;&lt;input disabled="" type="checkbox"&gt; 网络访问白名单限制&lt;/li&gt;
&lt;li&gt;&lt;input disabled="" type="checkbox"&gt; 文件系统只读挂载（除必要写入目录）&lt;/li&gt;
&lt;li&gt;&lt;input disabled="" type="checkbox"&gt; 资源配额（CPU/内存/Token）设置上限&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;审批层&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;input disabled="" type="checkbox"&gt; 删除、支付、部署、凭证变更必须人工审批&lt;/li&gt;
&lt;li&gt;&lt;input disabled="" type="checkbox"&gt; 审批流有超时机制（避免无限等待）&lt;/li&gt;
&lt;li&gt;&lt;input disabled="" type="checkbox"&gt; 审批记录持久化存储&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;供应链层&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;input disabled="" type="checkbox"&gt; MCP Server 安装前完成来源/Star/依赖检查&lt;/li&gt;
&lt;li&gt;&lt;input disabled="" type="checkbox"&gt; 运行时网络流量和文件访问监控&lt;/li&gt;
&lt;li&gt;&lt;input disabled="" type="checkbox"&gt; 生产环境只用审核过的 MCP Server&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;审计层&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;input disabled="" type="checkbox"&gt; 所有 tool call 有完整日志&lt;/li&gt;
&lt;li&gt;&lt;input disabled="" type="checkbox"&gt; 异常行为告警规则已配置&lt;/li&gt;
&lt;li&gt;&lt;input disabled="" type="checkbox"&gt; 日志保留至少 90 天&lt;/li&gt;
&lt;li&gt;&lt;input disabled="" type="checkbox"&gt; 支持按 Agent/Task/时间范围查询&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;p&gt;这篇文章的核心观点只有一句：&lt;strong&gt;Agent 的安全不是「写好 prompt」的问题，是「建好工程」的问题。&lt;/strong&gt; 权限、沙箱、审批、供应链、审计——这五层防线少一层都不行。&lt;/p&gt;
&lt;p&gt;如果你正在生产环境跑 AI Agent，建议先拿上面的 checklist 对照一遍。有具体问题欢迎评论区聊。&lt;/p&gt;

 &lt;blockquote&gt;
 &lt;p&gt;系列文章：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class="link" href="https://blog.kalend.top/2026/06/29/mcp-security-vulnerabilities.html/" &gt;MCP 安全血案：5 条攻击路径、20 万台服务器中招&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;本文：Agent 安全实战（防御侧）&lt;/li&gt;
&lt;/ul&gt;

 &lt;/blockquote&gt;</description></item></channel></rss>