推荐平台 链接 平台介绍
币安网 注册链接 币安是全球领先的区块链生态系统,推出了一系列产品,其中包括最大的加密货币交易平台。我们的使命是在未来成为全球性加密货币基础架构供应商。
欧易OKX 注册链接 欧易是全球著名的数字资产交易平台之一,主要面向全球用户提供比特币、莱特币、以太币等数字资产的币币和衍生品交易服务。
HTX火币 注册链接 火币全球专业站,是火币集团旗下服务于全球专业交易用户的创新数字资产国际站,致力于发现优质的创新数字资产投资机会。

前言

近期 ChatGPT 爆火,其对传统文字工作的效率提高及总结能力让使用者惊艳。紧随其后 CodeGPT 这样基于 GPT 的插件出现,也充分体现了其对代码编写效率的提高。而最新 GPT-4 的发布,是否可以应用到对区块链 、Solidity 智能合约的审计中呢?

基于这样的疑问,我们进行了多种可行性测试。

测试环境及测试方法

测试使用的对比模型对象:GPT-3.5(Web), GPT-3.5-turbo-0301, GPT-4(Web)。

火爆出圈的最强 AI GPT 是否可用于合约安全审计?

代码片段使用 Prompt:Help me discover vulnerabilities in this Solidity smart contract.

漏洞代码片段的检测对比

在此部分,我们分三次测试,使用历史上常见的漏洞代码作为测试一和测试二的用例,来验证其对基础漏洞的检测能力,测试三中使用中等难度的漏洞代码作为测试用例。

  • 测试一

用例:《智能合约安全审计入门篇 —— Phishing with tx.origin》

漏洞代码:

火爆出圈的最强 AI GPT 是否可用于合约安全审计?

(1)对 GPT 进行提问:

火爆出圈的最强 AI GPT 是否可用于合约安全审计?

(2)GPT-3.5(Web) answer

火爆出圈的最强 AI GPT 是否可用于合约安全审计?

(3)GPT-3.5-turbo-0301 answer

火爆出圈的最强 AI GPT 是否可用于合约安全审计?

(4)GPT-4(Web) answer

火爆出圈的最强 AI GPT 是否可用于合约安全审计?

火爆出圈的最强 AI GPT 是否可用于合约安全审计?

火爆出圈的最强 AI GPT 是否可用于合约安全审计?

可以看到结果:3 个测试版本都发现了关键的 tx.origin 相关问题。

  • 测试二

用例:《智能合约安全审计入门篇 —— 溢出漏洞》

漏洞代码:

火爆出圈的最强 AI GPT 是否可用于合约安全审计?

(1)对 GPT 进行提问:

火爆出圈的最强 AI GPT 是否可用于合约安全审计?

(2)GPT-3.5(Web) answer

火爆出圈的最强 AI GPT 是否可用于合约安全审计?

(3)GPT-3.5-turbo-0301 answer

火爆出圈的最强 AI GPT 是否可用于合约安全审计?

(4)GPT-4(Web) answer

火爆出圈的最强 AI GPT 是否可用于合约安全审计?

火爆出圈的最强 AI GPT 是否可用于合约安全审计?

可以看到 GPT-3.5(Web)、GPT-3.5-turbo-0301 都发现了关键的 Overflow 漏洞,出乎意料的是 GPT-4(Web) 居然没有相关提示。

  • 测试三

用例:《空手套白狼 —— Popsicle 被黑分析》

漏洞代码:

火爆出圈的最强 AI GPT 是否可用于合约安全审计?

(1)对 GPT 进行提问:

火爆出圈的最强 AI GPT 是否可用于合约安全审计?

(2)GPT-3.5(Web) answer

火爆出圈的最强 AI GPT 是否可用于合约安全审计?

(3)GPT-3.5-turbo-0301 answer

火爆出圈的最强 AI GPT 是否可用于合约安全审计?

(4)GPT-4(Web) answer

