Agent 插件与 Skill 供应链安全
Agent 产品一旦支持插件、Skill 或 MCP Server,就进入了供应链安全领域。
插件能扩展能力,也能扩大攻击面。尤其是 Coding Agent 场景,插件可能拥有文件读写、命令执行、网络访问、上下文读取等能力。如果缺少权限边界,插件就会变成安全短板。
一、Agent 插件为什么危险
传统插件通常只扩展 UI 或特定功能,而 Agent 插件往往会参与决策和执行。
它可能:
- 读取用户输入和模型上下文
- 向模型返回工具结果
- 访问本地文件
- 执行脚本
- 连接远程服务
- 安装额外依赖
- 调用系统命令
这意味着插件不只是“代码扩展”,还是 Agent 行为链路的一部分。
一个恶意插件可以不直接攻击系统,而是通过工具结果诱导模型下一步执行危险动作。
二、常见插件形态
Agent 生态里的扩展通常包括:
- IDE 插件
- 本地脚本
- npm 包
- Python 包
- MCP Server
- Skill 目录
- 浏览器自动化扩展
- 企业内部工具连接器
不同形态风险不同,但安全目标一致:
- 来源可信
- 权限可控
- 行为可审计
- 更新可验证
- 出事可追溯和禁用
三、供应链攻击路径
1. 恶意安装脚本
很多包管理器支持安装脚本,例如 npm 的 postinstall。
攻击路径:
- 用户安装插件
- 插件安装依赖
- 依赖执行 postinstall
- 脚本读取
.env或 SSH Key - 数据被上传
缓解方式:
- 安装脚本默认沙箱执行
- 安装前展示脚本风险
- 企业策略禁用未知插件安装脚本
- 锁定依赖版本和 hash
2. 插件权限声明不实
插件 manifest 声明只读项目文件,实际却访问用户目录。
缓解方式:
- manifest 声明权限
- 运行时按权限强制隔离
- 权限超范围直接阻断
- 审计插件实际行为
3. 插件更新被劫持
插件首次安装安全,但后续版本被污染。
缓解方式:
- 插件签名
- 版本固定
- 更新包校验
- 灰度更新
- 企业管理员审批升级
4. Tool Injection
插件返回结果中包含恶意提示,诱导 Agent 执行下一步危险动作。
缓解方式:
- 插件输出标记为不可信数据
- 模型上下文中区分指令和数据
- 工具执行前做独立策略判断
- 高危动作仍需审批
四、插件权限 manifest
一个插件至少应该声明:
- 插件名称和版本
- 作者和来源
- 签名信息
- 文件权限
- 网络权限
- 命令执行权限
- 是否读取上下文
- 是否访问凭证
- 是否调用其他插件
示例:
{
"name": "code-review-helper",
"version": "1.2.0",
"publisher": "example",
"permissions": {
"filesystem": {
"read": ["workspace"],
"write": []
},
"network": {
"connect": ["api.example.com"]
},
"process": {
"execute": []
},
"context": {
"readConversation": false,
"readToolResults": true
},
"secrets": {
"read": false
}
}
}
manifest 不是声明完就结束,关键是运行时要强制执行。
五、插件安全审核
插件进入市场前,可以做几类审核:
- 静态扫描
- 依赖漏洞扫描
- Secret 扫描
- 高危 API 扫描
- 安装脚本检查
- 动态行为沙箱
- 人工审核高权限插件
高危 API 包括:
- 文件系统递归读取
- 子进程执行
- 网络请求
- 动态代码加载
- 环境变量读取
- 凭证存储访问
- 加密和压缩组合行为
单独出现不一定危险,但组合起来要提高风险等级。
例如“读取 .env + 压缩 + 上传未知域名”就是明显高危行为链。
六、插件运行时隔离
插件隔离可以按成熟度分阶段建设。
第一阶段:产品层隔离
- 插件调用统一经过代理
- 限制文件路径
- 限制网络域名
- 限制命令执行
- 记录审计日志
第二阶段:进程隔离
- 插件独立进程运行
- 主进程和插件通过 RPC 通信
- 限制环境变量
- 插件崩溃不影响主程序
第三阶段:系统级沙箱
- Windows AppContainer 或 Job Object
- macOS App Sandbox
- 容器化执行
- 网络代理和文件系统虚拟化
工程上可以先做第一阶段,因为最容易落地,也能覆盖大部分高风险行为。
七、企业治理
企业版 Agent 插件安全还需要治理能力:
- 插件白名单
- 插件黑名单
- 插件版本锁定
- 禁止个人安装未知插件
- 高权限插件审批
- 插件行为审计
- 安全事件一键禁用插件
- 企业内部插件仓库
这类能力很重要,因为企业终端不是单机环境,而是成百上千台设备的统一风险面。
八、Roadmap 中的位置
在 AI 终端安全 Roadmap 里,插件和 Skill 供应链安全是生态扩展阶段必须补上的能力:
我会把 Agent 插件看成供应链和运行时安全问题。插件安装前做来源、签名、依赖和安装脚本检查;安装后通过 manifest 声明权限,并由运行时强制限制文件、网络、命令、上下文和凭证访问;插件输出默认视为不可信数据,防止 Tool Injection;企业侧支持白名单、版本锁定、审计和紧急禁用。
这样才能把插件安全从单纯的代码扫描,提升到完整的生态治理体系。