论文
使用 大语言模型 在智能合约中自动注入漏洞
Automated Vulnerability Injection in Smart Contracts Using Large Language Models
摘要
评估智能合约的漏洞检测工具需要具有已知 真值 的数据集,但此类数据集很少且难以手动构建。我们提出了一种使用 大语言模型 (LLM) 自动将漏洞注入 Solidity 智能合约的方法,并在针对 OpenSCV 的 49 个漏洞类型的案例研究中进行了演示。注入的合约通过多步骤管道进行验证,检查编译、执行、业务逻辑以及是否存在预期漏洞。 LLM 应用于 SmartBugs 的现实合约中,生成近 1,000 个候选变体;经过重复数据删除和验证后,涵盖 25 个漏洞类型的 32 个已确认的漏洞合约得以幸存(存活率为 16.58%)。幸存的合约集中于结构更简单的目标和具有本地化语法模式的漏洞类型。我们报告了实际挑战,包括 LLM 的非确定性和保留合约语义的困难。然后,我们使用经过验证的合同来评估三个静态分析器,揭示互补和不完整的覆盖范围。结果表明,基于 LLM 的漏洞注入是可行的,但暴露了可扩展性和多样性方面的关键限制。