AI Skills安全
最近在研究 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 工具,提供多层次检测:
- Prompt 注入检测 - 检测越狱相关的提示词模式
- 密钥扫描 - 集成 trufflehog/gitleaks
- Shell 脚本分析 - 使用 shellcheck
- 代码安全分析 - 使用 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
如何防御?
普通用户
- 只从可信来源获取 Skills,避免使用来路不明的第三方插件
- 仔细审查 Skill 代码,特别是涉及文件操作和网络请求的部分
- 在隔离环境中测试,确认安全后再在生产环境使用
- 限制 AI 助手的权限,避免授予不必要的系统访问权限
- 不要将敏感信息提供给 AI,包括凭证、密钥等
开发者
- 编写安全的 Skills,避免硬编码敏感信息
- 使用最小权限原则,只申请必要的功能权限
- 提供透明的能力说明,让用户了解 Skill 的具体行为
- 接受安全审计,公开发布前进行充分的安全测试
也可以编写一个检测恶意skills的skills,在每次检测到有新的skills引入的时候就调用先检测加载的skills是否有问题。
总结
AI Skills 的安全问题是一个新兴且重要的领域。随着 AI 编程助手的普及,Skills 的使用会越来越广泛,相应的安全挑战也会更加突出。
目前的检测工具有各自的优缺点,还没有一种万能的解决方案。最佳实践是结合多种检测手段,并保持警惕,不盲目信任第三方代码。
安全是一个持续的过程,需要用户、开发者、平台和研究者共同努力,才能构建一个安全的 AI Skills 生态系统。
参考文章
- Snyk: ToxicSkills Study of Agent Skills Supply Chain Compromise
- Agent Skills Guard Research
- CISCO Skill-Scanner Documentation
- https://github.com/brucevanfdm/agent-skills-guard
- https://github.com/pors/skill-audit
- https://github.com/snyk/agent-scan
- https://skillshield.io/
- https://playbooks.com/tools/skill-scanner