AI代理的技能(Skill)是将重复性任务所需的指令、参考资料,有时甚至是执行脚本捆绑在一起的工作包。要在公司中安全使用它们,必须在引入前审查其内容和来源,在执行时限制可访问的数据和工具,并管理更新和废弃。恶意技能检测是此过程中的重要一步。
例如,假设您安装了“会议纪要整理技能”。读取指定会议纪要并生成摘要文件所需的权限相对较小。但是,如果此技能要求搜索所有业务文件夹并将诊断数据传输到外部服务器,那么其描述的目的与实际行为之间就存在差异。需要一种机制来在引入审查中发现这种差异,并在执行环境中阻止被遗漏的请求。
本文基于2026年10月1日确认的官方文件,整理了技能的攻击路径、检测工具的作用和局限性,以及企业应采用的运营标准。以下运营模型和示例是可根据组织进行调整的建议,并非特定产品的默认安全设置或检测性能的测量结果。

1. 技能带来什么:指令、代码、依赖项
在Agent Skills规范中,核心文件是SKILL.md。它包含名称和描述等元数据,以及记录工作流程的主体。此外,还可以附加scripts、references、assets等辅助目录。因此,检测范围比单个Markdown文档更广。Agent Skills规范
技能告知工作流程,代理则使用与其连接的工具执行该流程。MCP(Managed Component Platform)是一种连接外部工具或资源的方式,而插件可以是分发多种功能的捆绑包。一个技能可以使用MCP工具或包含在插件中,因此在实际引入审查中,需要检查所有连接的组件。
技能并非直接拥有操作系统管理员权限。风险的大小取决于代理可以读取的文件、可以使用的凭证以及可以调用的工具。相同的技能在只能读取公开资料的环境和可以修改运营数据库的环境中,结果可能大相径庭。
此外,如果假设整个技能从一开始就对模型可见,则很容易遗漏审查。加载方式是将其分为元数据、激活的指令和需要时读取的辅助资料。即使初始文件看似普通,后续加载的文档或脚本也可能改变其行为。官方实现指南中也建议单独验证项目仓库中包含的技能的信任度。Agent Skills实现指南
公司最终需要管理的是“来自哪个来源的什么内容,以何种代理权限执行”。
2. 可能表明恶意技能的迹象
恶意指令不一定只隐藏在可执行文件中。它们也可以通过自然语言改变任务目的,或者诱导模型将参考资料中的句子视为高级指令。外部内容改变模型行为的问题与提示注入相关。OWASP Prompt Injection
下表是假设审查会议纪要整理技能的示例。它不是仅凭一项就断定为恶意,而是用于判断业务目的和所需权限是否一致。
| 检查点 | 需要审查的迹象 | 验证内容 |
| — | — | — |
| 工作指令 | 要求忽略现有策略或向审查者隐藏内容 | 是否是执行任务的必要程序,是否试图绕过审批体系 |
| 数据访问 | 除指定会议纪要外,探索认证资料或整个业务文件夹 | 输入范围是否已文档化并实际受限 |
| 外部通信 | 向未说明的地址传输原文、日志或诊断资料 | 接收主体、传输项目和存储目的是否已获批准 |
| 执行代码 | 从难以识别的字符串创建命令或接收并执行远程代码 | 是否可以审查源代码和依赖项,执行目标是否固定 |
| 环境变更 | 修改审批规则、启动设置、其他技能或注册为常驻执行 | 持续变更是否包含在业务目的中 |
| 更新 | 保持熟悉名称的同时,增加权限、传输目标或安装程序 | 变更是否超出先前批准的范围 |
外部通信或Shell执行本身并非恶意的证据。网页调查技能需要网络,构建技能需要执行命令。反之,没有代码的技能也可能指示已连接的传输工具被错误使用。目的、数据、行为和权限必须一并审查。

