论文

当谈话不是代码时:比较模拟和开发软件的LLM智能体

When Talk Isn't Code: Comparing LLM Agents That Simulate and Develop Software

模型评测模型能力评测

摘要

LLM既可用于模拟网络协议实现(如蜜罐),也可用于编写它们。先前的工作分别评估这两种用途,一种情况下根据模型的答案或对话,另一种情况下根据其生成的代码。我们观察到知识探针(询问模型实现需要哪种安全检查)和对话可以信任生成的程序缺乏的安全检查,但没有研究将它们与同一模型编写的代码进行比较。为了填补这一空白,我们首次在模拟模式(S 模式)和开发模式(D 模式)之间进行比较,其中模型在对话中执行实现,而开发模式(D 模式)则以知识探针作为基线,模型编写程序并攻击程序。我们设计并实现了一个Harness,它使用一种攻击套件和一个预言机来判断所有三个,并在四种协议实现上评估 15 个LLM。我们发现,在完整的安全规范下,中值模型在两种模式下的重组、HTTP 和防火墙实现上的攻击成功率最多为 4%,但在 DNS 上的 S 模式中为 13%,在 D 模式中为 15%。在 D 模式中,将缺少的 DNS 要求添加到规范中会将攻击从 100% 减少到 34%,并且仅更改该检查,而删除规定的规则也会削弱其他检查上的程序。事先询问模型并不能预测程序具有哪些检查,因为编写 DNS 解析器的 14 个模型中有 13 个命名了该检查,但所有 42 个程序都缺少该检查。 S-模式是一个有用的第一过滤器,标记 82\% 的真实 DNS 漏洞,并留下 96\% 的安全案例未标记。它在两个方向上都会犯错误,过度报告 D 模式未实现的安全检查,而低估 D 模式执行的安全检查。 S 模式可以筛选但不能取代 D 模式测试,即使模型可以背诵安全要求,也应该写下来。

当谈话不是代码时:比较模拟和开发软件的LLM智能体的原论文方法或结果图
图 3. 每个协议的所有 15 个模型在 S 模式 (P0–P3) 和 D 模式 (D0–D2) 下的攻击成功率 (%)。颜色越深越容易被利用,“-”标记没有生成程序的单元格(§7)。每个细胞汇集三个重复。