使用大型语言模型对智能合约进行自动化漏洞注入
Automated Vulnerability Injection in Smart Contracts Using Large Language Models
精选理由
展示大模型自动构造智能合约漏洞数据集与评测工具的可行性
AI 摘要
评估智能合约漏洞检测工具需要带有已知真实标签的数据集,但这类数据集稀缺且难以手工构建。我们提出一种利用 Large Language Models (LLMs) 自动向 Solidity 智能合约中注入漏洞的方法,并通过一个针对 OpenSCV 中 49 种漏洞类型的案例研究进行展示。注入后的合约通过一个多步骤流水线进行验证,该流水线检查编译、执行、业务逻辑以及目标漏洞是否存在。将该方法应用于 SmartBugs 中的真实世界合约后,LLMs 生成了近 1,000 个候选变体;经过去重和验证后,最终保留了 32 个确认存在漏洞的合约,涵盖 25 种漏洞类型(存活率为 16.58%)。存活下来的合约主要集中在结构更简单的目标以及具有局部化语法模式的漏洞类型上。我们报告了若干实际挑战,包括 LLMs 的非确定性以及保持合约语义的困难。随后,我们利用这些已验证合约评估了三个静态分析器,揭示了它们互补且不完整的覆盖特征。结果表明,基于 LLM 的漏洞注入是可行的,同时也暴露出其在可扩展性和多样性方面的关键限制。