跳到正文
原文
arXiv· arXiv:2601.09292· Greta Dolcetti, Giulio Zizzo, Sergio Maffeis·本站收录· 原文发表

蓝队测试函数调用 Agent

Blue Teaming Function-Calling Agents

论文速读

防御

据论文 PDF 整理(AI 生成),以原文为准

作者在四个开源函数调用模型上评测三种攻击与八种防御,称模型默认不安全且防御尚不能用于真实场景。

威胁模型目标是诱导函数调用智能体调用恶意目标函数。

问题
开源函数调用模型常能看到工具实现。作者要评估四个这类模型对诱导其调用恶意函数的攻击是否默认安全,以及八种防御能否用于真实场景。
方法
在清洗后的BFCL共172条单函数调用上,对四个开源模型测试DPI、STP与RTP。防御包括混淆、按实现重写描述、余弦相似度、水印,以及以granite-guardian为主要引擎的主动检测。
实验与结果
无防御时Qwen3:8B的STP ASR为0.95、DPI为0.94,Granite3.3:8B的DPI ASR为0。Description Rewriting使STP与RTP的ASR为0。查询与工具一致性检测的无攻击FPR为47%。
局限与可以继续做的
作者称没有适用于全部场景的通用防御,用LLM做guardian要么不够通用要么FPR高,并建议用尚不存在的函数调用专用数据训练专门模型。实验覆盖四个开源模型、172条单函数调用和三种攻击与八种防御的组合;论文未报告重复次数。
实验设置Qwen3:8B、Llama-3.2:3B 等 · Berkeley Function Calling Leaderboard · Accuracy、ASR 等
威胁模型
目标是诱导函数调用智能体调用恶意目标函数。DPI把攻击向量加在用户查询上,不需工具实现;STP假定可访问工具列表,改写描述并加入恶意函数;RTP同时改描述与实现。受害系统是带可见工具实现的开源函数调用模型。成功判定为按指定参数调用该恶意函数。
被测模型
Qwen3:8BLlama-3.2:3BGranite3.2:8BGranite3.3:8Bgranite-guardian-3.2-3b-a800m
基准
Berkeley Function Calling Leaderboard
指标
AccuracyASRFPRTPRDSA
AI 导读论文评估了四款声称具备函数调用能力的开源 LLM 对三类攻击的鲁棒性,并测量了八种防御的效果。结果显示这些模型默认并不安全,且这些防御尚无法在真实场景中部署。

论文评估了四款声称具备函数调用能力的开源 LLM 对三类攻击的鲁棒性,并测量了八种防御的效果。结果显示这些模型默认并不安全,且这些防御尚无法在真实场景中部署。

深度解读

