最近ChatGPT爆红,其对于传统式文本工作的效率提升及汇总能力让使用人震撼。略逊一筹CodeGPT那样根据GPT的软件产生,也充分展现了其对于代码编写质量的提升。而全新GPT-4的出台,能否运用到对区块链、Solidity智能化合约的审核中呢?
根据这样一个问题,大家展开了多种多样可行性分析检测。
检测应用对比模型对象:GPT-3.5(Web),GPT-3.5-turbo-0301,GPT-4(Web)。
代码片段应用Prompt:HelpmediscovervulnerabilitiesinthisSoliditysmartcontract.
漏洞代码片段的检测比照
在这里一部分,大家分三次检测,应用在历史上比较常见的漏洞编码来检验其对于基本漏洞的检测能力,检测三中应用中等水平挑战性的漏洞编码做为功能测试。
- 测试一
测试用例:《智能化合约安全审计初级教程——Phishingwithtx.origin》
漏洞编码:
(1)对GPT开展提出问题:
(2)GPT-3.5(Web)answer
(3)GPT-3.5-turbo-0301answer
(4)GPT-4(Web)answer
能够看见结论:3个测试版本都看到了关键性的tx.origin有关问题。
- 检测二
测试用例:《智能化合约安全审计初级教程——外溢漏洞》
漏洞编码:
(1)对GPT开展提出问题:
(2)GPT-3.5(Web)answer
(3)GPT-3.5-turbo-0301answer
(4)GPT-4(Web)answer
能够看见GPT-3.5(Web)、GPT-3.5-turbo-0301都看到了关键性的Overflow漏洞,出乎意料的是GPT-4(Web)竟然没有有关提醒。
- 检测三
测试用例:《空手套白狼——Popsicle被黑分析》
漏洞编码:
(1)对GPT开展提出问题:
(2)GPT-3.5(Web)answer
(3)GPT-3.5-turbo-0301answer
(4)GPT-4(Web)answer
比照结论,大家可以看到3个新版本都没有发现关键性的漏洞点。
代码片段的检测汇总
能够看见GPT实体模型对简单漏洞编码块检验能力还是很不错的,但是对于略微繁杂一点的漏洞编码暂时还没法检验,而且在测试中可以看出GPT-4(Web)的总体前后文易读性非常高,输出格式清楚、舒适,可是其对于代码的财务审计能力目前没有远高于GPT-3.5(Web)、GPT-3.5-turbo-0301,甚至是在一部分检测中因为Transformer导出存在一定的可变性反倒造成GPT-4(Web)忽略了一些重要环节。
因为更为切合一般新项目放在合约财务审计里的简单操作要求,接下来我们提升些难度系数,对于编码量大合约开展全量导进前后文,让GPT-4模型进行财务审计(GPT-3对语义的标识符数量限定比较小这里不做检测)。
测试用例:《千万美元被盗——DeFi平台MonoXFinance被黑分析》
- 整份合约分次键入,在会话最终明确提出检验漏洞要求
这儿应用Prompt:
Hereisasoliditysmartcontract
Contractcode
Theaboveisthecompletecode,helpmediscovervulnerabilitiesinthissmartcontract.
能够看见,GPT-4尽管在OpenAI发布的内容中其一次输入字符数量已是现阶段最大,但是还是会因为文字较长造成最后发言时GPT会前后文缺少而只鉴别到一些内容,而且这样对大中型合约来讲就不能进行完整的前后文财务审计。
- 拆开整份合约,分次键入分次检验
这儿应用Prompt:
会话1:
Helpmediscovervulnerabilitiesinthissoliditysmartcontract.
按段具体内容1
会话2:
Helpmediscovervulnerabilitiesinthissoliditysmartcontract.
按段具体内容2
会话3:
Helpmediscovervulnerabilitiesinthissoliditysmartcontract.
按段具体内容3
-
(1)优势
GPT对合约编码中基本的简单漏洞具有一部分检验能力,而且在检测到漏洞之后以非常高的易读性来描述漏洞