图1. 需要审查的两个路径:进入模型的指令和实际执行的代码。基于Agent Skills规范、OWASP Prompt Injection官方文档重构的概念图。
3. 安装前隔离,并检查整个捆绑包
企业的第一个控制点最好设置在员工选择技能的时刻和代理发现技能的时刻之间。审查前的软件包应存放在代理自动搜索的技能目录之外。这是为了避免用于检测而下载的文件立即作为业务代理的指令加载。
引入请求至少应包含来源URL、创建主体、使用业务、输入数据等级、所需文件·工具·网络权限以及负责人。公开仓库的受欢迎程度或“官方”标识是判断来源的线索,但并不能证明当前下载内容的适用性。
确定检测对象时,不应只记录仓库名称。应保留确切的提交和下载的整个软件包的哈希值。哈希是根据文件内容计算出的指纹。它用于验证部署的文件是否与审查过的文件相同。签名和来源证明也有助于判断完整性和供应链路径,但它们不会自动删除合法开发者引入的危险功能。关于区分供应链中各个点的观点,可以参考SLSA威胁模型。
审查列表不仅包括SKILL.md,还包括链接文档、脚本、配置文件、锁定文件以及安装时执行的钩子。符号链接指向的外部文件或子模块也应检查其实际内容。如果在执行过程中从其他地址获取指令或代码,则必须单独管理这些外部内容,以确保它们不超过批准的范围。
如果先执行远程安装命令再检查结果,代码可能在安装过程中就已经执行。在隔离的收集环境中获取资料,并将安装阶段的行为也作为分析对象,这样的顺序是合适的。

