狼人杀遭到溢出攻击,已经凉凉

服务于:区块链、加密货币市场

热点资讯、行情分析,项目解析

如有问题或建议,请公众号留言

请注意:本文观点不构成投资建议

eosfo.io,利用了普通用户,对EOS权限机制的认知缺陷。在代码中,对用户账号更新了权限

在Fomo3D的爆发和赚钱效应吸引下,其山寨产品迅速被开发出来。eosfo.io 就是其中部署在EOS网络上的山寨产品。

但是eosfo.io,却利用了普通用户,对EOS权限机制的认知缺陷,在代码中,对用户账号更新了权限。

这不仅仅是授权。 而是更改权限。 用的是“updateAuth”操作 ,前阵子盗号的事情记得么? 有“updateAuth”的时候,代表的你的账号里的币,已经能被别人随便转走了。

有图有真相

本人探索了EOS智能合约开发很久了。对EOS智能合约开发很有经验。知道哪些坑是不能踩的。

为什么买RAM,系统能不经授权扣你账户中的EOS,因为系统账号有特权。

而普通账号,没有特权直接转账你的EOS。所以,需要把权限交给它。

而eosfo.io这个EOS山寨版Fomo,显然对EOS智能合约非常没有经验,偏偏踩了这个最大的坑: “直接把用户权限改了” 犯了“用户资产不可侵犯”之大忌。

完全有更好的解决方案

除了“更新权限”, 完全存在一种更好的解决方案,不需要用户交出权限的解决方案。这个项目,连探索这样解决方案的工作都不愿做,也没有测试盘,就上线了。敢无脑冲进去玩的人,真的都是勇士。

快检查自己账号的权限吧。有被改了,速速请教身边的程序员同学,看看如何改回来。

懂的人自然懂,让不懂的人知道

权限授予代码,即等于账号的EOS转账权,交给了代码。而代码的权利又是被人掌控着。

所以,基本等于,你交出了自己的私钥。

此时别人手里已经有枪。对方会不会对你开一枪。完全看对方心情。

公然说谎

我爆料了eosfo.io代码中的超级大bug后,很多人质疑我,甚至有人要我删帖道歉。

游戏开发方,也发公告,试图 “稳住” 无辜被套者。

但我只想说,红圈部分,是在公然说谎。

一旦授权给code, 整个合约都可以转账,不是某个action而已。dice合约demo也是很早以前了。拿好几个月前issue和bm出来解释有点牵强。 不管怎么样说,改权限不是个好设计。 优雅的解决方案是不需要改权限的。

其实我当时很想拿代码说话。直接用代码做个实验。但当时我正在外出。没法操作。

昨天晚上,社区有大神用代码做实验了。一锤定音,完美验证这游戏确实存在的大问题。

【捭阖命物eos】狼人游戏中需要的code权限真的安全吗,以及被埋在资金盘里的我正在思考什么。文章链接:https://bihu.com/article/992656

除了权限,存在更严重的bug

一个未经测试、没有经过安全审计就上线的智能合约。 如同定时炸弹一样。

既然 “权限” 这种低级错误都犯了。 可想而知,什么整型溢出,循环,重入等等 常见智能合约bug都有可能存在。

只是他们也没开源代码,我们看不到而已。

今天,真的被整形溢出攻击了。智能合约内部数据已经损坏,这游戏怕是凉凉了。这不是传统数据库,叫运维改数据就完了。区块链上,改数据可没那么容易。

收获

通过这个靠拉个大V撑场面,就能吸引一大堆人进场的“游戏”。希望大家醒醒。得到几个教训:

开源的智能合约,才是好的智能合约

经过安全审计的智能合约,才是安全的智能合约

权限上,有一套具备公信力的处理方案,才是去中心化智能合约

Fome3D山寨版,雨后春笋,相继冒出来。

不是说这种游戏不该存在,只是希望大家进场前,心中有个评判标准。别冲动。

后续跟进

狼人团队终于起床了。发现问题大了。赶紧又发了个公告稳住韭菜们:

所谓的解决方案,只能通过写一个临时的合约方法,更新合约,然后再调用这个新写的合约方法,去修复数据。

这种操作不仅很高危,而且已经完全违背去中心化,甚至是在侮辱智能合约和区块链。

不过他们也只能死马当活马医。还能有什么办法。

信仰大厦

我建了一个区块链信仰大厦DAPP,付费盖楼,一层0.2EOS,产权3万年。毕竟币圈时常风雨飘摇、还常常地震。欢迎来写下你的信仰,然后时不时回顾一下,也许信仰就不会轻易动摇了。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180726G1F73400?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券