OWASP 给 Skill 单开了一张 Top 10:Agent 安全开始进入“行为层”

OWASP 正在通过 Agentic Skills Top 10(AST10)把 skill 从模型安全和协议安全之间单独拎出来,作为一个独立治理对象来讨论。它要解决的不是抽象的“AI 很危险”,而是当 skill 已经能够打包权限、脚本、记忆文件、更新链路和跨平台行为时,企业究竟该如何识别这类风险、组织控制点,并把它纳入正式治理流程。

一、什么是 Skill,为什么它值得被单独治理

1. Skill 不是 prompt,也不是 tool

按照 OWASP 官方材料的定义,skill 处在 AI agent 的“行为层”或“执行层”。如果说 MCP 更关注模型如何和工具对接,那么 AST10 更关注这些工具最终会被组织成什么行为。换句话说,tool 定义可调用资源,skill 则更接近于决定这些资源如何被编排、约束和执行的行为单元。这一划分并非本文的抽象概括,而是 OWASP 在项目页中通过 MCP 与 AST10 的对比所直接表达的。13

这也是为什么 skill 不能简单等同于“一段提示词”。根据 OWASP 风险页与 checklist 所呈现的典型场景,skill 往往涉及以下要素,且这些要素并非穷尽:

一旦这些要素被打包成可安装、可复用、可迁移的行为单元,skill 本身就不再只是 agent 的辅助配置,而变成了一个需要被审查、签名、隔离、监控和治理的软件对象。14

2. Skill 的问题,是它把“能力”与“执行方式”绑在了一起

传统软件安全里,人们习惯分别审视代码、权限和运行环境。但 skill 的特殊之处在于,它把自然语言指令、行为编排、权限声明和运行时上下文揉在了一起。一个表面上看起来只是在“帮助完成任务”的 skill,实际可能同时携带:

OWASP 想治理的,正是这种“功能描述很温和,但执行后果可能极重”的中间层对象。15

二、为什么现在要单独讨论 Skill Security

1. 风险已经从“回答错误”进入“真实执行”

OWASP 在项目页和仓库首页都把 AST10 放在一个非常明确的背景下:项目材料引用了一系列已披露或研究性案例,显示这些风险正在从理论讨论进入实际攻击场景。其背景叙述涉及恶意 skill 批量投放、仓库配置触发执行、过度授权导致的敏感信息暴露,以及扫描和治理失效等问题。13

更关键的是,这些风险并不只是“模型答错了”。它们直接关联:

这意味着 skill 风险的后果已经进入企业真正关心的层面:密钥泄露、远程命令执行、工作区破坏、影子部署和审计失明。13

2. OWASP 的问题意识,不是泛泛的 AI 安全,而是 agent 落地后的行为风险

AST10 的出现说明,OWASP 已经意识到:当 agent 开始被做成可安装的 skill、可发布的 package、可跨平台迁移的 manifest 时,AI 安全的重心就会向“行为包治理”倾斜。此时真正危险的,不只是模型会不会被诱导输出错误信息,而是这个 agent 是否已经有能力把错误意图落实为文件读取、网络外发、shell 执行和持久状态篡改。12

这一背景决定了 AST10 的目标不是泛化地重讲一遍 AI 风险,而是专门回答一个更窄、但更接近企业落地的问题:当 agent 的行为被封装成 skill 以后,哪些地方最容易失守,平台和企业又该把控制点放在哪里。23

三、为什么现有的安全框架不够

1. 只看 LLM 安全,不足以覆盖 skill 风险

如果只从 LLM 风险出发,讨论重点通常会放在 prompt injection、数据泄露、幻觉、越权代理等模型或推理层问题上。但 skill 带来的问题不只发生在模型“想了什么”,而是发生在模型“通过什么包装机制去做事”。OWASP 在 proposal 和主文档中,都将 AST10 定位于 model layer 与 protocol layer 之间,强调它关注的是 skill content / behavior layer。23

2. 只看 MCP 安全,也不足以覆盖 skill 风险

同样地,只看 MCP 或工具协议层,也解决不了 skill 这一层的问题。MCP 处理的是模型如何与工具交互、工具调用的边界和协议安全;而 AST10 要处理的是 skill 作为内容与行为编排单元,如何声明权限、如何携带脚本、如何分发更新、如何跨平台迁移以及如何进入企业治理流程。OWASP 的官方表述很直接:MCP 关注“模型如何与工具对话”,AST10 关注“这些工具最终做成了什么行为”。123

3. Skill 是一个介于软件包和自然语言指令之间的新对象

从治理视角看,可以将 skill 理解为一个介于软件包和自然语言指令之间的新对象。它像软件包,因为它需要来源校验、签名、哈希、SBOM、依赖扫描和更新治理;它又不像传统软件包,因为它往往还带有自然语言指令层、manifest 层和跨会话状态层。也正因此,OWASP 才会把它作为一个新的规制对象单独拎出来。345

