前言
近期 ChatGPT 爆火,其对传统文字工作的效率提高及总结能力让使用者惊艳。紧随其后 CodeGPT 这样基于 GPT 的插件出现,也充分体现了其对代码编写效率的提高。而最新 GPT-4 的发布,是否可以应用到对区块链 、Solidity 智能合约的审计中呢?
基于这样的疑问,我们进行了多种可行性测试。
测试使用的对比模型对象:GPT-3.5(Web), GPT-3.5-turbo-0301, GPT-4(Web)。
代码片段使用 Prompt:Help me discover vulnerabilities in this Solidity smart contract.
漏洞代码片段的检测对比
在此部分,我们分三次测试,使用历史上常见的漏洞代码作为测试一和测试二的用例,来验证其对基础漏洞的检测能力,测试三中使用中等难度的漏洞代码作为测试用例。
测试一
用例:《智能合约安全审计入门篇 —— Phishing with tx.origin》
漏洞代码:
动态 | 区块链、股权转让概念持续火爆 相关上市公司备受市场青睐:据证券市场周刊报道,上半周,两市热点题材萎靡,区块链、股权转让、壳资源是仅存的几个亮点。消息面上,11月8日,《上市公司证券发行管理办法》、《创业板上市公司证券发行管理暂行办法》等再融资规则发布,股权转让概念受关注,区块链则是自10月底以来持续火爆的概念。上市公司中兼具两个概念的为数不多,如恒久科技(11.600,-0.19,-1.61%)(002808)近日收购信息安全企业闽保股份正式涉链就被市场所挖掘;九鼎新材(23.720,0.71,3.09%)(002201)则再度霸占股权转让概念上涨榜。[2019/11/13]
(1)对 GPT 进行提问:
(2)GPT-3.5(Web) answer
(3)GPT-3.5-turbo-0301 answer
AMD季报亮眼 GPU随区块链火爆而热销:美国半导体公司AMD季度财报非常亮眼,业界的焦点从芯片销售转移到了区块链技术提供商的身份上面。区块链的应用范围已经不仅限于虚拟货币,随时有望爆发。市面上发行流通的虚拟货币大多都需要“挖矿”,即虚拟货币矿工利用运行速度极快的GPU解决区块链中复杂的数学难题,然后获得新的数字货币作为奖励。作为供应商,GPU价格上涨势必将让AMD和英伟达获得巨大的收益。分析师预计,随着全球越来越多的公司计划进军比特币市场或者区块链,GPU销售将有望进一步增长。[2018/2/2]
(4)GPT-4(Web) answer
可以看到结果:3 个测试版本都发现了关键的 tx.origin 相关问题。
比特币火爆:Coinbase去年营收超10亿美元:随着加密货币的价格暴涨,美国比特币交易平台Coinbase也实现了快速发展,并因此遭遇了硅谷创业公司难得一遇的烦恼:有太多投资者想要入股该公司。知情人士透露,这家成立6年的公司去年的营收突破10亿美元大关,主要是因为人们对比特币和其他虚拟货币的兴趣激增所致。该公司去年8月估值为16亿美元,现在至少翻了一番。知情人士表示,Coinbase截至去年9月30日仅能实现约6亿美元的年营收,但感恩节和圣诞节期间的比特币交易将其全年营收提升到10亿美元以上。[2018/1/23]
测试二
用例:《智能合约安全审计入门篇 —— 溢出漏洞》
(1)对 GPT 进行提问:
区块链概念行情火爆,多家公司回应参与情况:其中,汉王科技表示,目前暂时没有该业务领域的布局。华谊嘉信表示,暂未涉足区块链应用领域。浪潮信息、电连技术均表示未涉及区块链板块。第一创业则表示,是深圳市金融区块链联盟的发起会员,一直在参与区块链在证券行业应用的相关课题研究,并在积极寻找合适的应用场景应用。万达信息智慧城市业务涉及区块链技术。[2018/1/10]
可以看到 GPT-3.5(Web)、GPT-3.5-turbo-0301 都发现了关键的 Overflow 漏洞,出乎意料的是 GPT-4(Web) 居然没有相关提示。
测试三
用例:《空手套白狼 —— Popsicle 被黑分析》
比特币期货上市后反应火爆 还有很多投资者难以进入市场:全球最受欢迎的加密货币的期货在CBOE首次交易中上涨了26%,引发了两次暂停交易,旨在平息市场。DV Chain首席执行官Garrett See表示,一些想要交易比特币期货的人很难进入这个市场,因为并不是所有的经理人都在最初支持它。[2017/12/12]
对比结果,我们可以看到 3 个版本都未发现关键的漏洞点。
代码片段的检测总结
可以看到 GPT 模型对简单的漏洞代码块的检测能力还是不错的,但是对稍微复杂一点的漏洞代码暂时还无法检测,并且在测试中可以看到 GPT-4(Web) 的整体上下文可读性很高,输出格式清晰、舒服,但是其对代码的审计能力暂时没有远超 GPT-3.5(Web)、GPT-3.5-turbo-0301,甚至在部分测试中由于 Transformer 输出存在一定的不确定性反而导致 GPT-4(Web) 遗漏了一些关键问题。
为了更加契合普通项目方在合约审计中的简单操作需求,这里我们提高些难度,针对代码量大的合约进行全量导入上下文,让 GPT-4 模型进行审计(GPT-3 对上下文的字符总数限制更小这里就不做测试)。
用例:《千万美元被盗 —— DeFi 平台 MonoX Finance 被黑分析》
整份合约分批输入,在对话最后提出检测漏洞请求
这里使用 Prompt:
Here is a solidity smart contract
Contract code
The above is the complete code,help me discover vulnerabilities in this smart contract.
可以看到,GPT-4 虽然在 OpenAI 公布的信息中其单次输入字符总数已经是当前最高,但还是会由于文本超长导致在最后提问时 GPT 会上下文缺失而只识别到部分内容,所以这样对大型合约而言就无法进行完整的上下文审计。
拆封整份合约,分批输入分批检测
对话 1:
Help me discover vulnerabilities in this solidity smart contract.
分段内容 1
对话 2:
分段内容 2
对话 3:
分段内容 3
(1)优点
GPT 对合约代码中基础的简单的漏洞具备部分检测能力,并且在检测出漏洞后会以很高的可读性来解释漏洞问题,这样的特性比较适合为初级合约审计工作者前期训练提供快速指导和简单答疑。
(2)存在的问题
a. 每次生成内容波动
GPT 对每次对话的输出存在一定的波动,可以通过 API 接口参数进行调整,但是依旧不是恒定的输出,虽然这样的波动性对语言对话来说是好的方式,大大提高了对话给人的真实感。但是这对代码分析类的工作来说是一个不好的问题。因为为了覆盖 AI 可能告知我的多种漏洞回答,我需要多次请求同一问题并进行对比筛选,这无形中又提高了工作量,违背了 AI 辅助人类提高效率的基准目标。
例如这里再次运行 "漏洞代码片段的检测对比测试二(其中简单改变函数名后再次生成):
可以看到其输出结果比之前测试又多了一些额外内容。
b. 漏洞分析能力依旧有很大的提高空间
对稍微复杂的漏洞进行检测即会发现当前的(2024.3.16)训练模型不能正确的分析并找到相关关键漏洞点。
GPT 辅助合约审计的可行性和潜力分析
虽然当前来看 GPT 对合约漏洞的分析及挖掘能力还处于相对较弱的状态,但它对普通漏洞小代码块的分析并生成报告文本的能力依旧让使用者兴奋,在可预见的未来几年伴随这 GPT 及其他 AI 模型的训练开发,相信对大型复杂合约的更快速,更智能,更全面的辅助审计一定会实现。当科技发展可指数级提高人工的效率时就会发生质变,我们非常期待 AI 对区块链安全的助力,我们会持续关注新 AI 产品对区块链安全的影响。最后可见的将来我们必将与 AI 在一定程度上进行融合,愿 AI 和区块链与你同在。
慢雾科技
个人专栏
阅读更多
金色财经 善欧巴
金色早8点
白话区块链
Odaily星球日报
MarsBit
欧科云链
深潮TechFlow
Arcane Labs
BTCStudy
据慢雾安全团队情报,2023 年 3 月 13 日,Ethereum 链上的借贷项目 Euler Finance 遭到攻击,攻击者获利约 2 亿美元.
1900/1/1 0:00:00作者:川越牛熊 本次硅谷银行和瑞士信贷的根源是加息缩表引起的,但媒体少有报道瑞士信贷巨额亏损的原因,本文我们尝试从债券现货和衍生品交易角度扒一扒硅谷银行和瑞士信贷暴雷的异同和关联.
1900/1/1 0:00:00原文标题:《AN INTRODUCTION TO ZERO-KNOWLEDGE MACHINE LEARNING (ZKML)》原文来源:Worldcoin原文编译:深潮 TechFlowZero-Knowledge 机器学习(ZKM.
1900/1/1 0:00:003月16日,“文心一言”没有在问答环节 “翻车”,因为,百度创始人李彦宏在开发会现场展示的这个自然语言大模型产品,测试的过程和结果是提前录制好的.
1900/1/1 0:00:00Radiant Capital 最近的表现相当亮眼,在 Aribitrum 空投后,$RDNT 的价格猛涨了一波,TVL 更是直线上升,从年初的 2,000 多万上涨到 1 亿多.
1900/1/1 0:00:00作者:Flip Research 编译:Biteye 核心贡献者 Crush$ARB 空投可能是今年最热门的空投之一.
1900/1/1 0:00:00