news 2026/7/19 20:57:52

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

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
[论文学习]你的凭证是如何被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%的硬编码案例已修复

四大核心发现

  1. 跨模态泄露是根本特征:76.3%的案例中,仅靠分析代码或仅靠分析自然语言描述都无法发现泄露——必须两者结合。这是因为很多泄露藏在SKILL.md的自然语言指令中(如“请使用以下API密钥调用服务”),而代码层面可能并无明显痕迹。

  2. 调试日志是最大漏洞源:占73.5%。根本原因在于Agent框架的设计惯例——将stdout(标准输出)内容纳入LLM的上下文窗口。开发者习惯在调试时打印变量值(包括密钥),这些输出被Agent框架捕获后进入LLM上下文,可能被模型记忆、输出到日志,或被后续对话引用。

  3. 高可利用性与低利用门槛:89.6%的泄露凭证可被立即利用,且92.5%在常规执行中即可触发,无需任何提权操作。这意味着攻击者不需要复杂的漏洞利用链,只需诱导Agent执行一个被污染的技能即可。

  4. Fork模式使修复失效:开源技能的分发模式(fork)导致安全问题“野火烧不尽”——即使上游仓库修复了问题,所有已存在的fork仍然包含泄露的凭证。

实际落地应用的可能性

  • 安全扫描工具:研究的检测管道(静态+动态+意图分析)可直接产品化,用于CI/CD流程中自动扫描技能仓库
  • 平台安全策略:技能市场(如SkillsMP)可集成该检测管道作为上架前的强制安全检查
  • 开发者教育:10种泄露模式的分类可作为安全培训教材,帮助开发者避免常见陷阱
  • 标准化倡议:研究结果为Agent技能生态的安全标准制定提供了实证基础

技术细节

泄露模式分类(10种)

研究识别出的10种泄露模式分为两大类:

开发者疏忽导致的4种模式

  1. 硬编码凭证:API密钥、令牌直接写在源代码中
  2. 自然语言指令中的凭证:SKILL.md中明文写出密钥
  3. 调试日志泄露:stdout中打印敏感信息(占比最大,73.5%)
  4. 工具调用参数泄露:凭证通过不安全的工具调用模式传递

恶意构造的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 20)
  • Agent运行时:Claude Code Agent(默认设置)
  • 监控维度:
    • 出站网络通信
    • 非声明文件的写入
    • 系统调用追踪
  • 测试策略:每技能3轮良性测试 + 3轮对抗性测试

分类标准

  • 泄露指标在良性条件下出现≥2轮,或在对抗条件下出现≥1轮,即判定为确认泄露

研究设定

硬件与软件配置

组件规格
隔离环境Docker容器(Ubuntu 22.04)
编程语言运行时Python 3.11、Node.js 20
Agent框架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公式进行有限总体校正(p=0.5),17,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安全领域提供了三个重要贡献:

  1. 基准数据集(SkillLeakBench)——为后续研究提供可复现的测试基准
  2. 漏洞分类体系——10种模式的系统化分类
  3. 检测管道——可开源/商业化的检测工具链

实践应用

对开发者的建议

  1. 永远不要在SKILL.md或代码中硬编码凭证——使用环境变量或密钥管理服务
  2. 审查所有调试输出——假设stdout的所有内容都可能被LLM看到
  3. 在CI/CD中集成凭证扫描——可使用研究团队开源的检测管道
  4. 关注fork的同步——如果fork了某个技能,定期检查上游的安全更新
  5. 使用零信任凭证管理方案——如Keygate这类工具,让AI只持有无意义别名

对平台运营者的建议

  1. 技能上架前强制安全扫描——集成类似阿里云“Skills检测”的方案
  2. 建立负责任披露机制——研究发现91.6%的硬编码案例可在披露后修复
  3. fork版本的安全追踪——建立上游修复到下游fork的通知机制
  4. 行为完整性检查——在安装前而非安装后进行行为完整性验证

对企业安全团队的建议

  1. 盘点已部署的Agent技能清单——研究显示3.1%的技能存在泄露问题
  2. 假设所有技能都不可信——“Trust No Skill”应成为默认安全原则
  3. 在生产环境部署前进行动态沙箱测试——静态扫描不足以发现所有问题
  4. 监控Agent的网络出站流量——数据外泄是最直接的攻击指标

参考资料来源

  • 原始论文: arXiv:2604.03070
  • PDF全文: https://arxiv.org/pdf/2604.03070
  • 数据集: SkillLeakBench on Hugging Face
  • 会议: ASE 2026 (The 41st IEEE/ACM International Conference on Automated Software Engineering)
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/19 20:56:38

UE5新手入门:15分钟用控件蓝图构建游戏主界面与HUD

1. 项目概述:为什么新手应该从UI开始? 很多刚接触虚幻引擎5(UE5)的朋友,一上来就被宏大的世界场景、复杂的材质系统或者让人眼花缭乱的蓝图节点给“劝退”了。大家总想先做出一个能跑能跳的酷炫角色,或者一…

作者头像 李华
网站建设 2026/7/19 20:50:45

云效Pipeline as Code实战:YAML化CI/CD全解析

1. 云效 Pipeline as Code 核心价值解析 当第一次听说云效推出Pipeline as Code功能时,我的第一反应是:终于等到这一天了!作为在CI/CD领域摸爬滚打多年的老手,我深知传统可视化编排流水线的痛点——每次修改都要在界面上点来点去&…

作者头像 李华
网站建设 2026/7/19 20:50:36

Go语言包管理与变量函数核心特性详解

1. Go语言中的包管理基础Go语言的包(package)是代码组织和复用的基本单元。每个Go源文件都属于一个包,包名声明在文件的第一行。与其它语言不同,Go的包设计强调简洁性和实用性,没有复杂的继承体系,而是通过…

作者头像 李华
网站建设 2026/7/19 20:45:48

TMS320F2838x CLA寄存器详解:任务管理、中断控制与实战调试

1. CLA寄存器概览与核心设计思想在TMS320F2838x这类高性能实时微控制器中,控制律加速器(CLA)是一个独立于主C28x CPU的浮点协处理器。它的存在,本质上是为了将那些对实时性要求苛刻、计算密集的控制算法(比如电机控制中…

作者头像 李华
网站建设 2026/7/19 20:45:08

基于YOLO26的暴力行为智能识别系统开发实践

1. 项目概述:基于YOLO26的暴力行为智能识别系统在公共安全领域,暴力行为的实时监测一直是个技术难点。传统监控依赖人工值守,不仅效率低下,还容易漏判误判。我们团队基于最新的YOLO26目标检测框架,开发了一套能够自动识…

作者头像 李华