NER:安比实验室创始人郭宇:智能合约安全的严重性远超大家想象 | 区块链P.O.D大会

9月5日,由Odaily星球日报主办、36Kr集团战略协办的P.O.D大会在北京举行。在大会的安全论坛上,安比实验室创始人郭宇与众嘉宾共同探讨区块链的安全问题。郭宇就近期的安全热点话题Lastwinner展开报告,详细解释其中内幕。在谈及Lastwinner攻击母合约,为何需要传入Lastwinner合约地址时,郭宇表示Lastwinner攻击母合约实际上是一个通用武器,能攻击很多类Fomo3D游戏,这个合约构造的非常巧妙。在带领大家切身感受黑客如何一步步巧妙利用Fomo3D游戏中的漏洞实施攻击后,郭宇也表示,智能合约安全的严重性远超大家想象,我们在享受去中心化世界带来好处时也会面临新的安全风险和代价。以下为安比实验室创始人郭宇演讲实录:

我是安比实验室的郭宇,今天分享一下一些比较有意思的事情。

8月10日,一个合作伙伴突然跟我说以太坊似乎有一些很奇怪的事情,问我们能否分析一下。我们接过来后也觉得事情奇怪。这其中有连续且大量的失败交易,标红色的点中发现带的全都是0.1ETH,这些大量重复的东西好像在攻击什么。而且这些所有交易来源方均来自于一个前四个字母是0x5483的诡异智能合约。该智能合约的交易量还很大,一分钟有几十个,这很容易造成以太坊严重拥堵,这是我们发现一个初步特征。觉得奇怪,又感到很可疑,我们也想知道它到底要干什么。

《2021全球10大金融科技趋势》发布,其中包括跨链:《2021全球10大金融科技趋势》发布,这10大趋势包括:全栈可信、主动安全防御、跨链、基于隐私保护的共享智能、时序图计算、持续智能、自动因子发现的机器学习、知识图谱与多模态学习、深度个性化和开放透明。值得注意的是,其中6个趋势与构建信任及隐私保护相关。(中证网)[2020/9/24]

之后我们发现除了大量的失败交易外,还存在更大量的成功交易。成功交易没什么显著特征,投进去0.1个,出来有0.19个,这就特别奇怪。同时,失败交易的一个特别特征是Gas消耗特别低,感觉是一个非常高效的挖矿机,回报率相当高。

之后我们就发现,0X5483实际上是一个攻击Lastwinner的攻击合约,精心构造且非常强大,攻击步骤也特别复杂。合约中存在大量转账,比如PPT中的这个合约,扔进去的0.1ETH,最后出来是0.18ETH或者0.12ETH等。

Lastwinner是什么?它是Fomo3D山寨版,主要面向国内。在百度能看到大量广告信息,还有很多微信群、QQ群。此外,Lastwinner还有安卓以及iOS客户端可以下载。当时高峰时期有16000,参与的人非常疯狂。

Cocos-BCX 已公布全球11家小语种社区:据官方消息,截止7月10日,下一代游戏数字经济平台 Cocos-BCX 持续并公布11家海外小语种社区,包括法语社区、西班牙语社区、俄语社区、土耳其语社区、印度语社区、印尼语社区、孟加拉语社区、越南语社区、斯里兰卡语社区、菲律宾语社区和阿拉伯语社区。其中大部分均为 COCOS 主网生态合伙人创建并维护,同时非洲和美洲等小语种社区仍在审核中。

Cocos-BCX 作为一个全球性项目,开放生态合伙人激励计划的初衷就是希望 Cocos-BCX 社区由更多优秀的社区成员自主自治共同建设,共同打造下一代游戏数字经济平台。[2020/7/10]