四、OWASP 提出的回应:把 Skill 作为独立规制对象的 AST10

1. AST10 想治理什么

根据官方 proposal 和项目页,AST10 的目标对象是主流 agent skill 生态中的 skill / manifest / script 组合,包括 OpenClaw 的 SKILL.md、Claude Code 的 skill.json 或 YAML 配置加脚本、Cursor/Codex 的 manifest.json 与 handlers,以及 VS Code 的 package.json 与扩展式能力。12

这一步很重要,因为它说明 OWASP 不是在做一个模糊的“AI 工具安全指南”,而是在定义一个新的治理边界:凡是那种可以被安装、可复用、能跨平台传播、并且能改变 agent 行为方式的打包单元,都可以被纳入专门的 skill security 讨论。23

2. AST10 不想治理什么

同样重要的是它同时划出的边界。官方 proposal 将以下内容排除在 AST10 范围之外:

这意味着 AST10 不是为了替代现有 OWASP AI 相关项目,而是为了补上它们之间原本没有被完整覆盖的一层。2

3. 如果按企业治理视角重组,AST10 可以看成四个控制家族

需要强调的是,OWASP 官方仍以 AST01 到 AST10 的方式列示风险,并未提供下述分组;本文仅为便于企业理解,将其再组织为四类控制家族。这个重组是基于官方条目所作的分析性归纳,而不是官方原始结构。3

这样重组的好处在于,读者能更快看出 AST10 的真正关注点并不是十个彼此分裂的漏洞名词,而是一整套从发布、安装、执行到治理的控制链条。356789

五、AST10 背后的设计方案:它已经开始形成哪些控制语言

1. 供应链与来源可信

在供应链这一侧,OWASP 官方材料已经在多个文档中持续强调若干控制点:publisher verification、cryptographic signing、content_hash、SBOM、transparency log、recursive dependency scanning,以及把 repository config 视为执行路径的一部分。官方 AST02 风险页和 checklist 都体现了这一点。45

这显示 AST10 正在形成的一条控制思路,是把 skill 从“用户随手安装的配置”抬升成一个需要 provenance 和变更可追踪的软件分发对象。

2. 权限、元数据与身份文件保护

在权限治理上,官方材料一个比较鲜明的特征,是它不满足于抽象地讲“最小权限”,而是把 skill 需要声明什么权限、权限应如何收敛、哪些对象需要升级审查,写得越来越具体。官方 checklist 要求显式权限清单、域名 allowlist、每个 skill 单独凭证,并且特别把 SOUL.md、MEMORY.md、AGENTS.md 这类 identity / memory files 的写权限列为高敏感事项。AST03 和 AST04 也沿着这条思路,把 metadata honesty、risk tier 一致性和品牌冒充检查纳入审查范围。46

从企业角度看,这一步很关键。它意味着 skill 安全不再只是“看这段脚本危不危险”,而是要问:这个 skill 宣称自己是什么、实际上拥有什么权限、有没有触碰 agent 身份和长期记忆。

3. 解析、隔离与运行时约束

在运行时安全侧,OWASP 的控制思路已经相对可辨:skill loader 不宜把 manifest 或配置文件简单当作安全的静态数据,而应把它们视为潜在执行入口。官方 AST05 和 checklist 强调 safe loaders、schema validation、isolated parsing、dependency install sandboxing;AST06 和 AST07 则进一步强调 sandbox、host-mode restriction、hot-reload control、production freeze mode 以及 signed updates。47

这反映出一个非常实际的判断:skill 的危险性,不只来自内容本身,还来自它被加载、更新、重载和执行的整个运行链路。

4. 扫描、库存、审批与审计

如果说前几组控制仍偏技术,那么 AST08、AST09 和 checklist 展示的则是明显的企业治理思路。官方材料不再把 skill 扫描理解成一次性静态检测,而是要求 semantic scanning、behavioral testing、动态观察、inventory、approval workflow、audit log、review cadence、revocation process,以及把 agent 作为 non-human identity 纳入 IAM 语境。489

这说明 AST10 正试图把 skill 安全从“安全研究话题”推进为“企业内控流程中的一个对象”。

5. Universal Skill Format 的意义,不只是格式统一

AST10 官方材料多次提出一个 Universal Skill Format 设想,用跨平台 YAML manifest 去承载 permissions、risk_tier、signature、content_hash、scan_status 等安全属性。该格式目前仍以提案形式存在,尚未形成独立、稳定的正式规范。它的治理意义并不只是“让格式更统一”,而是让 skill 的安全属性能够被平台、企业策略和自动化流程直接读取与执行。310

