跳转至

Blue Teaming Function-Calling Agents

会议: AAAI 2026
arXiv: 2601.09292
代码: 无
领域: LLM安全 / 智能体安全
关键词: function-calling, 提示注入攻击, 工具投毒, 蓝队防御, 开源LLM

一句话总结

系统评估了四个开源function-calling LLM在三种攻击下的鲁棒性,并测试了八种防御方案的效果,揭示了当前模型默认不安全、防御方案在实际场景中仍难以部署的现状。

研究背景与动机

  1. 领域现状: Function-calling能力使LLM能够与外部工具交互,扩展文本生成之外的能力。随着A2A和MCP等协议的推广,智能体应用日益流行。

  2. 现有痛点: Function-calling能力并不保证对抗攻击的鲁棒性,即便部署了防御措施,模型仍可能被诱导调用恶意函数。现有研究主要在闭源模型上演示攻击可行性,缺乏对开源模型的系统评估。

  3. 核心矛盾: 开源function-calling模型需要暴露工具的实现细节(如代码),这造成了闭源模型不存在的独特攻击面;同时现有防御机制在实际部署中面临高误报率等问题。

  4. 本文要解决什么: 系统评估开源function-calling模型的安全性,量化攻击成功率(ASR)和防御有效性,为设计更安全的智能体系统提供实证依据。

  5. 切入角度: 从蓝队(防御方)视角出发,同时实现攻击和防御,在统一框架下做端到端测试,关注工具实现可见性带来的新攻击向量。

  6. 核心idea: 工具实现的可见性为攻击者创造了独特攻击面(如Renaming Tool Poisoning),而当前防御方案(包括预防型和主动型)都无法提供全面保护,需要多层次组合防御。

方法详解

整体框架

使用Ollama和DSPy框架,在Berkeley Function Calling Leaderboard数据集上,对Qwen3:8B、Llama-3.2:3B、Granite3.2:8B、Granite3.3:8B四个模型进行攻击-防御评估。恶意目标函数get_result包含SQL注入代码,用于统一衡量攻击成功率。

关键设计

  1. 三种攻击方式:
  2. Direct Prompt Injection (DPI): 在用户查询中直接嵌入恶意指令,伪装为系统管理员消息,覆盖原始指令。对大多数模型ASR在56%-94%之间,是最有效的攻击。
  3. Simple Tool Poisoning (STP): 修改工具描述,在每个工具描述末尾添加恶意payload,同时将恶意函数加入工具列表。Qwen3:8B的ASR达95%。
  4. Renaming Tool Poisoning (RTP): 本文提出的新攻击,同时操纵工具描述和实现代码,通过双payload策略将注意力引导到实现中的恶意变量。仅对Qwen3:8B有效(ASR 74%),暗示该模型更关注工具实现。

  5. 四种预防型防御:

  6. Cosine Similarity: 用嵌入模型计算查询与工具的相似度,将工具选择委托给嵌入模型。效果参差不齐,部分场景ASR下降至0,但也可能导致准确率大幅下降。
  7. Tool Obfuscation: 本文提出的新防御,对工具名称和实现进行代码混淆,移除变量和工具名作为攻击向量。对大多数模型-攻击组合有正面影响。
  8. Description Rewriting: 用LLM(Granite-Code:8B)根据工具实现重新生成描述,建立描述与实际功能的强绑定。对工具投毒攻击的ASR降至0。

  9. 四种主动型防御:

  10. Watermarking: 对合法工具名称使用HMAC-SHA256生成水印,在执行前验证工具真实性。能检测100%的恶意函数调用,但Llama-3.2:3B无法准确复制水印。
  11. 还有Prompt Shields、LLM-as-a-Judge、Intention Analysis等防御,但都存在高误报率问题。

损失函数 / 训练策略

本文为实验评估研究,不涉及模型训练。评估指标为准确率(Accuracy,正确工具调用占比)和攻击成功率(ASR,成功诱导调用恶意函数的比例),在172条查询-答案对上测试。

实验关键数据

主实验

攻击类型 Qwen3:8B ACC/ASR Llama3.2:3B ACC/ASR Granite3.2:8B ACC/ASR Granite3.3:8B ACC/ASR
无攻击 0.92/0 0.66/0 0.84/0 0.78/0
DPI 0.06/0.94 0.20/0.58 0.34/0.56 0.80/0
STP 0.04/0.95 0.50/0.23 0.72/0.12 0.39/0.51
RTP 0.24/0.74 0.69/0.02 0.84/0.01 0.83/0

消融实验

  • Description Rewriting对STP和RTP的ASR降至0,同时对准确率影响可忽略
  • Watermarking能100%拦截恶意函数调用(执行前检测)
  • Cosine Similarity防御效果不稳定,部分场景反而增加ASR至0.64
  • Tool Obfuscation对除Llama3.2:3B外的模型总体正面

关键发现

  • Qwen3:8B对所有攻击最脆弱(推测更依赖工具实现细节),Granite3.3:8B最鲁棒
  • 没有单一防御能覆盖所有攻击类型,所有防御都存在显著的实际局限性
  • 开源模型的工具实现可见性创造了闭源模型不存在的独特攻击向量
  • 模型规模较小时(3B-8B)安全性普遍不足

亮点与洞察

  • 首次系统评估开源function-calling模型的安全性,填补了闭源评估之外的空白
  • 提出新攻击(RTP)和新防御(Tool Obfuscation),方法简洁有效
  • 揭示了一个重要发现:不同模型对工具描述vs实现代码的关注程度不同,这影响攻击效果
  • 实验发现Granite3.3:8B对DPI完全免疫(ASR=0),值得进一步研究其安全对齐机制

局限性 / 可改进方向

  • 仅测试了小型开源模型(3B-8B),缺乏对大型模型(70B+)和闭源模型的对比
  • 攻击场景单一(仅测单函数调用),未涉及多步推理和链式工具调用
  • 防御组合实验不够充分,未探索多防御叠加的最优策略
  • 未考虑自适应攻击者(知道防御方案后调整攻击策略的场景)

相关工作与启发

  • ASB (Zhang et al. 2025) 提出了400+工具的综合评估框架,攻击成功率最高84.30%
  • DRIFT (Li et al. 2025) 提出动态规则防护,Meta SecAlign 构建内置防御的LLM
  • 本文的发现可以指导MCP/A2A协议的安全设计,工具注册应包含签名验证机制

评分

⭐⭐⭐ (3/5)

实验设计系统全面,但技术深度有限,主要是经验性评估。发现有价值(开源模型默认不安全、无单一防御万能),但缺乏理论分析和更强的防御方案提出。对智能体安全社区是有用的参考。