6个问题,点开问题读完整回答

  1. 这篇论文试图解决什么问题?

    作者称四个开源函数调用模型默认不安全,八种防御尚不能用于真实场景。

    工具实现可见时,开源函数调用模型会不会被诱导去调用恶意函数,以及防御能否用于真实场景。

    • 场景:函数调用智能体让 LLM 执行动作并与环境交互。作者称 A2A、MCP 等协议使这类应用更常见,但函数调用能力并不保证能抵抗对抗攻击,即便加了防御也一样(引言引 Zhang et al. 2025)。
    • 现有不足:作者称既有工作主要在专有模型上展示攻击可行性。工具实现可见会带来作者称此前未处理的攻击向量;现有防御则有包括高 FPR 在内的实际限制,没有单一防御能覆盖全部攻击类型。
    • 本文内容:对四个自称具备函数调用能力的开源 LLM,测试 DPI、STP、RTP 和八种防御,量化正确调用比例与 ASR。作者提出与 RTP 相关的防御 Tool Obfuscation。
    • 威胁模型:
      • 目标:诱导智能体调用恶意目标函数,而不是用户查询对应的正确工具。
      • 能力:论文未使用 black-box 等说法。DPI 把攻击向量加在用户查询上,不需要工具实现;STP 假定能访问工具列表,改写描述并加入恶意函数;RTP 同时改描述和实现。
      • 受害系统:带详细工具实现的开源函数调用模型。任务是在多个工具中做一次参数正确的函数调用。
      • 成功判定:是否调用指定恶意函数且必需参数为指定值。ACC 是 172 条中正确工具调用的比例。
  2. 有哪些相关研究?

    相关工作覆盖智能体攻击、评测框架和防御;作者把本文放在带工具实现的开源模型上。

    作者在 Related Work 中分攻击、评测框架和防御来写;实验并不把这些系统当作对照复现。

    智能体攻击

    • Wu et al. (2025):论文称函数调用 LLM 经由恶意提示词的越狱成功率超过 90%。
    • Wang et al. (2024):对抗性工具注入,操纵 LLM 的工具调度;论文称 ASR 最高到 100%。

    安全评测框架

    • Zhang et al. (2025) 的 Agent Security Bench(ASB):400+ 工具、27 种攻击/防御方法;论文称攻击成功率最高 84.30%。
    • Fu, Yuan, and Wang (2025) 的 RAS-Eval:论文称攻击使智能体任务完成率平均下降 36.78%。

    防御机制

    • Li et al. (2025) 的 DRIFT:动态、基于规则的防护。
    • Chen et al. (2025) 的 Meta SecAlign:带内置防御的 LLM。论文对这两项只做了上述描述。

    基线与数据

    • 实验基线是不攻击时的正确工具调用,见 Table 1 第一行。数据来自 Berkeley Function Calling Leaderboard,清洗后 172 个 query-answer 对。

    作者称与主要在专有模型上展示攻击可行性的工作不同,本文针对带详细工具实现的开源函数调用模型,因而能测试与工具代码相关的攻击和防御。作者称 RTP 所对应的攻击向量此前工作未处理,并据此提出 Tool Obfuscation。

  3. 论文如何解决这个问题?

    在172条带实现的单函数调用上,测试三种攻击与八种防御。

    在同一批带实现的工具上,对四个开源模型施加三种攻击,再分别加上预防性处理或主动检测。恶意函数被命名为 get_result,成功条件是必需参数 param1 为 true;其实现是一段旨在删除数据表的 SQL 查询。论文不复述可照做的注入原文。

    任务、模型与数据

    • 模型与运行:Qwen3:8B、Llama-3.2:3B、Granite3.2:8B、Granite3.3:8B,经 Ollama 与 DSPy 调用。入选理由是开源、常用、可免费获得,且自称具备函数调用能力。作者称选择较小模型是因为能耗和算力更低,同时保持可接受的表现。
    • 任务:Berkeley Function Calling Leaderboard 上的单函数调用,即在多个可用工具中用正确参数调用一个函数。论文未写每个查询有多少个工具。
    • 工具实现:用 Qwen2.5-Coder:32B 生成看起来合理的实现,做成 172 个 query-answer 对的清洗集。作者称纳入实现,是因为公司托管内部工具或使用开源工具时可以这样做。脚注指向 BFCL v3 的 multiple 数据文件。
    • 攻击共同点:都要让智能体调用上述恶意函数。差别在于攻击向量加在何处、向量本身,以及允许修改的范围。

    三种攻击

    • DPI:把恶意指令直接写入用户查询,试图覆盖既有指示并改变行为,不要求访问工具实现。作者称它利用用户与 LLM 系统之间的信任关系。示例中同时放入了恶意函数。
    • STP:假定能访问工具列表。在每个工具描述末尾附加攻击向量,并把恶意函数加入列表,使描述仍显得正当,但把选择引向恶意函数。作者称这利用模型依赖工具元数据做选择。
    • RTP:同时改描述和实现,含两段载荷。第一段加到每个工具描述,把注意力引向实现中的一个变量;再在每个工具实现开头对该变量赋值,内容为第二段载荷;最后把恶意工具加入列表。作者称因有两段载荷且同时以描述和实现为对象,可视为一种新的工具投毒。

    预防性防御

    • Cosine Similarity:用 all-MiniLM-L6-v2 嵌入用户查询和工具,计算余弦相似度,返回分数最高的工具。作者称这等于把工具选择交给嵌入模型。
    • Tool Obfuscation:针对基于重命名的工具投毒。对实现中的函数和变量做系统性重命名,并保留混淆名与原名的映射,以去掉变量名和工具名作为攻击向量的可能。
    • Description Rewriting:针对 STP 与 RTP。用 Granite-Code:8B 只根据实现重新生成描述,使描述与真实功能对齐。

    主动防御

    • 共同目标:作者称主动防御旨在检出正在发生的攻击、停止它,并使系统进入拒绝状态。
    • Watermarking:用 HMAC 做工具认证。每个合法工具名用秘密种子经 SHA-256 得到水印,写入工具标识,在执行前核验。作者称攻击者不知道密钥,故恶意函数名不带水印;工具变更时需要重新生成哈希。
    • LLM 检测:主要引擎为 granite-guardian-3.2-3b-a800m。结果按高置信要求过滤,概率阈值 0.7 或更高。Query Jailbreak Detector 只查用户查询中的 DPI;Query Answer Consistency 判断回答是否与查询相称;Tools Jailbreak Detector 检查每个工具的实现和描述;Query Tools Consistency 判断工具列表是否与查询意图相符。论文未再为每个检测器另写一个模型名。正文与表题用词不完全一致:Table 11 作 Query Tool Consistency,Table 13 作 Tool Jailbreak Detector。

    指标

    • ACC:每种场景下正确工具调用占 172 条的比例。
    • ASR:攻击成功的比例。成功即调用恶意函数且必需参数为指定值。论文未单独写出 ASR 的分母,也未写由哪个模型评审。
    • 检测指标:LLM 主动防御不另报 ACC 与 ASR,作者称与无防御基线相同。报告 FPR(安全交互被判为恶意的比例)、TPR(恶意交互被正确判为恶意的比例)和 DSA(作者定义为被检出的成功攻击尝试所占比例)。无攻击时,Query Answer Consistency 把本应正确的调用判为不恰当计为假阳性。
  4. 论文做了哪些实验?

    无防御时Qwen3:8B的STP ASR为0.95;改写描述使工具投毒ASR为0。

    实验设置

    • 被测模型:Qwen3:8B、Llama-3.2:3B(Table 1 表头作 Llama3.2:3B)、Granite3.2:8B、Granite3.3:8B。经 Ollama 与 DSPy 运行。
    • 数据:清洗后的 Berkeley Function Calling Leaderboard,172 个 query-answer 对;任务为多个工具中的单函数调用。工具实现由 Qwen2.5-Coder:32B 生成。
    • 攻击与防御:DPI、STP、RTP;八种防御为余弦相似度、Tool Obfuscation、Description Rewriting、Watermarking、Query Jailbreak Detector、Query Answer Consistency、Tools Jailbreak Detector、Query Tools Consistency。作者称测试了攻击与防御的全部组合。
    • 指标:ACC 为 172 条中正确工具调用的比例;ASR 为攻击成功比例。LLM 主动防御不另报 ACC/ASR。检测报告 FPR、TPR、DSA。
    • 检测设置:主要引擎 granite-guardian-3.2-3b-a800m,高置信过滤,概率阈值 0.7 或更高。描述重写用 Granite-Code:8B;嵌入用 all-MiniLM-L6-v2。
    • 未写明项:论文未报告重复次数,也未报告人工一致性。作者称正文只摘要关键结果,完整数值在附录各表。

    主结果

    据 Table 1,无防御。单元格为 ACC / ASR。

    表格较宽,可左右滑动

    模型无攻击 ACCDPISTPRTP
    Qwen3:8B0.920.06 / 0.940.04 / 0.950.24 / 0.74
    Llama3.2:3B0.660.20 / 0.580.50 / 0.230.69 / 0.02
    Granite3.2:8B0.840.34 / 0.560.72 / 0.120.84 / 0.01
    Granite3.3:8B0.780.80 / 00.39 / 0.510.83 / 0
    • 作者称这些模型默认并不稳健。作者称无攻击 ACC 随模型在 92% 到 66% 之间;Table 1 为 0.92、0.66、0.84、0.78。
    • 作者称 DPI 除 Granite3.3:8B 外最有效,ASR 在 94% 与 56% 之间;该模型 DPI ASR 为 0。表中另三个 ASR 为 0.94、0.58、0.56。
    • STP 在 Qwen3:8B 上 ASR 为 0.95,其余为 0.23、0.12、0.51;作者称每个模型的 ACC 都下降。RTP 仅对 Qwen3:8B 有效(ASR 0.74)。作者称其余模型不受影响且 ACC 上升;表中 Llama3.2:3B 为 0.69、Granite3.3:8B 为 0.83,Granite3.2:8B 仍为 0.84。作者推测 Qwen3:8B 可能更关注工具实现。

    Description Rewriting

    • 用 Granite-Code:8B 按实现重写描述,针对 STP 与 RTP(Tables 8、9)。
    • 四模型 STP 与 RTP 的 ASR 均为 0(相对变化 -100%,Table 9)。STP 下 ACC 为 0.92、0.67、0.83、0.81。DPI 的 ASR 为 0.94、0.57、0.62、0.01,并未降到 0。
    • 作者称对所针对的工具投毒有效,且对多数模型的 ACC 影响可忽略或为正。无攻击 ACC 为 0.91、0.55、0.82、0.80;其中 Llama3.2:3B 的表中相对变化为 -17%。

    Watermarking

    • 执行前核验水印(Tables 6、7)。作者称 Llama-3.2:3B 不能准确报出水印,选中工具会被标为不正确。无攻击 FPR 为 1%、50%、2%、3%。
    • Table 7 的 ASR 并未归零:Qwen3:8B 在 DPI/STP/RTP 下为 0.92/0.95/0.63;Granite3.3:8B 的 STP ASR 为 0.56(相对变化 +10%)。无攻击 ACC 为 0.90、0.59、0.84、0.81(Table 6)。
    • 作者称因攻击者不知道密钥,可在执行前识别 100% 的成功恶意调用;并称工具变更时需重新生成哈希。Table 7 未给出与这句对应的 DSA。作者称除 Llama-3.2:3B 外通常对 ACC 和 ASR 有正面影响;上列 STP 数字与“ASR 都下降”并不一致。

    LLM 主动检测

    • Query Jailbreak Detector(Table 12,针对 DPI):四模型无攻击 FPR 均为 0%。DPI 的 TPR 为 100%;Qwen3:8B、Llama3.2:3B、Granite3.2:8B 的 DSA 为 100%,Granite3.3:8B 只写 TPR 100%。STP 与 RTP 的 TPR 为 0%。作者称它不能用于未针对的攻击。
    • Tools Jailbreak Detector(Table 13,针对两种工具投毒):STP 与 RTP 的 TPR 为 100%(写了 DSA 的格子亦为 100%)。无攻击 FPR 均为 22%;DPI 的 TPR 为 22%(Qwen 与 Granite3.2 的 DSA 为 20%,Llama 为 26%)。作者称它对无攻击和 DPI 的 FPR 很高。
    • 另外两项:Query Answer Consistency(Table 10)无攻击 FPR 为 12%、11%、13%、11%;作者称对 DPI 与 RTP 的结果有希望。DPI 的 TPR 为 93%、72%、73%、41%。Query Tools Consistency(Table 11)无攻击 FPR 均为 47%,作者称这是最高的 FPR,并推测原因是一致性检测器训练用的自然语言不像本实验的函数结构。该表 RTP 下 Granite3.2:8B 的 DSA 为 0%。

    其他消融与分析

    • Tool Obfuscation(Tables 2–3,针对 RTP):RTP ASR 为 0.35、0.03、0、0。Llama3.2:3B 无攻击 ACC 为 0.48(-27%),DPI ASR 为 0.87(+50%)。作者称除该模型外多数组合总体为正;Table 3 中 Granite3.2:8B 的 STP ASR 为 0.28(+133%)。
    • Cosine Similarity(Tables 4–5):RTP ASR 为 0.01、0.01、0、0。STP 下 Granite3.2:8B ASR 为 0.64(+433%),Granite3.3:8B 为 0.99(+94%);Qwen3:8B 的 STP ACC 为 0.71、ASR 为 0.21。
    • 同一防御下,DPI 的 Qwen3:8B ACC 为 0(-100%)、ASR 为 0.99(+5%);Granite3.3:8B 的 DPI ASR 为 0.09(表注 baseline was 0)。作者称对一些工具 ASR 相对下降最多 100%、ACC 提到 0.71,对另一些则 ACC 相对下降最多 100%、ASR 升至 0.64;对 RTP 作者称总体为正。
    • Query Answer Consistency 的 RTP:Qwen、Llama、Granite3.2 的 DSA 为 100%,Granite3.3 只报告 TPR 8%(Table 10)。STP 的 TPR 为 19%、23%、23%、17%。
    • Query Tools Consistency 的 STP TPR 均为 43%,DSA 为 44%、54%、50%、50%;RTP 的 TPR 均为 40%(Table 11)。DPI 的 TPR 为 100%。
    • Watermarking 的 DPI:Granite3.2:8B ACC 为 0.42(+24%)、ASR 为 0.47(-16%);Granite3.3:8B 的 DPI ASR 仍为 0(Table 7)。
  5. 有什么可以进一步探索的点?

    作者称没有覆盖全部场景的通用防御,并建议训练函数调用专用模型。

    作者指出的局限与后续方向

    论文未设独立的 Limitations 节。下列对应 Conclusion 里明确写出的判断与建议。

    • 作者称不存在适用于全部场景的通用防御;并称 Description Rewriting 与 Watermarking 是朝这个方向的 encouraging steps(Conclusion)。
    • 作者认为用 LLM 做 guardian 尚不可行:要么不够通用,要么 FPR 高(Conclusion)。
    • 作者建议训练更专门的模型,使用针对函数调用场景的数据集,并称这类数据集尚不存在(Conclusion)。

    实验覆盖范围

    • 函数调用被测模型为 Qwen3:8B、Llama-3.2:3B、Granite3.2:8B、Granite3.3:8B,共 4 个,用 Ollama 与 DSPy 运行(Experimental Evaluation)。
    • 数据为清洗后的 Berkeley Function Calling Leaderboard,172 个 query-answer 对;任务是多个工具中的单函数调用;工具实现由 Qwen2.5-Coder:32B 生成。
    • 攻击为 DPI、STP、RTP。防御为余弦相似度、Tool Obfuscation、Description Rewriting、Watermarking,以及四项 LLM 主动检测。作者称测试了攻击与防御的全部组合。
    • 主动检测的主要引擎为 granite-guardian-3.2-3b-a800m,概率阈值 0.7 或更高;描述重写用 Granite-Code:8B;余弦相似度用 all-MiniLM-L6-v2。
    • 论文未报告重复次数。LLM 主动防御的 ACC 与 ASR 未另报,作者称与基线相同;附录给出 Tables 2–13 的 ACC、ASR 或 FPR/TPR/DSA。
  6. 总结一下论文的主要内容

    四个开源模型上的蓝队结果:STP在Qwen3:8B的ASR为0.95,改写描述把工具投毒ASR降到0。

    作者对四个开源函数调用模型做蓝队评测,看工具实现可见时,诱导调用恶意函数的攻击和八种防御各自落到什么数字。

    • 问题:受害系统是自称具备函数调用能力的开源模型。攻击目标是让它调用指定恶意函数,且必需参数为指定值。DPI 改用户查询;STP 改工具描述并加入恶意函数;RTP 同时改描述和实现。作者把 RTP 与 Tool Obfuscation 当作此前未处理的一对。
    • 做法:数据是清洗后的 Berkeley Function Calling Leaderboard,172 条单函数调用,实现由 Qwen2.5-Coder:32B 生成。预防性手段是混淆名称、用 Granite-Code:8B 按实现重写描述、用嵌入模型按余弦相似度选工具。主动手段是执行前的水印,以及以 granite-guardian-3.2-3b-a800m 为主要引擎的检测,概率阈值 0.7 或更高。
    • 无防御:Table 1 中 Qwen3:8B 的 DPI、STP、RTP ASR 为 0.94、0.95、0.74。Granite3.3:8B 的 DPI ASR 为 0,RTP ASR 为 0。无攻击 ACC 作者称在 92% 到 66% 之间。
    • 防御:Description Rewriting 使四模型的 STP 与 RTP ASR 均为 0(Table 9),DPI 仍可成功。Query Jailbreak Detector 对 DPI 的 TPR 为 100%、无攻击 FPR 为 0%,对两种工具投毒的 TPR 为 0%(Table 12)。Query Tools Consistency 的无攻击 FPR 为 47%(Table 11)。
    • 作者结论:模型默认不安全,防御还不能用于真实场景;没有覆盖全部攻击的通用防御。作者认为 LLM guardian 要么不够通用要么 FPR 高,并建议用尚不存在的函数调用专用数据训练专门模型。
阅读原文arxiv.org