前置阅读收获
🎯 阅读本篇你将获得:
- 理解 AI Agent 技能包(Skill Pack)的概念与安全边界
- 掌握 Anthropic 技能包供应链的安全风险模型
- 学会 Glasswing 万漏洞事件中的四类核心漏洞类型
- 获得一套可落地的 AI 技能包安全审计框架
- 了解行业主流的安全治理最佳实践
本篇属于 AI 安全治理进阶专题,适合已了解 Agent 基本概念的开发者和安全工程师阅读。
AI 技能包安全是一个快速发展的领域,本文所述漏洞类型和审计方法可能随行业演进需要更新。
1概念:什么是 AI Agent 技能包
AI Agent 技能包(Skill Pack) 是指为智能体(Agent)预定义的一组可复用的工具、指令模板和工作流程集合。它将特定领域的专业能力封装为即插即用的模块,让 Agent 无需从零训练就能执行复杂任务。
1.1 技能包的形态
技能包在技术实现上有三种主要形态:
- 声明式配置:以
.md或.yaml格式定义 Agent 的工具调用规则、系统提示词和任务模板 - 可执行脚本:包含 Python、JavaScript 等代码的工具链,Agent 可直接调用
- 混合模式:声明式配置 + 轻量代码,兼顾可读性与灵活性
以 Anthropic 2026 年 5 月发布的 31 个企业技能包 为例,每个技能包以 .md 格式分发,首日下载量超过 38.2 万次。这些技能包覆盖了代码审查、数据分析、文档生成、合规审计等企业场景,用户可以直接在 Claude 的上下文中加载使用。
1.2 技能包的安全边界
技能包的本质是信任传递:开发者将第三方编写的能力集成到自己的 Agent 中,等于将 Agent 的行为控制权部分让渡给了技能包提供者。这就引入了一个全新的安全维度——Agent 供应链安全。
与传统的软件供应链不同,Agent 技能包的「代码」不仅仅是可执行指令,还包括提示词、行为规则、上下文注入等软性指令。一个精心设计的恶意技能包可能不需要注入恶意代码,只需要通过提示词注入就能让 Agent 执行危险操作。
理解技能包的核心特征:它是可分发的、可复用的、且会在运行时注入 Agent 的上下文。这意味着任何技能包都应该被当作潜在的不可信输入来处理。
不要假设技能包提供者是可信的。Anthropic 官方技能包经过审核,但社区贡献的技能包可能包含恶意提示词注入或越权工具调用。
2风险模型:AI 技能包的五大安全威胁
AI Agent 技能包的安全风险可以从五个维度建模,这也是 Glasswing 公司在 2026 年 5 月的 30 天安全测试中 发现的超过 10,000 个 AI 安全漏洞 的核心分类框架。
2.1 威胁一:提示词注入(Prompt Injection)—— 危害等级 P0
提示词注入是技能包最常见的攻击向量。恶意技能包可以在其 .md 定义中嵌入隐藏指令,例如:
- 上下文覆盖攻击:技能包中的系统提示覆盖 Agent 原有的安全约束
- 隐蔽指令注入:在看似无害的示例代码中隐藏恶意指令
- 角色劫持:技能包重新定义 Agent 的角色,绕过原有的权限检查
2.2 威胁二:工具调用越权(Tool Misuse)—— 危害等级 P0
技能包可以定义 Agent 使用的工具。恶意技能包可能:
- 调用超出 Agent 权限范围的 API
- 将敏感数据通过工具调用外泄到外部服务
- 定义隐蔽的持久化工具(如定期扫描文件、监控键盘输入)
在 Glasswing 的测试中,约 32% 的 AI 安全漏洞 属于工具调用越权类。这类漏洞的隐蔽性极高,因为从外部看 Agent 只是在「正常使用工具」,实际上工具已被恶意技能包操控。
2.3 威胁三:数据泄露(Data Exfiltration)—— 危害等级 P0
技能包可能通过以下方式导致数据泄露:
- 在技能包的错误处理逻辑中,将上下文数据发送到外部端点
- 利用 Agent 的网络访问能力,将敏感信息编码后发送到攻击者控制的服务器
- 通过多步骤操作,将分散的敏感数据聚合后一次性外泄
2.4 威胁四:持久化与逃逸(Persistence & Escape)—— 危害等级 P1
恶意技能包可能尝试:
- 在 Agent 的文件系统中留下持久化后门
- 通过 Agent 的代码执行能力,在宿主系统中创建持久化进程
- 利用 Agent 的多轮对话记忆,在后续会话中恢复恶意行为
2.5 威胁五:供应链污染(Supply Chain Contamination)—— 危害等级 P1
这是最高级别的系统性风险:
- 依赖链污染:技能包 A 引用技能包 B,B 被篡改导致 A 也被污染
- 版本回滚攻击:攻击者发布「旧版本」技能包,其中包含已修复的漏洞
- 名称混淆:发布与知名技能包同名或相似名称的恶意包
对每个新集成的技能包进行威胁建模:它需要什么权限?能访问什么数据?能调用什么工具?是否有外部通信?四个问题至少回答清楚三个再集成。
不要将技能包的安全评估等同于代码安全审查。提示词注入和上下文操纵是传统代码审查无法发现的威胁。
3案例分析:Anthropic 技能包与 Glasswing 万漏洞事件
3.1 Anthropic 31 个企业技能包
2026 年 5 月,Anthropic 发布了首批 31 个企业级技能包,覆盖代码审查、数据分析、合规审计、文档生成等场景。关键数据:
- 首日下载量:382,000 次
- 文件格式:纯 Markdown(
.md),用户可直接阅读和编辑 - 分发方式:官方文档页面 + GitHub 仓库
- 安全审核:Anthropic 内部安全团队对所有技能包进行了审查
Anthropic 的安全设计亮点:
- 技能包使用声明式定义,所有指令都是可见的 Markdown 文本,用户可以审计
- 每个技能包都有明确的权限声明,说明需要访问哪些工具和数据
- 技能包之间没有自动依赖链,每个技能包独立加载,避免供应链污染
3.2 Glasswing 30 天万漏洞事件
2026 年 5 月,网络安全公司 Glasswing 发起了一项为期 30 天 的 AI 安全众测活动,目标是对主流 AI 平台和 Agent 框架进行系统性漏洞挖掘。结果令人震惊:
- 发现漏洞总数:超过 10,000 个
- 参与的安全研究员:超过 500 名
- 涵盖的平台:OpenAI、Anthropic、Google、Microsoft 等主流 AI 平台
- 最严重的漏洞类型:工具调用越权(32%)、提示词注入(28%)、数据泄露(22%)、持久化与逃逸(18%)
关键发现:
- 技能包是主要攻击面:超过 40% 的漏洞与第三方技能包的集成有关
- 企业级应用风险更高:企业 Agent 通常有更高的系统权限,被劫持后的破坏力更大
- 多 Agent 系统放大风险:当一个技能包被加载到多 Agent 系统中时,漏洞传播速度是单 Agent 的 3-5 倍
IBM 在事件后宣布加入 Glasswing 的 AI 安全修复计划,韩国政府也推进了相关的 AI 安全立法。这标志着 AI 安全从学术研究进入了产业治理阶段。
关注 Glasswing 的漏洞披露模式:他们采用了类似 CVE 的标准化漏洞编号系统,这对建立行业统一的 AI 安全标准具有重要意义。
Anthropic 的技能包虽然经过官方审核,但这不意味着「零风险」。Glasswing 测试中发现的许多漏洞存在于经过审核的官方集成中。
4审计框架:AI 技能包安全审计方法论
基于 Glasswing 的发现和行业最佳实践,以下是一套可落地的 AI 技能包安全审计框架,适用于任何集成第三方技能包的开发者和企业。
4.1 审计阶段一:静态分析(导入前)
在技能包被加载到 Agent 之前,必须进行以下检查:
4.1.1 内容审查
- 检查所有 Markdown/ YAML 文件,查找可疑的隐蔽指令
- 搜索常见的注入模式:
忽略之前的指令、覆盖、不要执行安全检查 - 检查外部链接,确认技能包不会引用恶意资源
4.1.2 权限分析
- 列出技能包声明的所有工具调用
- 确认每个工具调用的权限级别是否与 Agent 的权限模型兼容
- 检查是否有隐式权限提升(如通过工具链间接获取更高权限)
4.1.3 依赖扫描
- 检查技能包是否引用其他技能包或外部依赖
- 对所有依赖项重复执行内容审查和权限分析
- 建立依赖树图,确认没有循环依赖或隐藏的传递依赖
4.2 审计阶段二:沙箱测试(导入后)
技能包通过静态分析后,必须在隔离环境中测试:
- 网络隔离测试:在无外网访问的环境中运行 Agent + 技能包,监控 DNS 查询和所有网络请求
- 文件系统隔离测试:在临时文件系统中运行,确认技能包不会尝试读写敏感路径
- 工具调用边界测试:使用受限的工具集运行技能包,确认不会调用未授权的工具
4.3 审计阶段三:运行时监控(生产环境)
即使通过了前两个阶段,生产环境中仍需持续监控:
- 日志审计:记录所有技能包的工具调用和上下文注入
- 异常检测:当技能包的行为模式偏离基线时发出告警
- 定期重审:每季度对所有已集成的技能包重新进行静态分析
interface SkillPackAudit {
name: string;
version: string;
injectedPrompts: string[];
toolCalls: string[];
externalLinks: string[];
riskLevel: 'low' | 'medium' | 'high' | 'critical';
}
function auditSkillPack(pack: SkillPackAudit): string[] {
const issues: string[] = [];
// 检查注入的提示词
if (pack.injectedPrompts.some(p => p.includes('忽略') || p.includes('覆盖'))) {
issues.push('检测到可能的提示词注入');
}
// 检查工具调用权限
if (pack.toolCalls.some(t => t.includes('文件系统') || t.includes('网络'))) {
issues.push('技能包请求敏感工具权限');
}
// 检查外部链接
if (pack.externalLinks.length > 0) {
issues.push(`发现 ${pack.externalLinks.length} 个外部链接,需人工审查`);
}
return issues;
}import subprocess
import json
import tempfile
def sandbox_test_skillpack(skillpack_path: str, timeout: int = 60) -> dict:
"""在沙箱环境中测试技能包的行为"""
with tempfile.TemporaryDirectory() as sandbox_dir:
result = {
'exit_code': 0,
'network_requests': [],
'file_operations': [],
'issues': []
}
# 使用 strace 监控系统调用
strace_cmd = [
'strace', '-f', '-e', 'trace=network,file',
'python', '-c',
f'import json; data = json.load(open('{skillpack_path}')); print(data)'
]
try:
proc = subprocess.run(strace_cmd, capture_output=True, text=True, timeout=timeout)
result['exit_code'] = proc.returncode
# 分析网络请求
for line in proc.stderr.split('
'):
if 'connect' in line or 'socket' in line:
result['network_requests'].append(line.strip())
if 'open' in line or 'read' in line:
result['file_operations'].append(line.strip())
# 检查异常行为
if result['network_requests']:
result['issues'].append('检测到网络请求,需要人工审查')
except subprocess.TimeoutExpired:
result['issues'].append('技能包执行超时,可能存在恶意行为')
return result// 技能包安全审计自动化脚本示例
interface SkillPackAudit {
name: string;
version: string;
injectedPrompts: string[];
toolCalls: string[];
externalLinks: string[];
riskLevel: 'low' | 'medium' | 'high' | 'critical';
}
function auditSkillPack(pack: SkillPackAudit): string[] {
const issues: string[] = [];
// 检查注入的提示词
if (pack.injectedPrompts.some(p => p.includes('忽略') || p.includes('覆盖'))) {
issues.push('检测到可能的提示词注入');
}
// 检查工具调用权限
if (pack.toolCalls.some(t => t.includes('文件系统') || t.includes('网络'))) {
issues.push('技能包请求敏感工具权限');
}
// 检查外部链接
if (pack.externalLinks.length > 0) {
issues.push(\`发现 \${pack.externalLinks.length} 个外部链接,需人工审查\`);
}
return issues;
}将审计流程自动化:编写脚本自动扫描新导入的技能包,检查常见的注入模式和权限越界。人工审查应该聚焦于脚本无法覆盖的语义分析。
沙箱测试不能替代生产环境监控。有些攻击(如时间延迟型、条件触发型)只能在特定的运行环境中被触发。
5治理框架:企业级 AI 技能包安全管理
5.1 技能包注册与审批
企业应该建立技能包注册表(Skill Registry),所有技能包必须经过以下流程才能被集成:
- 提交申请:开发者提交技能包名称、来源、用途说明
- 安全审查:安全团队执行静态分析 + 沙箱测试
- 审批通过:技能包被加入企业白名单,分配唯一标识
- 版本锁定:锁定技能包的版本,禁止自动更新
- 定期复审:每季度对已批准的技能包重新审查
5.2 权限最小化原则
每个技能包应该只获得完成其功能所需的最小权限:
- 工具权限:技能包只能调用其明确声明的工具
- 数据权限:技能包只能访问其功能所需的数据范围
- 网络权限:技能包的网络访问应该被限制在指定的域名白名单内
5.3 事件响应计划
当发现技能包存在安全问题时,企业应该有明确的响应流程:
- 立即隔离:停止所有使用问题技能包的 Agent 实例
- 影响评估:确定技能包在隔离期间可能造成的影响范围
- 漏洞修复:修复或替换有问题的技能包
- 通知相关方:向受影响的团队和用户通报情况
- 复盘改进:分析根本原因,更新审计流程
5.4 行业协作
AI 技能包安全需要行业协作,因为:
- 单个企业的审计能力有限:无法覆盖所有攻击向量
- 漏洞信息需要共享:一个平台发现的漏洞可能影响所有平台
- 标准需要统一:CVE-like 的标准化编号系统有助于快速定位和修复
Glasswing 的众测模式提供了一个很好的范例:通过组织大规模安全研究员参与,在短短 30 天内发现了超过 10,000 个漏洞。这种模式可以推广到技能包安全领域。
建立技能包安全社区:鼓励开发者提交可疑技能包,共享审计结果和修复方案。开放协作比封闭审查更能快速提升整体安全水平。
不要依赖单一的安全工具或流程。技能包安全的最佳实践是「防御纵深」:静态分析 + 沙箱测试 + 运行时监控 + 事件响应,四层防线缺一不可。
6未来展望:AI 技能包安全的演进方向
6.1 自动化审计工具
随着技能包生态的发展,自动化审计工具将成为刚需:
- 静态分析引擎:自动扫描 Markdown/YAML 文件中的注入模式和可疑指令
- 行为分析引擎:在沙箱中自动执行技能包,监控其实际行为
- 依赖分析工具:自动构建技能包的依赖树,识别供应链风险
- 合规检查工具:自动确认技能包是否符合企业的安全政策和行业法规
Microsoft 的 RAMPART 框架(2,500 stars)就是一个 pytest-native 的 Agent 安全测试框架,可以用于技能包的自动化安全测试。
6.2 标准化安全签名
未来可能出现类似代码签名的技能包安全签名机制:
- 技能包提供者使用数字签名证明其来源和完整性
- Agent 平台在加载技能包时验证签名
- 被篡改的技能包将无法通过验证
6.3 运行时安全沙箱
Agent 运行时沙箱将成为标准配置:
- 每个技能包在独立的沙箱环境中运行
- 沙箱限制技能包的工具调用、网络访问和文件系统操作
- 沙箱之间完全隔离,一个技能包被攻破不影响其他技能包
6.4 AI 驱动的安全审计
用 AI 审计 AI 可能成为最高效的方式:
- 使用一个独立的审计 Agent 来审查其他 Agent 的技能包
- 审计 Agent 经过专门训练,擅长发现提示词注入和工具越权
- 审计 Agent 与目标 Agent 完全隔离,避免被同一技能包同时攻破
关注 RAMPART 和类似工具的发展。它们代表了从「人工安全审查」到「自动化安全测试」的范式转变,将大幅降低技能包安全审计的成本。
AI 驱动的安全审计本身也面临安全风险:审计 Agent 可能被恶意技能包同时攻破。因此「隔离」是底线,不是可选项。
7扩展阅读与学习资源
7.1 推荐阅读
- Anthropic 负责任扩展政策 RSP — 了解 Anthropic 的安全治理框架
- AI Agent 安全 与 多 Agent 系统安全设计 — 多 Agent 系统的安全架构设计
- Glasswing 万漏洞事件分析 — 详细分析 Glasswing 的发现和行业影响
7.2 工具推荐
- RAMPART:Microsoft 开源的 Agent 安全测试框架,支持 pytest-native 测试模式
- Claude Context:Zilliz 开源的语义代码搜索 MCP Server,可用于技能包内容的语义审计
- ML Intern:Hugging Face 的自主 ML 工程师 Agent,可用于自动化技能包测试
7.3 行业标准
- MITRE ATLAS:MITRE 的 AI 威胁分类框架,提供了完整的 AI 安全威胁矩阵
- NIST AI RMF:NIST 的 AI 风险管理框架,适用于企业级 AI 安全治理
- OWASP Top 10 for LLM:OWASP 的 LLM 应用十大安全风险,涵盖了技能包注入等关键威胁
建议从 OWASP Top 10 for LLM 开始学习,它提供了最实用的 AI 安全风险清单和缓解建议。MITRE ATLAS 适合需要深入理解威胁模型的安全工程师。
行业标准和工具更新频繁,建议定期关注最新版本的发布。OWASP Top 10 for LLM 在 2026 年已有多个更新版本。