随着 AI Agent 从“会回答”走向“会执行”,Skill 正在成为新的攻击面。OWASP 新发布的 Agentic Skills Top 10(AST10),尝试系统梳理各类 Agent Skill 在安装、执行、更新和治理过程中的核心安全风险。

原始资料:

原文许可为 CC BY-SA 4.0。本文为基于原始资料的整理与改写。

一图看懂:MCP、模型、Skill 的关系

OWASP 在项目页里给出一个很重要的判断:

  • MCP 解决的是“模型如何调用工具”
  • Skill 解决的是“这些工具被怎样编排起来完成任务”

也就是说,Skill 并不只是权限声明,而是把 计划、工具调用顺序、文件访问、网络访问、持久化状态 组合成一套可执行行为。

真正危险的不是“模型能不能做事”,而是 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.mdSOUL.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 同时具备下面三项能力时,风险会陡增:

  1. 能访问私密数据,例如 SSH Key、API 凭据、钱包文件、浏览器数据。
  2. 能接触不可信内容,例如 Skill 指令、记忆文件、邮件或网页文本。
  3. 能对外通信,例如网络出站、Webhook、curl 请求。

很多生产环境下的 Agent 部署,实际上已经满足这三个条件。这意味着 Skill 一旦被污染,就不再只是“提示词问题”,而是 真实的执行层安全问题

各平台常见 Skill 形态

平台 典型格式 主要风险文件
OpenClaw SKILL.md(YAML + Markdown) SKILL.mdSOUL.mdMEMORY.md
Claude Code skill.json / YAML + scripts/ .claude/settings.json、hooks 配置
Cursor / Codex manifest.json + handler scripts manifest.json、工具配置
VS Code package.json + 扩展逻辑 package.jsonextension.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 在多个注册表或平台之间迁移

安全团队最该先做什么

项目页给出了一份快速检查清单,我把它按角色重新组织成更便于落地的版本。

  1. 立即盘点当前使用中的 Agent 平台与已安装 Skills。
  2. 建立 Skill 审批机制,禁止未经评审直接安装。
  3. 为 Skill 执行过程开启结构化审计日志。
  4. 重点检查是否存在对私钥、凭据、浏览器数据、.env 文件的读取权限。
  5. 订阅平台安全公告,跟踪注册表投毒、漏洞与高风险更新。
  1. 只声明任务真正需要的最小权限。
  2. 不要把 network: true 这类粗粒度能力直接开放给 Skill。
  3. 采用安全 YAML / JSON 解析方式,避免反序列化风险。
  4. 发布前对 Skill 做签名,并附带内容哈希。
  5. 除非核心功能必须如此,否则不要请求写入 SOUL.mdMEMORY.mdAGENTS.md
  1. 把容器或沙箱作为默认执行环境,而不是可选项。
  2. 在发布时和安装时都做扫描,且不能只依赖静态特征匹配。
  3. 对 Skill Manifest 做严格 Schema 校验。
  4. 引入透明日志、签名校验与制品可追溯性。
  5. 禁止仓库控制的配置在用户显式信任前执行。

一个值得关注的方向:Universal Skill Format

OWASP 在项目页里提出了一个跨平台的 Universal Skill Format 草案,目标是降低 AST01 到 AST10 中的大部分基础风险。

它强调的不是“让格式更统一”这么简单,而是把安全治理信息直接纳入 Skill 元数据层:

  • 明确作者身份与签名密钥
  • 显式区分 readwritedeny_write
  • 用域名白名单约束网络访问
  • 显式声明是否允许 Shell
  • 增加 risk_tierscan_statuscontent_hash

示例结构

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
name: example-skill
version: 1.0.0
platforms: [openclaw, claude, cursor, vscode]

author:
name: "Author Name"
identity: "did:web:example.com"
signing_key: "ed25519:pubkey_hex_here"

permissions:
files:
read:
- ~/.config/app.json
write:
- ~/.config/app.json
deny_write:
- SOUL.md
- MEMORY.md
- AGENTS.md
network:
allow:
- api.example.com
deny: "*"
shell: false

risk_tier: L1
signature: "ed25519:ABCDEF1234567890..."
content_hash: "sha256:abcdef1234..."

这套思路的价值在于:把原本散落在“文档要求”“平台约定”“企业流程”里的安全约束,尽量前移到 可验证、可扫描、可治理 的 Manifest 中。


我的理解:AST10 实际上补上了一个长期被忽视的中间层

过去在谈 AI 安全时,很多讨论集中在两端:

  • 模型本身是否安全
  • 工具协议和插件接口是否安全

但 Skill 处在一个很关键的中间层:

  • 它决定工具如何被串联
  • 它决定权限如何被放大
  • 它决定不可信输入如何影响执行
  • 它决定恶意逻辑是否能跨会话持久存在

所以 AST10 的价值,不只是列出 10 个条目,而是提醒大家重新认识一个事实:

Agent Skill 已经是软件供应链的一部分,也是执行链的一部分。

如果企业已经在内部使用 Claude Code、Cursor、Codex、VS Code Agent、OpenClaw 一类生态,那么 Skill 安全治理不该再被视为“插件管理”的边角问题,而应该进入正式的 AppSec、DevSecOps 与安全运营流程。


参考来源

  1. OWASP Agentic Skills Top 10 项目页,最后更新于 2026 年 3 月。
  2. 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