Fomo3D是什么?这是前一段时间一个现象级的智能合约游戏,瞬间对以太坊用户造成拥堵。游戏中有一个巨大的奖励诱惑,规则是这样的。首先是需要兑换key,在拿到key之后扔给类Fomo3D游戏合约。这其中包括三种获利方式,第一种方式存在主奖池,可以有机会拿到最终大奖,即这个游戏不停倒计时,最后一个买key的人拿到最后的巨额奖励;第二种方式有一个副奖池,方式为随机概率抽奖,即兑换key时就有机会抽奖;第三种方式为小额度奖励,买key时间越早,就可以越早享受后来人进来的分红。基于这三种诱人的获奖模式,Fomo3D推出之后就一度造成以太坊拥堵。7月24日,安比实验室就已发现刚才第二项空投存在漏洞,有人可以通过不公平方式拿到抽奖结果,我们在8月10日才收到警告。之前被曝光的空投抽奖的模式,是有人公开了一个可以攻击的方案,但攻击方式非常低效,甚至不一定成功。大家知道但没有人去试,好像赚不到什么钱。但是这个攻击合约不一样,经过统计该合约成功率将近60%。第二天,我们开始对该合约进行分析后发现有三个疑点。一是有五个地址来调用攻击合约;二是Lastwinner合约地址作为参数传入攻击合约;三是每笔成功中奖的攻击交易中都带有合约的创建与自毁。当时也不知道为什么,但是可以肯定这是一个团伙,对其数据分析后发现,这个团伙做了很多别的事情,他们共同去攻击不同的游戏合约。我们把该攻击者组织命名为“BAPT-LW20”。12日,团队开始尝试逆向分析该合约代码。由于手上工具有限,只能看自解码,抠了一天还是没什么进展,分析过程陷入僵局。第二天,小伙伴建议把这个攻击合约拷贝下来,将攻击合约中的攻击者地址替换成我们的地址,是不是可以像他一样去拿到奖励?我们重新部署攻击合约,并发起试探性攻击。但经过多次尝试后,均无法赢得抽奖。我们做了非常完备的替换,并且跟踪这个过程,就不知道为什么,就是成功不了,也是挺郁闷。晚上12点,最后方案决定对合约进行死磕,开始对合约进行逆向分析。合约逆向很累,我们怎么办?我们思路就是开发逆向分析辅助工具。手头上并没有什么东西,我们要做几件事情。首先,针对EVM逆向分析工具很少,我们决定自己开发;再者合约多层嵌套很难跟踪;同时EVM字节码中的循环过程不易定位。我们花了三天时间开发工具,事情开始出现转机。第一个工具为awesome-tx-tracer,借助这个能够把智能合约整个过程产生若干个tracer,并把很多交易行为全部tracer分析,进而产生大量数据;第二个我们做了用来做逆向的工具——minievm,借助该工具能够批量定性分析很多tracer;第三个工具为ida-evm,这是基于evm的插件修改而来。产生的tracer可以自动往前往后,来回执行,这样就能够比较容易的把整个过程反复看。最终,我们终于发现真相,攻击合约是一个母合约,母合约驱动1000个子合约,这样能大大提高随机数的中奖率。同时,每个子合约攻击的时候会创建一个幽灵合约来发起攻击。什么是幽灵合约?就是在攻击的时候创建,等攻击完立即自毁,在区块链存储区域不留下任何痕迹。黑客通过某一个母合约驱动1000个子合约,又创建无数的自毁合约,自毁合约最终去攻击Lastwinner,这是一个非常巧妙的玩意。在17日早上开始复盘,我们敲定的最终结果是6天内抽走抽奖池50%,发起近5万笔攻击调用,创建2万多个幽灵合约。Lastwinner很有意思是把空投奖池比例由Fomo3D的1%提高到10%。因此,黑客在攻击Lastwinner成功以后,但是对Fomo3D并不那么了解。这个母合约在Lastwinner上线第一天几个小时之内就发动了攻击,在前几天每小时几十万的收入。巧合的是,上午10点Lastwinner大奖开出,即刚才说的三种获利模式中的第一个大奖。大奖被这五个攻击者其中一个人拿走,攻击者地址为0X5167,奖励额度也超高,比他们空投抽到的还要大。事情还没有结束。五天以后,下午3点02分,我们又有了一个惊人发现,Fomo3D第一轮结束,大奖被拿走。是被一个人拿走的吗?不是,他们用了同样手法拿走大奖。为什么?当时我们看到Fomo3D大奖的时候,就发现熟悉的一幕。在大奖开出时,出现一组连续的异常区块,且这组连续的异常区块中的消息数量骤减。最后,同一个知名miner打包获奖交易。Lastwinner结束前后,也出现过类似的异常区块,获奖消息也是由同一个miner打包,这时候我们就发现这太巧了。我们开始怀疑,矿池是不是真的对Fomo3D作弊?第一时间跟矿池负责人联系后,并把我们知道的所有信息拿出来跟对方对比发现,矿池并没有参与这次作弊,而是这个异常区块隐藏着一个巨大的秘密。这个秘密就是异常区块中的消息均调用同一个合约,这里面存放一些非常诡异的交易,所有交易的Gas相当于正常的Gas的100倍;而这个合约的创建者与中奖者是同一个人。矿工并没有作弊,而是攻击者利用矿工打包策略,即矿工会优先选择手续费很高的交易打包,这对矿工最有利。通过制造超高手续费来造成区块链的拥堵,阻隔其他玩家。攻击者也非常聪明,攻击合约能够智能判断是否启动网络阻塞功能,使其效益最大化,成本最小化。总之,这个合约构造的非常巧妙。若攻击者没有拿走大奖,它依然会存在于很多矿池的应用池,等待时机成熟,这些交易就会顺势变成交易费用非常高的交易。所以说,这个游戏漏洞使得前面主奖池和副奖池可以很轻松被攻击。还有一个问题,大家还记得Lastwinner攻击母合约,为什么需要Lastwinner作为合约地址?事实上,这个攻击母合约是一个通用母合约,能够攻击很多类Fomo3D游戏。在Fomo3D上线第二天就有人发现空投抽奖漏洞,并攻击成功。你面对的是全世界非常顶尖的黑客,你随时有可能受到损失。因此,智能合约安全严重性远超大家的想象,大家想象的未来去中心化世界真的那么美好吗?在享受去中心化世界带来好处的时候也同样会付出一些代价和面临一些新的安全风险。谢谢大家。

全球10大接受比特币支付的公司:全球10大接受比特币支付的公司如下:1. Overstock.com 2. EGifter 3. Newegg 4. Microsoft 5. Expedia 6. PayPal 7. Shopify 8. Virgin Galactic 9. Dish 10. Wikipedia[2018/4/18]

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

链链资讯

瑞波币加密货币:加密货币不是股权,是货币

Naval最近在推特上引发了一场关于加密货币市场当中开发者激励和持有者价值关系的讨论,他提出了两个问题:持有者价值是什么?应该如何激励开发者?虽然这个问题已经在网上引起了充分的讨论.

[0:0ms0-6:622ms