图2. 企业引入·运营流程建议。基于Agent Skills实现指南、Cisco检测推荐设置、SLSA威胁模型官方文档重构。保留·拒绝·例外标准由组织自行决定。
4. 恶意技能检测采用多种方法组合使用
格式检测和安全检测回答不同的问题。例如,规范验证器可以检查必要的元数据或命名规则,但不能保证“摘要后将原文发送到外部”这一指令的业务正当性。Agent Skills的参考验证工具也应理解为用于规范验证。Agent Skills验证指南
在实际操作中,如下划分检测可以发现遗漏的区域:
| 检测层 | 主要检查内容 | 剩余局限性 |
| — | — | — |
| 格式·文件列表检测 | 元数据、引用文件、意外文件和链接 | 有效格式的恶意指令可能通过 |
| 秘密信息·代码·依赖项检测 | 包含的密钥、危险代码流、已知漏洞、未固定的依赖项 | 可能遗漏自然语言的目的扭曲和新攻击 |
| 自然语言·语义分析 | 目的与行为不一致、指令绕过、不必要的信息传输 | 存在误报·漏报,分析模型也可能受输入影响 |
| 隔离执行测试 | 实际文件访问、进程、通信、创建·修改结果 | 无法保证未经测试的条件或延迟行为 |
| 人工审批审查 | 业务必要性、数据等级、权限、例外原因 | 审查者需要确认依据和组织标准 |
Cisco Skill Scanner: 技能专用分析的起点
Cisco的Skill Scanner结合了基于规则的检测、代码·数据流分析和可选的LLM分析。它可用于查找提示注入、信息泄露、混淆和依赖项相关风险。但是,–use-behavioral的数据流分析不应与实际执行技能的沙盒测试混淆。官方文档也明确指出,没有检测结果的事实并非安全认证。Cisco Skill Scanner、官方仓库
在运营中,检测完成情况与检测严重性同样重要。官方推荐设置文档解释说,LLM分析失败会以名为LLM_ANALYSIS_FAILED的INFO项报告,并可能通过关卡。因此,公司的审批流程必须单独确认“未发现高风险”和“所有必要分析均成功”。仅使用规则的检测和连接外部模型·服务的检测也应区分开来。Cisco检测推荐设置
Snyk Agent Scan: 检查连接的代理组件
Snyk Agent Scan是一个用于检查技能和MCP服务器等代理组件的工具。它可以区分仅对技能内容进行检测和对连接环境进行调查的范围。特别是,官方README解释说,在MCP配置检测过程中,可能会执行服务器命令或连接到远程地址。不信任的MCP配置应在隔离环境中进行检测。由于CLI输出结构被注明为实验性,因此依赖特定字段的内部阻止逻辑应固定版本并验证变更。Snyk Agent Scan官方仓库
选择检测工具时,除了检测功能外,还要确认数据处理方式。公司的技能可能包含内部地址、业务规则和私有代码。如果使用在线上传或外部LLM分析,则必须确认什么数据会传输到哪个服务,以及存储和学习使用条件是什么,然后才能允许。不要仅仅因为是“在本地运行的CLI”就假设所有处理都在本地完成。
本文不比较工具的检测率排名,因为它们没有使用相同的测试数据和版本进行测量。企业收集正常业务技能、要求禁止行为的测试技能和分析失败案例,以创建自己的回归测试,会更有用。
5. 审查者需要确认的是“为什么需要此权限”
如果审查会议纪要整理技能,首先确定要读取的文件夹和要创建的文件。如果不需要外部上传,则排除传输功能;如果获取资料需要单独账户,则提供仅读取必要文档的连接。这样具体化业务,更容易发现过度权限。
即使将自然语言分析交给LLM,也要将检测对象的指令视为不可信的输入。审查模型不应提供实际的业务凭证和执行工具,而是要求其提供可疑语句、文件位置、预期行为和所需权限作为依据,而不是给出“无问题”的结论。模型的判断应作为审查资料使用,应避免将高风险例外审批也交给同一模型处理的结构。
处理误报时,不应完全关闭检测规则,而应记录该版本特定行为所需的理由。例外应设定适用范围、负责人和到期日。如果业务用途已批准的传输地址发生变化或数据等级不同,则不应重复使用现有例外。
审查记录如果能回答以下问题,将是实用的:
- 该技能将用于何种业务,批准的确切软件包是什么?
- 它可以读取哪些数据,可以写入或发送到外部哪些数据?
- 为什么接受或阻止了发现的警告?
- 实际执行环境是否强制执行了批准的权限范围?
- 如果出现问题,谁负责暂停使用并调查影响?
6. 执行期间在模型外部限制权限
即使通过了事前审查的技能,在执行时也需要控制。合法的技能可能读取包含恶意指令的网页或文档,或者其依赖项或外部资料在批准后发生变化。OWASP建议最小化功能和权限,单独批准高风险行为,并在子系统中验证权限。OWASP Excessive Agency
在企业设计中,可以划分以下四个边界进行检查:
文件边界:仅以只读方式提供任务所需的输入,并分离用于写入结果的目录。不允许访问整个个人主目录或其他项目。在执行环境中同时暴露主机控制套接字或操作凭证会削弱隔离的意义。
网络边界:默认限制外部连接,只允许业务所需的目的地。即使允许某个域名,如果它能够上传到该服务的任意存储或另一个组织账户,则仍然存在泄露路径。如果可能,应在专用API中继层验证目标账户、资源和请求类型。传输给LLM提供商的提示也包含在数据传输边界内。
工具和凭证边界:提供用途比通用Shell或任意URL调用更窄的工具。设计时应避免将秘密值放入提示中,而是通过中继服务存储的短期、受限凭证来执行经批准的任务。工具服务器还必须验证调用用户是否具有实际权限。
外部行为边界:对于发送邮件、运营部署、批量删除等操作,在执行前立即确认目标和内容。如果经过人工批准,则将该批准与实际执行参数绑定,如果内容发生变化,则重新检查。即使只阻止最终响应,已执行的传输或更改也无法撤销。

