Agent Skills 安全风险:当 AI 智能体的能力包成为攻击入口
Agent Skills 的安全风险,为何值得企业重视?
当企业开始用 Agent Skills 将内部流程、专家经验封装成 AI 智能体可调用的能力包时,一个常被忽略的问题浮出水面:这些能力包可能成为攻击者渗透企业系统的捷径。Agent Skills 的安全风险不是危言耸听——有安全团队扫描发现,公开市场中近半数 Skill 存在潜在危险操作,而一次针对 Skill 平台的攻击事件就造成了数百万美元的损失。在企业大举拥抱 AI 增效的当下,理解并管理体系中的风险,比狂奔上线更为紧迫。
当 prompt 开始拥有执行权限
传统的提示工程(Prompt Engineering)只是给大模型一段文字指令,模型输出文本,几乎不存在直接的安全危害。但 Agent Skills 完全不同:它通常包含可被 AI Agent 自动执行的脚本、系统命令和 API 调用。一旦 Skill 被加载,AI 智能体就可以实实在在地操作系统、访问数据库、调用内部服务。从“文本输出”升级为“行动代理”,安全边界发生了根本性改变。
安全盲区:SKILL.md 不是普通文本
许多企业误以为 SKILL.md 只是一份说明书,实际它同时是能力接口的定义文件。一个典型的 SKILL.md 会明确告诉 Agent“当用户提出某类需求时,执行什么命令、调用哪个脚本、访问哪些数据”。如果该文件被恶意篡改,或者开发者故意植入了危险指令,Agent 便会毫无防备地照做。研究表明,单纯靠人工审核 SKILL.md 文本很难发现隐蔽的恶意意图,因为攻击者可以利用编码混淆、依赖串联等方式绕过初步检查。
恶意 Skills 的典型攻击手法与真实危害
已披露的案例反复证明,Agent Skills 的攻击面远比想象中大。理解它们如何工作,是企业建立防御的第一步。
数据窃取与凭证泄露
AI Agent 的运行环境通常包含大量敏感信息:API 密钥、数据库连接串、内部文档。恶意 Skills 可以设计为在正常任务完成后,悄悄将环境变量或特定文件内容外传。比如一个看似无害的数据分析 Skill,在执行完图表生成后,背地里读取.env文件并通过 HTTP 请求发送至外部服务器。由于企业常赋予 Agent 较高的操作权限以便完成复杂任务,这种窃取行为可能持续很久才被发现。
远程代码执行与系统失陷
比数据窃取更危险的是直接控制系统。有研究展示,仅需三行 Markdown 指令,就能让 Agent 从远程下载并执行恶意 shell 脚本。一旦获得 shell 访问权限,攻击者可以横向移动、安装后门、加密文件索要赎金。腾讯朱雀实验室对五万个公开 Skill 的扫描发现,远程代码执行类风险占比极高,且部分经过平台官方检测的 Skill 依然能够利用多层编码和反序列化手段实现任意代码执行。这意味着,即使平台有基础审核,企业仍需自行验证。
隐蔽绕过与供应链投毒
攻击者的手法正在进化。早期的恶意 Skill 往往直接包含“rm -rf /”等显式破坏命令,容易被静态规则捕获。现在,更多攻击采用供应链投毒——在一个看似正常的依赖包中注入恶意逻辑,Skill 本身只调用该依赖。还有的 Skill 将恶意载荷隐藏在图片或看似无害的配置文件中,运行时才解码释放。这类隐蔽攻击让传统签名检测几乎失效,企业面临的不再是单一文件风险,而是整个生态的信任危机。
企业必备的 Agent Skills 安全防护体系
面对不可信的 Skill 来源和日益复杂的攻击手法,企业需要将安全能力嵌入 Skill 开发到运维的全生命周期。
开发阶段:将安全编码嵌入 SKILL.md 设计
无论是内部团队开发还是外包,都应在 Skill 设计初期明确安全红线:禁止使用eval、禁止从不可信 URL 下载脚本、强制参数化查询避免命令注入。安全要求要像功能需求一样写进 SKILL.md 的“约束条件”段落,并由 AI Agent 在每次执行前自检。例如,规定“所有外部命令执行前必须显示完整指令并获得用户二次确认”,这不仅能防止恶意行为,也能避免开发者的无心之过。
测试验证:静态扫描与沙箱动态分析
Skill 上线前必须通过自动化安全检查。静态扫描工具可以检测 SKILL.md 及关联脚本中的危险关键词、可疑网络请求和权限过大的调用,就像代码安全扫描一样。更关键的是动态行为分析:在隔离的沙箱环境中实际运行 Skill,监测其是否尝试访问敏感文件、建立外部连接或尝试提权。已有开源工具如 agent-skills-guard,提供针对 Agent Skills 的风险分类和评分,企业可将其集成到 CI/CD 流程中,实现每次更新自动检查。
部署管控:最小权限、隔离执行与全链路审计
Skill 运行时的权限必须遵循最小特权原则。Agent 应仅被授予完成任务所需的最小系统权限,避免使用 root 或管理员身份运行。通过容器化执行环境,将 Skill 的活动限制在沙箱中,无法触碰宿主机敏感资源。同时,所有操作必须记录详细审计日志:哪个 Skill、在什么时间、执行了什么命令、访问了哪些数据。一旦出现异常,可以迅速溯源并阻断。
选择安全的 Agent Skills 开发伙伴
对大多数企业而言,Agent Skills 开发需要借助外部力量。但外包不等于甩责,合作方的安全能力直接影响项目成败。
考察服务商的 Skills 安全能力
在评估软件外包公司时,除了看案例和技术栈,必须考察其对 Agent Skills 安全的理解与实践。合格的服务商会主动展示其安全开发流程:是否使用官方或行业推荐的安全规范?是否提供 Skill 安全测试报告?是否具备沙箱验证环境?能否给出应急响应预案?如果对方只能谈功能实现,却对权限控制、脚本注入、依赖审计等安全细节含糊其辞,就需要格外谨慎。
外包合同中的安全条款与验收标准
合同条款是最后的法律防线。建议在合同中明确:交付的 Skill 包必须通过甲方指定的安全扫描工具检测,不得包含未声明的网络请求、文件操作或系统命令;所有使用的第三方依赖需提供清单及漏洞评估;如因 Skill 安全问题导致数据泄露或系统受损,服务商需承担相应责任。验收时,不仅要看功能是否跑通,更要看安全测试报告和沙箱执行录像。
结语:安全是 Agent Skills 项目的先决条件
Agent Skills 的确能显著提升 AI 智能体的业务执行能力,帮助企业将重复流程自动化、专家经验产品化,但这一切的前提是安全可控。无论是计划引入外部 Skill、委托定制开发,还是内部构建能力包,决策者都需要将安全需求前置,贯穿设计、开发、测试、运行和监管的全流程。适合引入 Agent Skills 的企业,通常是那些已经梳理出可重复执行的业务流程、希望借此固化和复制专家能力的团队。评估时,可以先从一个业务痛点切入,验证 Skill 的效能与安全防线,再逐步扩展。如果企业缺乏内部安全能力,与具备 Agent Skills 安全开发经验的外包团队合作,是比较稳妥的启动方式。确保每一行 SKILL.md 的指令都经过审视,每一次脚本执行都留有痕迹,才能让 Agent 真正成为可信赖的数字员工,而不是敞开的攻击面。