从设计逻辑看,这是一种典型的“把安全从说明文字推进到可机器处理的策略对象”的思路。只不过截至目前,这一格式仍主要以嵌入式提案的方式存在于 README、index 和 AST10 风险页里,而不是已经收束成一份成熟、独立、稳定的官方规范文件。31011

六、AST10 当前发展到哪一步

1. 它已经不是空提案

如果只看项目状态标签,AST10 当然仍然处于 New Project Proposal、active development 状态;这一点在 OWASP 官网项目页和 proposal 页上都写得很清楚。12 但如果结合官方仓库去看,它已经不再是只有一个标题和几句愿景的空项目。官方仓库里已经可以看到:

这意味着 AST10 已经可以看到一个初步可操作框架。至少在“如何描述问题”“如何组织风险”“如何给审查者提问题”这三个层面,它已经呈现出较明确的雏形。234

如果进一步看官方仓库首页和 index 页给出的项目时间表,AST10 目前采用的是一个分阶段推进的计划:Q2 2026 被描述为 foundation 阶段,重点是仓库、项目页和前几个风险页;Q3 2026 被描述为 completion 阶段,重点是补齐后续风险页、Universal Skill Format、cheat sheets 和 release candidate;Q4 2026 被描述为 launch 阶段,目标包括 v1.0 release、OWASP flagship project submission,以及 RSA / OWASP Global AppSec 相关展示。换句话说,按 OWASP 当前官方材料的自我安排,AST10 的正式发布窗口更接近“计划在 2026 年 Q4 进入发布 / launch 阶段”,而不是已经完成发布。23

2. 但它还不能被当作成熟终版标准

另一方面,如果把 AST10 直接说成“OWASP 已经发布的正式 skill 安全标准”,现在仍然不准确。原因主要有三类。

第一,项目状态仍处于 proposal / incubator 阶段,这一点在官方项目页和 proposal 页本身就写得很清楚。12

第二,官方语料内部仍可看到 taxonomy 和文档结构的收束过程。例如 proposal 中的 AST05 与项目页当前版本的 AST05 表述并不一致;top10.html 也明确写明内容已并回主 README。211

第三,项目的扩展文档成熟度并不均衡。就 2026-04-21 可见的官方页面而言,核心内容如项目页、proposal、checklist、风险页已经具备较强参考价值;但部分扩展页面仍明显处于建设中。这意味着 AST10 目前最适合被理解为“已经有实质内容的在建框架”,而不是“完成收口的正式标准包”。1411

从写作上说,这一点很重要。它既解释了为什么 AST10 值得认真看,也解释了为什么引用它时要区分核心文档与扩展文档,不能把所有官方页面都当成同等成熟的规范文本。

七、企业现在应该怎样使用 AST10

1. 平台方:把 skill 同时当成供应链对象和运行时对象治理

对于平台开发者来说,AST10 最现实的启发是:skill 不宜只被当作 marketplace 内容来管理,也不宜只在运行时做粗粒度权限控制。它更适合被放进一条从发布、签名、扫描、更新到运行隔离的连续控制链里。官方材料反复出现的签名、哈希、SBOM、sandbox、hot-reload control 和审计日志等要素,都是围绕这一点展开的。457

2. AppSec / 产品安全:把 skill 纳入正式治理流程

对 AppSec 和产品安全团队来说,AST10 最有价值的不是“又多了一个 Top 10”,而是它给了一个新的资产类别。OWASP checklist 所体现的方向是,应将 skill 纳入 inventory、approval workflow、review cadence、audit log、offboarding 和 revocation process,而不是继续停留在“开发者自己安装的小工具”。这也是 AST09 与 checklist 最清楚的实践指向。49

3. Skill 作者:默认从最小权限和诚实元数据出发

对 skill 作者而言,结合官方材料可以归纳出一条相对清楚的方向:默认最小权限、显式 manifest、禁止随意写入 identity files、使用签名和不可变哈希、对外部依赖做锁定、在元数据中诚实说明功能和风险级别。即使 AST10 还不是终版标准,这套方向也已经足够构成今天可以参考的安全设计基线。4610

4. 采购与 GRC:把 AST10 当成早期评审框架,而不是现成认证标准

对于采购、GRC 和治理团队来说,AST10 当前最合适的使用方式,不是把它当成现成认证清单机械打勾,而是把它当成一套正在成形的早期基线:用它帮助识别 skill 的来源可信、权限边界、运行隔离、更新治理和组织可见性是否到位。等到项目进一步成熟后,再考虑把其中更稳定的部分固化进采购标准、准入规则或内部规范。24

结语

AST10 当前最重要的意义,不是 OWASP 已经把 skill 安全标准化“做完了”,而是从现有官方材料看,OWASP 正在把 skill 明确成一个独立治理对象,并开始为它搭建风险地图、控制语言和企业可用的审查框架。对于今天的企业来说,最值得做的,不是等待它变成一份最终版标准才开始行动,而是先吸收其中已经相对稳定的核心部分,把 skill 当成真正需要被治理的供应链与运行时对象。124

