GPTScan:结合 GPT 与程序分析检测智能合约逻辑漏洞
密码学与安全
2024-05-07 v3 人工智能
软件工程
摘要
智能合约易受多种漏洞影响,长期以来导致巨额财务损失。当前分析工具主要针对具有固定控制流或数据流模式的漏洞,例如重入和整数溢出。然而,最近一项关于 Web3 安全缺陷的研究表明,由于缺乏领域特定的属性描述与检查,约 80% 的此类缺陷无法被现有工具审计。鉴于大语言模型(LLM)的最新进展,值得探索生成式预训练 Transformer(GPT)如何辅助检测逻辑漏洞。本文提出 GPTScan,首个将 GPT 与静态分析相结合的智能合约逻辑漏洞检测工具。我们并非仅依赖 GPT 识别漏洞(这会导致高误报率且受限于 GPT 的预训练知识),而是将 GPT 用作通用的代码理解工具。GPTScan 将每种逻辑漏洞类型拆解为场景与属性,据此将候选漏洞与 GPT 进行匹配。为提升准确性,GPTScan 进一步指示 GPT 智能识别关键变量与语句,随后通过静态确认进行验证。在包含约 400 个合约项目和 3K 个 Solidity 文件的多样化数据集上的评估表明,GPTScan 对代币合约达到高精度(超 90%),对 Web3Bugs 等大型项目达到可接受精度(57.14%)。它有效检测出真实逻辑漏洞,召回率超 70%,其中包括 9 个被人工审计遗漏的新漏洞。GPTScan 快速且经济,扫描每千行 Solidity 代码平均耗时 14.39 秒、花费 0.01 美元。此外,静态确认帮助 GPTScan 减少了三分之二的误报。
引用
@article{arxiv.2308.03314,
title = {GPTScan: Detecting Logic Vulnerabilities in Smart Contracts by Combining GPT with Program Analysis},
author = {Yuqiang Sun and Daoyuan Wu and Yue Xue and Han Liu and Haijun Wang and Zhengzi Xu and Xiaofei Xie and Yang Liu},
journal= {arXiv preprint arXiv:2308.03314},
year = {2024}
}
备注
Accepted by IEEE/ACM ICSE 2024