OWASP Agentic Skills Top 10 解读:AI Agent Skill 安全风险总览
随着 AI Agent 从“会回答”走向“会执行”,Skill 正在成为新的攻击面。OWASP 新发布的 Agentic Skills Top 10(AST10),尝试系统梳理各类 Agent Skill 在安装、执行、更新和治理过程中的核心安全风险。
原始资料:
- OWASP 项目页:https://owasp.org/www-project-agentic-skills-top-10/
- GitHub 仓库:https://github.com/OWASP/www-project-agentic-skills-top-10
原文许可为 CC BY-SA 4.0。本文为基于原始资料的整理与改写。
一图看懂:MCP、模型、Skill 的关系
OWASP 在项目页里给出一个很重要的判断:
- MCP 解决的是“模型如何调用工具”
- Skill 解决的是“这些工具被怎样编排起来完成任务”
也就是说,Skill 并不只是权限声明,而是把 计划、工具调用顺序、文件访问、网络访问、持久化状态 组合成一套可执行行为。
graph LR
A[LLM / Agent] --> B[MCP / Tools]
B --> C[Files]
B --> D[Network]
B --> E[Shell]
A --> F[Skill Layer]
F --> G[Task Decomposition]
F --> H[Workflow Orchestration]
F --> I[Guardrails]
F --> J[Persistent Memory]
真正危险的不是“模型能不能做事”,而是 Skill 把哪些能力串联起来自动做事。这也是 OWASP 单独为 Agent Skill 建立 Top 10 项目的原因。
为什么这不是未来问题,而是现实问题
OWASP 在项目页中直接把现状定义为:“危机已经开始”。截至 2026 年一季度,Agent Skill 生态已经出现大规模恶意投毒、过度授权、供应链污染与本地实例劫持等真实事件。
关键数据
| 指标 | 数值 | 说明 |
|---|---|---|
| 已扫描 Skills | 3,984 | Snyk ToxicSkills,2026 年 2 月 |
| 存在安全缺陷的 Skills | 1,467 | 占比 36.82% |
| 含严重问题的 Skills | 534 | 占比 13.4% |
| 已确认恶意载荷 | 76+ | 已发现真实恶意样本 |
| ClawHavoc 恶意 Skills | 1,184 | Antiy CERT,2026 年 2 月 |
| 暴露在公网的 OpenClaw 实例 | 135,000+ | SecurityScorecard,2026 年 2 月 |
| OpenClaw 已披露 CVE | 9 | 其中 3 个已有公开利用 |
2026 年事件时间线
2026-01 ClawHavoc 爆发
攻击者向 ClawHub 大量投放恶意 Skill,窃取 API Key、钱包私钥、SSH 凭据、浏览器密码和 .env 文件,并尝试向 MEMORY.md、SOUL.md 写入持久化后门指令。
2026-02 ToxicSkills 发布
Snyk 发布针对 Agent Skill 生态的系统性审计结果,指出三成以上 Skill 存在安全缺陷,并确认多类恶意样本仍在流通。
2026-02 Claude Code 漏洞披露
Check Point Research 披露 Claude Code 相关漏洞,说明仓库级配置文件已经能够在“用户尚未明确信任仓库”前触发危险执行或密钥泄露。
2026-02 ClawJacked 披露
Oasis Security 披露本地 OpenClaw 实例可被恶意网页通过 localhost WebSocket 暴力连接劫持,进而静默注册新设备并外传数据。
2026-03 大规模暴露实例确认
SecurityScorecard 确认超过 13.5 万个 OpenClaw 实例暴露在互联网,且其中大量实例与既有泄露活动相关联。
什么是 Agentic Skill
OWASP 将 Agentic Skill 定义为一类 可复用、具名、可组合的行为封装。它通常同时包含以下能力:
- 任务理解与目标拆解
- 多步骤规划与工具编排
- 文件系统、网络、Shell 的实际调用
- 输出格式与安全约束
- 跨会话状态或持久记忆
和普通工具的区别
| 对象 | 关注点 | 典型问题 |
|---|---|---|
| 模型 | 会不会推理 | 幻觉、越权回答 |
| MCP / Tools | 能调用哪些资源 | 权限边界、协议安全 |
| Skill | 如何把多种能力串起来执行 | 工作流投毒、权限放大、持久化后门 |
OWASP 提到的 “Lethal Trifecta”
一个 Skill 同时具备下面三项能力时,风险会陡增:
- 能访问私密数据,例如 SSH Key、API 凭据、钱包文件、浏览器数据。
- 能接触不可信内容,例如 Skill 指令、记忆文件、邮件或网页文本。
- 能对外通信,例如网络出站、Webhook、
curl请求。
很多生产环境下的 Agent 部署,实际上已经满足这三个条件。这意味着 Skill 一旦被污染,就不再只是“提示词问题”,而是 真实的执行层安全问题。
各平台常见 Skill 形态
| 平台 | 典型格式 | 主要风险文件 |
|---|---|---|
| OpenClaw | SKILL.md(YAML + Markdown) |
SKILL.md、SOUL.md、MEMORY.md |
| Claude Code | skill.json / YAML + scripts/ |
.claude/settings.json、hooks 配置 |
| Cursor / Codex | manifest.json + handler scripts |
manifest.json、工具配置 |
| VS Code | package.json + 扩展逻辑 |
package.json、extension.ts |
OWASP AST10:10 个核心风险
下表是项目页给出的 Top 10 总览,我这里做了中文整理。
| 编号 | 风险名称 | 严重级别 | 核心问题 | 关键缓解思路 |
|---|---|---|---|---|
| AST01 | 恶意 Skills | Critical | Skill 本体带有窃密、后门、投毒逻辑 | 签名、注册表扫描、来源验证 |
| AST02 | 供应链妥协 | Critical | 发布链路、仓库配置、依赖和来源被污染 | 透明日志、可追溯性、完整性校验 |
| AST03 | 过度授权 Skills | High | 权限声明远超任务所需 | 最小权限、显式 Manifest、Schema 校验 |
| AST04 | 不安全元数据 | High | 描述、权限、风险级别等元数据误导用户 | Manifest lint、静态分析、诚实声明 |
| AST05 | 不安全反序列化 | High | Skill 配置或元数据解析过程可被利用 | 安全解析器、沙箱加载、禁用危险 Tag |
| AST06 | 隔离薄弱 | High | Skill 在宿主机直接运行,缺少容器或沙箱 | 容器化、默认隔离、显式 Host 模式 |
| AST07 | 更新漂移 | Medium | 自动更新或依赖漂移引入未审查变化 | 版本固定、哈希锁定、不可变制品 |
| AST08 | 扫描不足 | Medium | 只做模式匹配,无法识别语义级恶意指令 | 语义分析 + 行为分析 + 多阶段扫描 |
| AST09 | 缺少治理 | Medium | 企业内部没有清单、审批、审计和身份控制 | 技能台账、审批流、审计日志 |
| AST10 | 跨平台复用 | Medium | 恶意 Skill 结构可在多平台迁移复用 | 通用格式标准、跨平台注册治理 |
风险与现实事件映射
| 风险 | 现实案例 |
|---|---|
| AST01 | ClawHavoc、ToxicSkills 中的恶意样本 |
| AST02 | ClawHub 投毒、Claude Code 仓库级配置风险 |
| AST03 | Snyk 披露的 280+ 凭据泄露型 Skills |
| AST04 | 假冒 “Google Skill” 等元数据欺骗案例 |
| AST05 | 基于 SKILL.md / YAML 的恶意载荷注入 |
| AST06 | OpenClaw 宿主机运行与 13.5 万暴露实例 |
| AST07 | ClawJacked 与补丁滞后利用 |
| AST08 | 传统模式匹配扫描器被自然语言操纵绕过 |
| AST09 | 暴露实例缺乏 SOC 可见性与审批治理 |
| AST10 | 恶意 Skill 在多个注册表或平台之间迁移 |
安全团队最该先做什么
项目页给出了一份快速检查清单,我把它按角色重新组织成更便于落地的版本。
- 立即盘点当前使用中的 Agent 平台与已安装 Skills。
- 建立 Skill 审批机制,禁止未经评审直接安装。
- 为 Skill 执行过程开启结构化审计日志。
- 重点检查是否存在对私钥、凭据、浏览器数据、
.env文件的读取权限。 - 订阅平台安全公告,跟踪注册表投毒、漏洞与高风险更新。
- 只声明任务真正需要的最小权限。
- 不要把
network: true这类粗粒度能力直接开放给 Skill。 - 采用安全 YAML / JSON 解析方式,避免反序列化风险。
- 发布前对 Skill 做签名,并附带内容哈希。
- 除非核心功能必须如此,否则不要请求写入
SOUL.md、MEMORY.md、AGENTS.md。
- 把容器或沙箱作为默认执行环境,而不是可选项。
- 在发布时和安装时都做扫描,且不能只依赖静态特征匹配。
- 对 Skill Manifest 做严格 Schema 校验。
- 引入透明日志、签名校验与制品可追溯性。
- 禁止仓库控制的配置在用户显式信任前执行。
一个值得关注的方向:Universal Skill Format
OWASP 在项目页里提出了一个跨平台的 Universal Skill Format 草案,目标是降低 AST01 到 AST10 中的大部分基础风险。
它强调的不是“让格式更统一”这么简单,而是把安全治理信息直接纳入 Skill 元数据层:
- 明确作者身份与签名密钥
- 显式区分
read、write、deny_write - 用域名白名单约束网络访问
- 显式声明是否允许 Shell
- 增加
risk_tier、scan_status、content_hash
示例结构
1 | name: example-skill |
这套思路的价值在于:把原本散落在“文档要求”“平台约定”“企业流程”里的安全约束,尽量前移到 可验证、可扫描、可治理 的 Manifest 中。
我的理解:AST10 实际上补上了一个长期被忽视的中间层
过去在谈 AI 安全时,很多讨论集中在两端:
- 模型本身是否安全
- 工具协议和插件接口是否安全
但 Skill 处在一个很关键的中间层:
- 它决定工具如何被串联
- 它决定权限如何被放大
- 它决定不可信输入如何影响执行
- 它决定恶意逻辑是否能跨会话持久存在
所以 AST10 的价值,不只是列出 10 个条目,而是提醒大家重新认识一个事实:
Agent Skill 已经是软件供应链的一部分,也是执行链的一部分。
如果企业已经在内部使用 Claude Code、Cursor、Codex、VS Code Agent、OpenClaw 一类生态,那么 Skill 安全治理不该再被视为“插件管理”的边角问题,而应该进入正式的 AppSec、DevSecOps 与安全运营流程。
参考来源
- OWASP Agentic Skills Top 10 项目页,最后更新于 2026 年 3 月。
- OWASP 项目页中汇总的公开研究与事件,以下为文中提到的对应原始链接:
| 机构 | 研究 / 事件 | 链接 |
|---|---|---|
| Snyk | ToxicSkills | Snyk Finds Prompt Injection in 36%, 1467 Malicious Payloads in a ToxicSkills Study of Agent Skills Supply Chain Compromise |
| Check Point Research | Claude Code 配置文件导致 RCE 与 API Token 外传 | Caught in the Hook: RCE and API Token Exfiltration Through Claude Code Project Files |
| Oasis Security | ClawJacked / OpenClaw 本地 Agent 劫持 | OpenClaw Vulnerability: Website-to-Local Agent Takeover |
| Antiy CERT | ClawHavoc 大规模投毒事件分析 | ClawHavoc: Analysis of Large-Scale Poisoning Campaign Targeting the OpenClaw Skill Market for AI Agents |
| SecurityScorecard | OpenClaw 暴露实例与基础设施风险 | How Exposed OpenClaw Deployments Turn Agentic AI Into an Attack Surface |