附录:OWASP 官方 GitHub 页列示的 2026 事件时间表

以下时间线依据 OWASP 官方 GitHub 仓库 README.md / index.md 中的 Incident Timeline (2026) 整理,仅用于呈现 AST10 项目自身如何说明 skill 风险的现实背景;本文未对其中每一项外部事件单独做独立事实核验。3

1. 2026 年 1 月

2. 2026 年 2 月

3. 2026 年 3 月

4. 这份时间线对本文的意义

这份附录最重要的价值,不在于它单独完成了对所有外部事件的事实证明,而在于它清楚展示了 AST10 项目自身的立项逻辑:OWASP 不是先抽象发明出一个 Top 10,再去寻找适配案例,而是先把 2026 年前后被公开讨论的一系列 registry、config、permission、scanner 和 governance 问题汇集起来,再据此提出 skill security 这一独立议题。也正因为如此,AST10 才更适合被理解为一个从现实攻击背景中长出来的在建框架。13

尾注

1: OWASP 官方项目页 OWASP Agentic Skills Top 10, https://owasp.org/www-project-agentic-skills-top-10/。该页将项目标注为 New Project Proposal — active development,并给出 skill 作为行为层的基本定位、范围说明和 quick checklist。

2: OWASP 官方 proposal 页 OWASP Project Proposal: Agentic Skills Top 10, https://owasp.org/www-project-agentic-skills-top-10/proposal.html;对应官方仓库文件 proposal.md, https://github.com/OWASP/www-project-agentic-skills-top-10/blob/main/proposal.md。本文关于项目状态、目标、范围、与其他 OWASP 项目的关系以及阶段性推进计划,主要依据这两份材料。

3: OWASP 官方 GitHub 仓库 README.md / index.md, https://github.com/OWASP/www-project-agentic-skills-top-10/blob/main/README.md 和 https://github.com/OWASP/www-project-agentic-skills-top-10/blob/main/index.md。本文关于 AST10 的整体结构、风险总表、行为层定位、项目路线、官方时间表以及 Incident Timeline (2026),主要依据这两份官方仓库主文档。

4: OWASP 官方 checklist 页面与仓库文件 checklist.html / checklist.md, https://owasp.org/www-project-agentic-skills-top-10/checklist.html 和 https://github.com/OWASP/www-project-agentic-skills-top-10/blob/main/checklist.md。本文关于签名校验、content_hash、SBOM、权限清单、身份文件写入、inventory、approval workflow、audit log、NHI 等具体审查问题,主要依据该 checklist。

5: OWASP 官方风险页 AST02 — Supply Chain Compromise, https://github.com/OWASP/www-project-agentic-skills-top-10/blob/main/ast02.md。本文关于 provenance、transparency log、recursive dependency scanning、config files as executable code 等表述,主要依据该页。

6: OWASP 官方风险页 AST03 — Over-Privileged Skills, https://github.com/OWASP/www-project-agentic-skills-top-10/blob/main/ast03.md。本文关于 least privilege、per-skill credentials、identity files elevated review 等表述,主要依据该页。

7: OWASP 官方风险页 AST07 — Update Drift, https://github.com/OWASP/www-project-agentic-skills-top-10/blob/main/ast07.md。本文关于 immutable pinning、signed updates、freeze mode、hot-reload control 等表述,主要依据该页。

8: OWASP 官方风险页 AST08 — Poor Scanning, https://github.com/OWASP/www-project-agentic-skills-top-10/blob/main/ast08.md。本文关于 semantic scanning、behavioral testing、scanner limits 等表述,主要依据该页。

9: OWASP 官方风险页 AST09 — No Governance, https://github.com/OWASP/www-project-agentic-skills-top-10/blob/main/ast09.md。本文关于 inventory、approval record、audit trail, revocation process、enterprise visibility 等表述,主要依据该页。

10: OWASP 官方风险页 AST10 — Cross-Platform Reuse, https://github.com/OWASP/www-project-agentic-skills-top-10/blob/main/ast10.md;以及官方仓库主文档 README.md / index.md 中嵌入的 Universal Skill Format 提案。本文关于 Universal Skill Format、risk_tier、signature、content_hash、scan_status 等字段设计与治理含义,主要依据这些官方材料。

11: OWASP 官方 top10.html, https://owasp.org/www-project-agentic-skills-top-10/top10.html。截至 2026-04-21,该页明确说明内容已并入主 README,可作为项目文档仍在收束过程中的一个官方信号。关于项目成熟度的判断,还结合了项目页、proposal 页与仓库主文档之间的整体一致性观察。


说明:本文件为公众号渲染试稿,建议在浏览器中打开后复制渲染结果,再粘贴到公众号编辑器。