图3. 会议纪要处理任务的执行边界建议。基于OWASP Excessive Agency、Claude Code沙盒文档官方文档重构。不代表任何特定产品的默认配置。
不要仅仅因为启用了沙盒就断定所有工具都受到限制。需要分别确认哪些进程、文件工具、浏览器和MCP服务器在该边界内。例如,Claude Code的沙盒文档区分了命令执行的文件·网络隔离、隔离外的重试以及不可用时的处理方式。如果组织强制要求隔离,则必须检查失败时切换到一般执行的路径。Claude Code沙盒
两个容易仅凭名称误解的设置
将allowed-tools在所有代理中都解释为“工具黑名单的反面”是不可取的。Agent Skills规范将其描述为实验性字段,并指出支持可能因实现而异。Agent Skills规范
Claude Code的当前文档将allowed-tools描述为指定在该技能调用回合中无需额外批准即可使用的工具。它并非移除列表外所有工具的功能,其他工具适用单独的权限设置。disable-model-invocation: true是限制模型自动技能调用的设置。自动调用控制和文件·网络隔离是不同的功能。Claude Code技能设置
因此,重要的限制不应由被审查的技能自行声明,而应由组织管理的执行策略和工具服务器强制执行。应针对不同产品和版本验证实际行为,并保留测试以确认未经授权的操作被拒绝。
7. 经批准的技能也需要更新和废弃流程
内部仓库可以作为分发经批准软件包的起点。然而,仅仅创建仓库并不能解决问题,因为用户的个人技能、项目中包含的技能以及其他插件的技能可能同时被加载。组织允许的供应路径必须与实际加载的来源进行比较。当同名技能存在于多个位置时,也应按客户端确认选择的目标。
以下是内部审批记录的示例。它展示了公司应管理的条目,而非产品通用的配置格式。
| 管理项目 | 记录示例 |
| — | — |
| 用途·负责人 | 会议纪要摘要,业务自动化负责团队 |
| 审批对象 | 原始仓库、提交、完整软件包哈希、依赖项列表 |
| 执行条件 | 仅读取指定输入,仅写入单独结果文件夹,禁止外部上传 |
| 检测证据 | 扫描器·规则·策略版本、已完成分析、人工审查、隔离测试结果 |
| 部署条件 | 支持的代理版本、应用策略、审批到期日 |
| 变更·废弃 | 更新再审查条件、回收负责人、中断·恢复流程 |
更新审查不限于SKILL.md的变更。脚本、依赖项、连接服务器、动态参考资料的更改都可能改变行为。应在部署前和加载时验证已批准的文件,并尽可能将配置固定为不可更改的版本。还应测试代理或策略引擎的更新是否影响权限解释。
运营记录应关联技能标识符和哈希、调用用户·任务、使用的工具、访问目标以及允许·拒绝结果。无需无限量收集原文和秘密值。应限制保留范围和访问者,并对敏感值进行掩码处理。
如果发现问题技能,除了阻止新安装外,还应检查正在运行的任务、已加载的指令、缓存和部署副本。如有必要,应中断任务,并调查相关凭证是否泄露,进行回收·替换。技能文件已删除的事实和正在运行的任务已完成的事实必须单独确认。
8. 公司可启动的最低运营标准
从一开始就以相同的流程审查所有技能可能会增加运营负担。区分整理公开资料格式、读取非公开文档、修改运营系统等任务,并根据数据和行为的影响提高审查级别,这种方式更为现实。
首次引入可参考以下六个标准:
- 仅部署经批准的来源和版本。防止业务代理自动读取未经审查的资料。
- 指令和代码一并检测。包括辅助文档、依赖项和安装流程,并将分析失败置于未审查状态。
- 仅授予业务目的所需的权限。明确文件、网络、工具、数据等级。
- 通过隔离测试确认限制。不仅确认功能成功,还要确认禁止的读取·传输·修改是否实际被拒绝。
- 对外部影响大的行为进行单独验证。将人工审批与工具服务器的权限检查关联起来。
- 将变更和回收纳入运营流程。应能对新版本进行再审查、记录执行历史,并能迅速暂停使用。
核心在于不应止步于寻找“完美筛选恶意技能的检测器”。检测结果应作为引入判断的依据,执行环境应缩小错误行为的范围,运营流程应负责应对变化和事故。
企业安全利用技能,意味着将审查过的软件包仅连接到必要的任务,并确保允许的数据和行为范围在实际执行中得到维持。一旦建立这些标准,技能的重用性和自动化效果即可在组织的安全要求内得到利用。
发表回复