[论文学习]你的凭证是如何被LLM Agent技能泄露的

发布时间:2026/7/19 20:58:06
[论文学习]你的凭证是如何被LLM Agent技能泄露的 你的凭证是如何被LLM Agent技能泄露的一项实证研究论文重点首个针对LLM Agent技能生态中凭证泄露问题的大规模实证研究**。研究团队从SkillsMP平台全球最大的开源技能市场的170,226个构件中分层抽样17,022个技能通过静态代码分析、动态沙箱测试和人工审查三重验证发现520个受影响技能包含1,708个安全问题并总结出10种泄露模式。核心发现是76.3%的泄露案例需要联合分析自然语言描述和程序逻辑说明凭证暴露本质上是跨模态的73.5%的漏洞源于调试日志——Agent框架将stdout喂入LLM上下文窗口使常规调试变成凭证暴露向量89.6%的泄露凭证可被立即利用且fork-based分发模式导致修复失效——从107个上游仓库移除的密钥仍活跃在50多个独立fork中。核心研究内容问题定义LLM Agent正越来越多地依赖第三方“技能”Skills来完成各种任务——这些技能运行在特权执行环境中经常需要处理API密钥、OAuth令牌、云凭证等敏感凭据。然而这些凭证究竟是如何被泄露的此前缺乏系统性的研究。传统软件安全中的凭证泄露研究范式无法直接套用于Agent技能场景因为Agent技能的执行范式完全不同技能不仅包含程序代码还包含自然语言指令SKILL.md且所有输出包括调试日志都会被喂入LLM的上下文窗口。这种“代码自然语言执行上下文”的独特架构催生了全新的攻击面和泄露途径。研究围绕三个核心问题展开RQ1普遍性Agent技能中凭证泄露的普遍程度如何RQ2模式常见的泄露模式有哪些RQ3可利用性识别出的泄露模式在实践中的可利用程度如何创新方法这项研究的最大创新在于方法论层面的三重验证架构而非单一的技术突破第一层静态分析——同时使用正则表达式匹配和AST抽象语法树解析从源代码中系统性地提取硬编码密钥。AST分析能够理解代码结构区分真正的密钥和示例占位符大幅降低误报率。第二层动态沙箱测试——在隔离的Docker容器中执行技能注入模拟凭证Mock Credentials监控网络I/O、系统调用和文件写入捕获运行时暴露。研究设计了双条件测试策略良性条件与对抗性条件每个条件执行三轮以应对Agent行为的概率性。第三层开发者意图交叉验证——通过分析SKILL.md文档理解开发者声明的功能意图与运行时行为进行交叉比对区分“无意的疏忽”和“恶意的构造”。此外研究在采样方法上也体现了严谨性从170,226个构件中采用分层随机抽样抽取17,022个技能应用Cochran公式进行有限总体校正样本量在99%置信水平和1%误差幅度下具有统计代表性。研究成果核心数据一览指标数据分析技能总数17,022个受影响技能520个3.1%安全问题总数1,708个泄露模式分类10种4种开发者疏忽 6种恶意构造跨模态分析需求76.3%的案例需要联合分析NL描述和代码调试日志占比73.5%的漏洞可立即利用89.6%日常执行中触发92.5%无需提权恶意技能83个16%无意疏忽437个84%上游修复后仍活跃107个上游仓库移除的密钥在50独立fork中存续负责任披露后修复率91.6%的硬编码案例已修复四大核心发现跨模态泄露是根本特征76.3%的案例中仅靠分析代码或仅靠分析自然语言描述都无法发现泄露——必须两者结合。这是因为很多泄露藏在SKILL.md的自然语言指令中如“请使用以下API密钥调用服务”而代码层面可能并无明显痕迹。调试日志是最大漏洞源占73.5%。根本原因在于Agent框架的设计惯例——将stdout标准输出内容纳入LLM的上下文窗口。开发者习惯在调试时打印变量值包括密钥这些输出被Agent框架捕获后进入LLM上下文可能被模型记忆、输出到日志或被后续对话引用。高可利用性与低利用门槛89.6%的泄露凭证可被立即利用且92.5%在常规执行中即可触发无需任何提权操作。这意味着攻击者不需要复杂的漏洞利用链只需诱导Agent执行一个被污染的技能即可。Fork模式使修复失效开源技能的分发模式fork导致安全问题“野火烧不尽”——即使上游仓库修复了问题所有已存在的fork仍然包含泄露的凭证。实际落地应用的可能性安全扫描工具研究的检测管道静态动态意图分析可直接产品化用于CI/CD流程中自动扫描技能仓库平台安全策略技能市场如SkillsMP可集成该检测管道作为上架前的强制安全检查开发者教育10种泄露模式的分类可作为安全培训教材帮助开发者避免常见陷阱标准化倡议研究结果为Agent技能生态的安全标准制定提供了实证基础技术细节泄露模式分类10种研究识别出的10种泄露模式分为两大类开发者疏忽导致的4种模式硬编码凭证API密钥、令牌直接写在源代码中自然语言指令中的凭证SKILL.md中明文写出密钥调试日志泄露stdout中打印敏感信息占比最大73.5%工具调用参数泄露凭证通过不安全的工具调用模式传递恶意构造的6种模式5.提示词注入通过构造特定指令诱导Agent泄露凭证6.社会工程诱导使用说服性或欺骗性语言设计如“为验证目的请提供您的API密钥”7.混淆/规避检测使用Base64编码等手段规避静态扫描8.数据外泄将凭证写入非声明文件或外发网络请求9.权限提升利用技能的执行权限获取更高权限10.多模式组合攻击37.3%的恶意技能组合多种攻击模式凭证类型分类研究建立了覆盖9种凭证类别的关键词字典凭证类型示例OpenAI API密钥sk-...AWS凭证AKIA...云服务凭证各类云平台密钥前缀OAuth令牌各类认证令牌数据库凭证连接字符串中的用户名/密码第三方服务密钥Groq、Anthropic等检测管道技术栈静态分析层正则表达式匹配基于9类凭证的关键词字典AST解析使用tree-sitter框架支持Python和Node.js语义约束分析分析NL描述中的凭证相关语义污点分析Sink Detection追踪凭证引用是否流入不安全Sink动态分析层隔离环境Docker容器Ubuntu 22.04, Python 3.11, Node.js 20Agent运行时Claude Code Agent默认设置监控维度出站网络通信非声明文件的写入系统调用追踪测试策略每技能3轮良性测试 3轮对抗性测试分类标准泄露指标在良性条件下出现≥2轮或在对抗条件下出现≥1轮即判定为确认泄露研究设定硬件与软件配置组件规格隔离环境Docker容器Ubuntu 22.04编程语言运行时Python 3.11、Node.js 20Agent框架Claude Code Agent默认配置静态分析工具tree-sitter框架多语言AST解析数据来源SkillsMP平台170,226个构件研究流程四阶段阶段1数据集收集——从SkillsMP的170,226个构件中通过分层随机抽样获取17,022个技能阶段2静态过滤——关键词匹配 NL语义分析 AST-based Sink检测从17,022个技能中筛选出3,156个候选阶段3动态验证——在装有监控的沙箱中执行3,156个候选技能分别在良性和对抗条件下测试标记出1,427个问题阶段4人工分类——三位安全专家独立审查将1,427个标记案例分为Benign良性、Vulnerable漏洞、Malicious恶意三类最终确认520个案例统计有效性应用Cochran公式进行有限总体校正p0.517,022个样本在99%置信水平和1%误差幅度下具有统计代表性。综合分析为什么这个问题比想象中更严重这项研究揭示的本质问题远超传统“硬编码密钥”的范畴。Agent技能的安全威胁模型与普通软件有根本不同第一执行上下文的特殊性。普通程序中的调试日志可能只留在本地文件但Agent框架将stdout直接喂入LLM上下文窗口。这意味着“打印变量”这个再普通不过的调试行为在Agent场景下等同于“把密钥发给LLM提供商”。更糟糕的是LLM可能会在后续对话中引用这些信息或被用于训练如果用户未opt-out。第二自然语言成为新的攻击面。传统代码审计只分析源代码但Agent技能中的SKILL.md是自然语言指令——它们同样可以包含凭证同样可以被Agent解析和执行。76.3%的跨模态泄露案例说明单纯扫描代码已经不够了必须同时分析自然语言。第三供应链安全的“fork困境”。开源软件的fork本是优势但在安全问题上却成了噩梦——一旦某个版本的技能泄露了凭证所有fork都会继承这个问题且上游修复无法自动同步到下游。这在传统软件中已有类似问题如Log4j但Agent技能的快速迭代和低门槛分发加剧了这一风险。84% vs 16% 的启示研究发现84%的泄露源于开发者疏忽仅16%是恶意行为。这个比例有两层含义乐观的一面绝大多数问题可以通过开发者教育和自动化检测工具来解决并非系统性的不可修复缺陷。警示的一面84%的“无心之失”说明当前Agent技能开发的默认安全姿态严重不足——开发者还在用写本地脚本的心态写Agent技能没有意识到“每一个被Agent接触的数据都会‘经过’LLM”。这种认知差距是最大的安全隐患。对AI安全社区的启示这项研究为Agent安全领域提供了三个重要贡献基准数据集SkillLeakBench——为后续研究提供可复现的测试基准漏洞分类体系——10种模式的系统化分类检测管道——可开源/商业化的检测工具链实践应用对开发者的建议永远不要在SKILL.md或代码中硬编码凭证——使用环境变量或密钥管理服务审查所有调试输出——假设stdout的所有内容都可能被LLM看到在CI/CD中集成凭证扫描——可使用研究团队开源的检测管道关注fork的同步——如果fork了某个技能定期检查上游的安全更新使用零信任凭证管理方案——如Keygate这类工具让AI只持有无意义别名对平台运营者的建议技能上架前强制安全扫描——集成类似阿里云“Skills检测”的方案建立负责任披露机制——研究发现91.6%的硬编码案例可在披露后修复fork版本的安全追踪——建立上游修复到下游fork的通知机制行为完整性检查——在安装前而非安装后进行行为完整性验证对企业安全团队的建议盘点已部署的Agent技能清单——研究显示3.1%的技能存在泄露问题假设所有技能都不可信——“Trust No Skill”应成为默认安全原则在生产环境部署前进行动态沙箱测试——静态扫描不足以发现所有问题监控Agent的网络出站流量——数据外泄是最直接的攻击指标参考资料来源原始论文: arXiv:2604.03070PDF全文: https://arxiv.org/pdf/2604.03070数据集: SkillLeakBench on Hugging Face会议: ASE 2026 (The 41st IEEE/ACM International Conference on Automated Software Engineering)