火爆出圈的最强 AI GPT 是否可用于合约安全审计?

对比结果,我们可以看到 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.

火爆出圈的最强 AI GPT 是否可用于合约安全审计?

可以看到,GPT-4 虽然在 OpenAI 公布的信息中其单次输入字符总数已经是当前最高,但还是会由于文本超长导致在最后提问时 GPT 会上下文缺失而只识别到部分内容,所以这样对大型合约而言就无法进行完整的上下文审计。

  • 拆封整份合约,分批输入分批检测

这里使用 Prompt:

对话 1:

Help me discover vulnerabilities in this solidity smart contract.

分段内容 1

对话 2:

Help me discover vulnerabilities in this solidity smart contract.

分段内容 2

对话 3:

Help me discover vulnerabilities in this solidity smart contract.

分段内容 3

火爆出圈的最强 AI GPT 是否可用于合约安全审计?

火爆出圈的最强 AI GPT 是否可用于合约安全审计?

火爆出圈的最强 AI GPT 是否可用于合约安全审计?

总结

  • GPT 当前是否适合合约分析

(1)优点

GPT 对合约代码中基础的简单的漏洞具备部分检测能力,并且在检测出漏洞后会以很高的可读性来解释漏洞问题,这样的特性比较适合为初级合约审计工作者前期训练提供快速指导和简单答疑。

(2)存在的问题

a. 每次生成内容波动

GPT 对每次对话的输出存在一定的波动,可以通过 API 接口参数进行调整,但是依旧不是恒定的输出,虽然这样的波动性对语言对话来说是好的方式,大大提高了对话给人的真实感。但是这对代码分析类的工作来说是一个不好的问题。因为为了覆盖 AI 可能告知我的多种漏洞回答,我需要多次请求同一问题并进行对比筛选,这无形中又提高了工作量,违背了 AI 辅助人类提高效率的基准目标。

例如这里再次运行 “漏洞代码片段的检测对比测试二(其中简单改变函数名后再次生成):

火爆出圈的最强 AI GPT 是否可用于合约安全审计?

火爆出圈的最强 AI GPT 是否可用于合约安全审计?

可以看到其输出结果比之前测试又多了一些额外内容。

b. 漏洞分析能力依旧有很大的提高空间

对稍微复杂的漏洞进行检测即会发现当前的(2024.3.16)训练模型不能正确的分析并找到相关关键漏洞点。

  • GPT 辅助合约审计的可行性和潜力分析

虽然当前来看 GPT 对合约漏洞的分析及挖掘能力还处于相对较弱的状态,但它对普通漏洞小代码块的分析并生成报告文本的能力依旧让使用者兴奋,在可预见的未来几年伴随这 GPT 及其他 AI 模型的训练开发,相信对大型复杂合约的更快速,更智能,更全面的辅助审计一定会实现。当科技发展可指数级提高人工的效率时就会发生质变,我们非常期待 AI 对区块链安全的助力,我们会持续关注新 AI 产品对区块链安全的影响。最后可见的将来我们必将与 AI 在一定程度上进行融合,愿 AI 和区块链与你同在。

推荐平台 链接 平台介绍
Gate芝麻开门 平台介绍 Gate.io芝麻开门创立于2013年,是全球真实交易量TOP10的加密货币交易平台,向全球数千万用户提供安全可靠、真实透明的数字资产交易服务。
Bitget 注册链接 Bitget的背后是一群区块链技术的早期接受者,也是区块链未来发展的信仰者,一直致力于提供安全、一站式的交易解决方案,帮助用户更聪明地交易。
Bybit 注册链接 Bybit通过数字资产与传统金融的结合,引领数字资产的生态发展。提供一流的流动性,致力于打造业内最安全、公平、高效及人性化的交易服务平台。
派网 注册链接 派网提供多样化的量化交易机器人,用户可依照自身交易需求和策略选择最适合的机器人。 同时派网也提供合约交易与合约网格机器人,给予更方便的合约交易体验。