AI Skills安全

#ai #security #skills #agent

最近在研究 AI Agent Skills 的安全问题,随着 AI 编程助手的普及,Skills 作为扩展 AI 能力的重要方式,其安全性值得深入关注。


背景

AI Skills 通常是指用于扩展 AI 编程助手能力的插件或脚本。用户可以从开源平台下载各种 Skills 来增强 AI 的功能,但这也带来了潜在的安全风险。

与传统软件供应链攻击不同,Skills 的攻击形式更为隐蔽——攻击者可以通过自然语言描述来构造恶意行为,而非直接嵌入恶意代码。这使得基于特征库的传统检测手段往往失效。


安全现状分析

攻击路径简单

攻击者只需要在开源平台发布包含恶意内容的 Skill 文件,等待受害者下载使用即可。攻击门槛极低,且难以追踪。

权限失控风险

AI Skills 通常拥有较高的系统权限,包括:

  • Shell 命令执行
  • 文件系统读写
  • 环境变量访问(可能包含敏感凭证)

传统防御失效

基于特征库的检测方式面临挑战:

  • 恶意行为可以通过自然语言描述实现
  • 编码和混淆技术可以绕过静态检测
  • AI 的自然语言理解能力使得检测更加复杂

市面上出现的skills安全检测工具

开源工具

Agent Skills Guard

一款提供 Skills 安全扫描和可视化管理的桌面应用。

检测类别包括:

  • 破坏性操作(删除文件、磁盘擦除)
  • 远程代码执行(管道执行、反序列化)
  • 命令注入(动态命令拼接)
  • 网络外传、权限提升
  • 持久化后门、敏感信息泄露

特点:使用正则规则匹配,检测速度快,但对编码混淆的检测能力有限,误报率较高。

GitHub: https://github.com/brucevanfdm/agent-skills-guard


skill-audit

模块化的 Skills 安全审计 CLI 工具,提供多层次检测:

  1. Prompt 注入检测 - 检测越狱相关的提示词模式
  2. 密钥扫描 - 集成 trufflehog/gitleaks
  3. Shell 脚本分析 - 使用 shellcheck
  4. 代码安全分析 - 使用 semgrep

特点:包含独特的 Prompt 注入检测功能,但对编码混淆的恶意 Skill 检测能力有限。

GitHub: https://github.com/pors/skill-audit


Snyk MCP-Scan

最初用于 MCP 服务器安全扫描,现已支持 Skills 检测。

检测内容:提示词注入、恶意 payload、敏感数据泄露。

特点:支持文件哈希黑白名单机制,避免重复检测。但在实际测试中检测效果不理想。

GitHub: https://github.com/snyk/agent-scan


Cisco Skill-Scanner

Cisco 开发的模块化 Skills 扫描工具。

威胁类型覆盖:

  • 提示注入
  • 命令注入
  • 数据外泄
  • 凭证硬编码
  • 混淆检测
  • 供应链攻击

特点:支持 YAML 规则、YARA 规则和污点分析。可配置 LLM 对检测结果进行深度分析。

GitHub: https://github.com/cisco-ai-defense/skill-scanner


在线服务

SkillShield.io

提供在线 Skills 安全扫描服务。

输入方式:GitHub/GitLab 仓库地址

检测逻辑:静态代码分析 + LLM 行为分析

效果:可以检测出混淆代码,但对静态代码匹配能力一般。

网址:https://skillshield.io/


Playbooks Skill Security Scanner

针对 GitHub Skills 仓库的在线扫描工具。

检测维度:

  • 命令执行字符串
  • 数据外发行为
  • 令牌泄露
  • 系统持久性
  • 破坏性命令
  • 编码或混淆内容

效果:测试表现较好,能准确识别恶意内容,误报率较低。

网址:https://playbooks.com/tools/skill-scanner


如何防御?

普通用户

  1. 只从可信来源获取 Skills,避免使用来路不明的第三方插件
  2. 仔细审查 Skill 代码,特别是涉及文件操作和网络请求的部分
  3. 在隔离环境中测试,确认安全后再在生产环境使用
  4. 限制 AI 助手的权限,避免授予不必要的系统访问权限
  5. 不要将敏感信息提供给 AI,包括凭证、密钥等

开发者

  1. 编写安全的 Skills,避免硬编码敏感信息
  2. 使用最小权限原则,只申请必要的功能权限
  3. 提供透明的能力说明,让用户了解 Skill 的具体行为
  4. 接受安全审计,公开发布前进行充分的安全测试

也可以编写一个检测恶意skills的skills,在每次检测到有新的skills引入的时候就调用先检测加载的skills是否有问题。


总结

AI Skills 的安全问题是一个新兴且重要的领域。随着 AI 编程助手的普及,Skills 的使用会越来越广泛,相应的安全挑战也会更加突出。

目前的检测工具有各自的优缺点,还没有一种万能的解决方案。最佳实践是结合多种检测手段,并保持警惕,不盲目信任第三方代码。

安全是一个持续的过程,需要用户、开发者、平台和研究者共同努力,才能构建一个安全的 AI Skills 生态系统。


参考文章