「新晋网红」ChatGPT,可以检测智能合约漏洞吗?
原文作者: Beosin一夕之间,ChatGPT 突然火了,并在互联网上掀起了一场“AI 风暴”
所谓 ChatGPT,是在今年 11 月 30 日,由人工智能实验室 OpenAI 上线的新模型。
目前用户与 ChatGPT 之间的对话互动包括了普通聊天、信息咨询、撰写诗词作文、修改代码等,甚至令用户产生 ChatGPT 能否取代谷歌等搜索引擎的疑虑。
今天,我们就来研究一下爆火的 ChatGPT 究竟是什么?以及能不能检测智能合约漏洞?
在互联网上掀起了一场“AI 风暴”的 ChatGPT 究竟是什么?
据官网介绍,计算模型 GPT-3.5 支持的通用聊天机器人 ChatGPT,能回答连续性的问题、承认自己的错误、质疑不正确的假设,甚至拒绝不合理的需求。
从写剧本、写诗、设计游戏,到给程序找 bug,乃至制定一份“毁灭人类”的计划,这个 AI 能做的事情超乎想象。
美国企业家马斯克询问了 ChatGPT 如何设计 Twitter,AI 回答称:“为了使用户更容易查看线程互联网对话并与之交互,你可以将线性一维界面转换为二维无限网格。”
12 月 5 日,OpenAI 创始人兼 CEO 阿尔特曼(Sam Altman)发布推文表示,ChatGPT 用户数已突破了 100 万。
许多人已经测试了聊天功能,并一直在社交媒体上分享他们的交流。ChatGPT 似乎也给科技亿万富翁埃隆·马斯克留下了深刻印象,他在推特上写道:“ChatGPT 好得吓人。我们离危险的强大人工智能不远了。”
技术公司 Replit 的创始人 Amjad Masad 还给 ChatGPT 发了一段 JavaScript 代码,让它找到里面的 bug,并表示:“ChatGPT 可能是一个很好的调试伙伴,它不仅分析了错误,还修复了错误并进行了解释。”
一位用户甚至要求 ChatGPT 从 AI 的角度写一封信,目标是控制世界。
结果简直令人震惊。它引起了久负盛名的人工智能的人们的回应,接管了科幻小说的世界概念,向现实迈出了一步。
拥有如此强大而惊艳的语言能力,一时间,ChatGPT 悄然走到了话题中心,成为了引发热议的新晋网红。
目前 ChatGPT 仍处于免费测试阶段,不限量向公众开放,基于其破百万的用户数,平台所花费的成本不算小。不过,在使用过程中,用户提供的反馈对 OpenAI 也是最有价值的信息,可以不断训练语言模型,修正错误答案。
“新晋网红”ChatGPT,可以写智能合约或者检测合约漏洞吗?
我们注册并体验了一下 ChatGPT 对话,我们首先让 AI 自我介绍。
他回复道,“我是 Assistant,一个由 OpenAI 训练的大型语言模型。我的工作是帮助人们回答各种问题,尽可能提供准确和详细的信息。我可以回答各种问题,无论是关于历史、科学、人文还是其他话题。”
作为一家区块链安全公司,我们有了另一种想法,那就是让他来写一份智能合约。
写一份简单的合约,对 ChatGPT 而言好像没有太大的难度。因为代码太长,我们截取部分截图展示,可以看到,他还是懂一些基础知识的。
接下来,我们丢给 ChatGPT 一个相对简单的但是有漏洞的智能合约,让他检测一下,我们截取部分截图展示。
好家伙,不简单,ChatGPT 竟然还是能检测一些简单的问题。
看这情况,是有“两把刷子”,来,继续上难度!
本以为他会继续给我们惊喜,他却来一句:“我看不懂这份这份代码”。
然后我们加了一些注释,让他重新检测。
他说了一些什么,又像什么都没说。
然后建议我们使用专业的安全审核工具或者请求专业人员进行审核。
好吧,那我们先派出我们的智能合约形式化验证工具 Beosin VaaS,将刚刚测试的那几份合约检测了一下,可以看到,VaaS 能很快检测出合约的漏洞。
Beosin VaaS 产品截图
要知道,VaaS 作为 Beosin 的王牌产品之一,可自动发现智能合约中存在的已知、未知漏洞及业务逻辑问题,并给出专业的修复建议,帮助开发者提高智能合约的安全能力。大家感兴趣可以检测对比一下,VaaS 试用链接:https://vaas.beosin.com/
除此之外,经过我们的多轮对比,我们发现 ChatGPT 并不能解决所有的问题,比如很多漏洞还是需要审计专家严苛审计,才能发现问题。
比如下面这份合约的问题,设置手续费没有限制,可能导致用户高额手续费,ChatGPT 并没有意识到这些。
还有下面这个,在_transfer 函数中,如果_trAmount= 2 被触发, 10 秒内所有的传输地址都是 dev 地址。ChatGPT 依然不能识别。
毕竟做安全,必须要有严苛安全审计流程,才能筑牢安全防线。
Beosin 的审计流程的规范性上,包含 5 个环节以上的审计步骤,自动化代码安全扫描与安全专家和形式化验证专家的人工审计结合。每一步均由多名安全专家和形式化验证专家交叉操作,尽量避免因为人为因素导致的遗漏。
完成一轮审计后,Beosin 会出具所发现问题的 Feedback,里面包含漏洞描述,复现方式,修复建议等,然后提交给项目方并协助项目方完成漏洞修复。我们有着海量的安全漏洞库的积累,结合安全专家的丰富的代码安全审计经验,能够直接告诉项目方应该怎么修改代码。这个可比 ChatGPT 强多了哦!
最后,形式化验证专家又将安全审计专家凝练出的安全问题利用严格的数理逻辑抽象成可重用的安全属性不变量,并交给混合机器引擎进行自动化检测、测试、验证,实践证明这些可重用的安全属性不变量可有效发现智能合约中新的微妙漏洞。
看来我们还暂时不会被 ChatGPT 的机器人代替。
当然,当我们在关注 chatGPT 的时候,更需要思考和探索的是,他火爆背后所透露出现的信息,它所呈现出来的人工智能或许已进入到了一个全新的发展阶段,科技正在慢慢改变世界。