导读:本文盘点了近期EOS Dapps上影响较大的安全事件以及漏洞解读,同时以开发者的角度对EOS生态和“Code is Law”进行点评,严格执行Code is law,会增加用户监督门槛,开发者故意埋下漏洞的行为也难以谴责追诉。而过分的人治,又会成为民粹的温床,打击开发者审计合约的动力。


作者简介:唐飞虎(岛娘),仙女座科技CEO。

自主网上线以来,一场最大型的 EOS 合约漏洞攻击正在上演且追随者无数,涉及到的项目包括 EOSBet、newdex 等众多头部项目,项目方累计损失 11万个 EOS(约价值人民币400万)。目前尚不能判断这一系列事件是由一人还是多人所为,主要涉及到的账号包括:"guydgnjygige", "imeosmainnet", "iloveloveeos", "aabbccddeefg"及众多疑似小号,如"chinasichuan", "cityhangzhou", "cityhongkong", "guangxichina", "guydgnjygige", "lloolloolloo", "meadwestvaco", "nbcuniversal", "ooooo11ooooo", "shunwanggame", "sichuanchina", "surveymonkey", "wolframalpha", “slowmistsafe", "helloboy1234"...


第一个中招的游戏 - https://luckyos.io/ 

主要涉及到的黑客账号"guydgnjygige"。

该账号创建于6月9日,最初以0.0001 EOS的小额转账附带Memo(注:一般的EOS转账必须填写发起方和接收方账户名,MEMO作为备注信息是选填的。)打广告的形式,推广一款叫EOS Game World的山寨FOMO3D的游戏。https://gameworldeos.github.io/ 该网站现已停运,网站的社交媒体链接已导向 dapp.pub。

后期该账号主要投注各类骰子、乐透类菠菜项目,并通过预测各项目的随机数产生,产生收益。

8月27日,Luckyos旗下的石头剪刀布游戏被成功攻破。

该黑客找到了剪刀的随机数产生规律,于是通过持续在指定时间出石头,来赢得奖励,并指出有38%的概率获胜。

(EOS区块浏览器截图)

自此,该黑客对破解其他菠菜游戏产生了浓厚的兴趣,不断的尝试挑战破解新的游戏,并通过小额转账Memo指点了http://rollgame.github.io的开发者。

(EOS区块浏览器截图)

(http://rollgame.github.io 游戏截图)


第二个中招的游戏 - DEOSBET

10日,黑客又利用类似的漏洞,攻击了DEOSBET,并且连续赢了 24 次,累计接近 2.4 万美元。


第三个中招的游戏 - EOS Happy Slot 

https://happyeosslot.com/

主要涉及到的黑客账号imeosmainnet 。

另一名账号为 imeosmainnet 的黑客对Happy Eos Slot 老虎机项目的攻击是在9月12日凌晨,利用重放攻击(Replay Attacks,这种攻击会不断恶意或欺诈性地重复一个有效的数据传输),导致项目方损失了5000个EOS。

攻击方法是黑客首先赌了较小的金额,并在 transfer 方法中加入了钩子开关,transfer 过程可以被黑客预留的钩子中断,所以 reveal 被卡死,当 reveal 被卡死时候,并且这时候 bet 是仍然可以被调用的,重放攻击就成立了。黑客选择默认关闭开关,当检测到得到五倍以上的开奖金额之后,就再发一笔数额较大的金额,并开启开关,从而每一次都可以获得数倍的回报。

由于 happyeosslot 使用了一种新的智能股权协议,项目的盈亏会直接作用在币价上,在收到黑客攻击之后,happyeosslot 的企业经营系数也是随之降低到了 0.1。

有趣的是,老虎机小游戏 https://www.luckywith.me/slots大部分参考了Happy EOS Slot的合约代码,而在Happy家被黑客imeosmainnet攻击的前两个小时,Lucky家突然暂停了旗下的老虎机项目。Lucky家的官方解释是EOS主网节点波动严重,等主网稳定后再开放。直至发稿,Lucky家的老虎机仍未重新上线。

而黑客 imeosmainnet 非法获得了EOS之后,立刻转入了fcoin交易所。黑客的最初几笔资金来自火币和zb兑换中心。但从记录表明,并未看出 imeosmainnet 与 guydgnjygige 的关系,可以猜测,这两个账号背后是不同的人。

该项目目前已经重新上线。


第四个中招的游戏 - FairDice 

https://dapp.pub/dice/

主要涉及到的黑客账号iloveloveeos 。

继Happy家失窃,一众程序员正夸赞dapp.pub旗下的FairDice的代码并潜心学习的时候,突然发现黑客也开始对Fairdice下手,并已成功了几笔。

这一次攻击的手法也是重放攻击,由于 FairDice 的随机数算法和时间相关,因此多次同一笔下注在不同时间开奖可以获得不同的结果,黑客正是利用了这一点,拒绝了所有失败的开奖结果,从而可以让自己的下注总是获胜。

https://www.reddit.com/r/eos/comments/9f5o6a/dapppubfairdice_version_2_is_back_an_opensourced/

Fair的代码增加了安全机制,每次获胜的金额不得超过合约奖池的 1%,并且我们发现及时,立即 Call 醒了开发者,才没有让损失继续扩大。


第五个中招的游戏,也是损失最惨重的 - EOSBet

主要涉及到的黑客账号aabbccddeefg 。

EOSBet是建立在EOS上的一个掷骰子的DApp, 被攻击时在DAppRadar上排名第四。七日交易量约860万EOS,交易笔数137万余笔。

(图片来源:DappRadar)

就在被攻击前的几个小时,EOSBet在Twitter推文公布,称该项目将要达到210万的交易笔数。

EOSBet项目尚未开源,却也难逃离攻击。9月14日上午11点左右,aabbccddeefg 在未进行投注的情况下,却以中奖的方式, 在20多分钟的时间内,赢得了4.2万个EOS(总价值约为150万人民币)及投注产生的1千多个平台代币BET。

据分析,EOSBet被攻击,是因为代码中并没有检查收到的EOS是不是eosio.token产生的EOS,黑客通过自己创建的名字同为EOS的“假币”,套取了真的EOS。

在获得了EOS之后,黑客分别给guydgnjygige和cctvworldcup两个账号各转账了1万个EOS。


第六个中招的游戏 - EOS.win/dice

随后相同手法又被用在了 EOS.win上,导致各项目方产生惊恐,纷纷关闭了自己的项目。


第七个中招的是去中心化交易所- newdex

主要涉及到的黑客账号oo1122334455 。

9月14日下午两点,EOS账户“oo1122334455”用同样方法发行了10亿个EOS假币,分配给了dapphub12345账户,再由dapphub12345转账给了iambillgates账户,并利用假EOS挂单进行币币交易,委托买入IPOS、BLACK、IQ、ADD,并转给xx1234512345和x12345x12345,最终由xx1234512345将非法得来的Token挂单卖得4千多个EOS,并充值到Bitfinex。

整个黑客攻击事件最无奈的便是,作为一个去中心化的交易所,在遭遇了假币之后,不得不通过中心化的手段来强制下架了交易对。此次事件,共造成了Newdex用户11803个EOS损失。


账户安全提醒

事件发生后,大家纷纷通过转账时的Memo,给黑客账号留言致敬或蹭黑客账号热点来发布小广告。

更有诈骗账号假装EOSBet官方,不断的向黑客账号发出索赔要求。

(EOS区块浏览器截图)

图中EOSBet的账号为eosbetdice11, 而eosbetdlcell 用l来代替i和1来以假乱真。切记不要转账到此类钓鱼账户。

点评EOS生态

EOS自主网上线两个多月以来因其TPS超越各大主流公链而受到dapp开发者的青睐。EOS上的dapp数量也呈现井喷式增长。EOS公链本身的安全性,以及合约开发如何设计安全规范,也越来越引起开发者的重视。

“掷骰子”可以视作 dapp 开发的最小可用模型,而这次黑客攻击事件,将 EOS 开发者生态不健全的问题翻到了台面。如果这类 dapp 的安全性都不能保证,大家畅想的 killer dapp 更是无从谈起。目前 EOS 上几乎每一个类似项目都受到了不同程度的攻击。一方面是 EOS 合约的表达能力较强,使得很多开发者对可能存在的漏洞缺乏全面的考虑,另一方面是开发者刚刚进入这个领域,缺少必要的安全攻防经验。EOS 合约开发者们各自为阵,大部分项目方为了安全起见选择不开源,而实际的结果只能是掩耳盗铃。黑客往往能够根据 wasm 和 abi 文件还原出合约的信息,很多时候封闭的代码只会隐藏自己的错误反而给黑客可乘之机。EOS 上目前也缺乏一些类似 ERC20 和 OpenZepplin 这样的标准库,来给开发者提供一些合约设计上的参考。

作为 EOS Dapp 开发者,不仅要自掏腰包购买 ram,带宽,辛苦踩坑。合约上线后还面临着被用户维权,被黑客薅,被 BP 丢块。最后还可能面临着被 BM 降维打击的风险(EOS Bank 所提供的服务就直接被官方加入进了rex 里)。可以说是生态中最苦逼的一波人。

截止目前,黑客还有一些攻击手法没有被完全揭示,黑客可能还留藏着一些底牌,等待项目做大之后再使用,以下是我们总结的一些给 Dapp 开发者的忠告:

  1. 跟随社区的忠告,当友商被攻击时及时 update 信息,确认自己的合约是否有类似的漏洞。

  2. 添加风控功能,防止黑客在短时间内盗取大量 EOS。

  3. 总是使用 defer transcation,阻止黑客的钩子攻击。

  4. 种子只使用一次,避免被重放攻击。

EOS核心仲裁法庭(ECAF)

EOS在社区治理方面与以太坊等区块链有很大的不同,率先创建了仲裁法庭机制来服务于社区,作为社区的日常管理。当出现争议时,社区成员便可以向ECAF提出诉求,等待社区仲裁。

仲裁员通常由社区公民投票任命,而撤销仲裁员的任命需要三大权力机构(BP、社区、法庭)中的两方批准方可执行。一般情况下一个案件仅指定一名仲裁员,而特殊情况则需由一名高级仲裁员领导的三人小组进行审理。

任何社区成员都可以在线上提交仲裁申请,https://eoscorearbitration.io/file-a-claim/,并按照案件涉及的损失金额来支付仲裁费用。目前法庭裁决过的申请主要为盗取账号进行非法转账,申请人需要提供自己拥有该账号的证明,其他账号进行了非法转账的证据。这类案件尚不能直接追回损失,法庭的裁决只是对非法账号进行冻结,所有BP不再执行与该账号相关的任何操作。

所有案件中,大家最关心的便是前段时间出事的区块链游戏EOS狼人杀了,该项目团队于7月26日及7月29日分别发布了两个声明,声称被黑客eosfomoplay1非法盗取60686.4190 EOS,并建议中奖者guztknrygqge通过EOS核心仲裁法庭申请仲裁。该事件一直被外界认为是狼人杀团队监守自盗的行为,认为eosfomoplay1的黑客账号属于狼人杀团队。

(狼人杀团队公告)

该案件在ECAF的案件编号是#ECAF00000339,紧急处理的结果是所有BP不再执行eosfomoplay1账号以及与其公钥私钥相关的任何交易,即冻结该账号,等待案件的进一步审查。

截止目前,该账号非法所得的EOS依旧冻结在其中,理论上讲,如果证据确凿,且ECAF通过裁决,判断这笔EOS应转入给受害者,是可以追回的。只不过目前尚未有过成功追讨的案例。

另一个例子是,Happyeosslot 就曾经将合约抵押贷款refund返回的eos当成是开奖,从而给 eosio.stack账户开出过一笔大奖:

https://github.com/EOSIO/eos/issues/5480

Code is Law?

代码是项目的骨架和齿轮,尽管各个项目的目标或许是做最公平的Gambling、或许是为了盈利赚大钱;尽管各个项目对外有着明确的玩法规则,但拨开外衣,最本质客观的规则还是运行在各个节点机器上的代码。

从道德上来讲,黑客攻击了项目合约转走了“非法”所得;但从代码这一“规则”角度,黑客的攻击,也可以视作合约所允许的一种“玩法”,黑客精妙地发掘了"裏メニュー(隐藏菜单)",并赢得了“奖励”。

“立法”总会落后于现实。规则是死的,而人总是会犯错,因此我们需要累积前人智慧作为指导。

由于代码的知识门槛,严格执行Code is law,会增加用户监督门槛,开发者故意埋下漏洞的行为也难以谴责追诉。而过分的人治,又会成为民粹的温床,打击开发者审计合约的动力。

从整个公链的利益考虑,此次的黑客攻击,虽然惨痛,但仲裁法庭不应该干涉,而是应该敦促制定一套安全标准,规范未来项目的开发;也让ECAF真正成为生态的重要一环。

我们一直希望开源能够让世界变得更好,这是因为我们相信透明的机制的力量,相信透明的规则能够让信任的成本降到最低,让合作的效率变得更高。而基于客观规则的行为,如果因此受到惩罚,那么无疑会助长更多对规则的破坏和不公正的行为。但我们也支持在现在生态还处于比较原始的阶段,仲裁法庭利用自身的专业知识一起构建更安全的规则,维护广大用户群体的利益,让EOS公链的生态变得更好。

关于仙女座科技:


仙女座科技是由唐飞虎于2018年4月创立,我们的成员来自Google、微软和各大高校,我们有Google的工程师文化和微软的严谨做派。

我们深耕在区块链应用开发,致力于推动区块链技术与实体产业的长足发展,加速实现去中心化理想“变革社会生产力关系“。并一直秉持Give the power back to user——"用户的权利还给用户"的技术宗旨。

仙女座科技正在招聘,简历请投至邮箱hiring@andoromeda.io


本文由作者唐飞虎授权发表,不代表DappReview观点和立场,不构成任何投资建议。

往期精选

2018年区块链游戏产业白皮书 - 新的市场 新的机遇

你玩的Fomo3D跟我玩的可能不太一样?[彩蛋全解析]

背靠ERC1155- 第一个有真正价值背书的游戏资产

深度解读16天3000ETH净收入的区块链版炉石

点击阅读原文,查看最全的DApp排行

累计薅走数百万,EOS Dapps已成黑客提款机?相关推荐

  1. EOS Dapps已成黑客攻击事件

    导读:本文盘点了近期EOS Dapps上影响较大的安全事件以及漏洞解读,同时以开发者的角度对EOS生态和"Code is Law"进行点评,严格执行Code is law,会增加用 ...

  2. EOS DApp 已成黑客提款机

    导读:本文盘点了近期EOS Dapps上影响较大的安全事件以及漏洞解读,同时以开发者的角度对EOS生态和"Code is Law"进行点评,严格执行Code is law,会增加用 ...

  3. 【520福利】还记得每天给你推送一个异校妹子的tataUFO么?该团队已获阿米巴数百万pre-A轮,正在向上海高校发展

    沈超 • 17:23 / 20 [520福利]还记得每天给你推送一个异校妹子的tataUFO么?该团队已获阿米巴数百万pre-A轮,正在向上海高校发展 五月二十日,写作"520", ...

  4. 已被骗数百万美金!App Store 中诈骗应用横行,网友:“苹果只顾抽成!”

    整理 | 郑丽媛 出品 | CSDN(ID:CSDNnews) 苹果用户都知道,想在设备中下载软件只有一个途径,那就是苹果官方的应用商城 App Store.向来把"安全"作为一大 ...

  5. 这个路由器漏洞已存在12年,可影响全球数百万台设备引发供应链攻击

     聚焦源代码安全,网罗国内外最新资讯! 编译:奇安信代码卫士 专栏·供应链安全 数字化时代,软件无处不在.软件如同社会中的"虚拟人",已经成为支撑社会正常运转的最基本元素之一,软件 ...

  6. 戴尔修复已存在12年之久的驱动漏洞,影响数百万个人电脑

     聚焦源代码安全,网罗国内外最新资讯! 编译:奇安信代码卫士 戴尔修复了一个已存在12年之久的漏洞,它影响数百万台戴尔桌面.笔记本电脑.平板,该漏洞编号为 CVE-2021-21551,影响Dell ...

  7. Beosin(成都链安)预警:黑客攻击EOS竞猜类游戏 已获利数百EOS

    Beosin(成都链安)预警:今天下午15:27-15:44之间,根据成都链安区块链安全态势感知系统Beosin-Eagle Eye检测发现,黑客co****op向EOS竞猜类游戏合约xlo***** ...

  8. Avast 和 AVG 杀软中的两个高危漏洞已存在10年?!影响数百万设备

     聚焦源代码安全,网罗国内外最新资讯! 编译:代码卫士 研究员在Avast和AVG杀软解决方案的一款合法驱动中发现了已潜伏多年的两个高危漏洞:CVE-2022-26522和CVE-2022-26523 ...

  9. 上海建融家园获资本数百万元天使轮融资

    近日,上海建融家园公共租赁住房运营有限公司,成功获得资本数百万元天使轮融资,建融家园创始人王睿表示:本轮融资将继续用于项目,市场拓展,后台技术数据升级,为租赁便捷的数字化服务提供有力支撑,同时也将为公 ...

最新文章

  1. 微信小程序-页面跳转传值
  2. Centos中Redis的下载编译与安装(超详细)
  3. 批量删除redis键
  4. PHP判断是否有Get参数的方法
  5. MFC+OPENCV+显示MAT类型图像
  6. Django简介以及安装
  7. SQL 测验-自测结果
  8. osip2 代码分析
  9. bzoj 1675: [Usaco2005 Feb]Rigging the Bovine Election 竞选划区(暴力)
  10. Vue中无法更改element ui组件样式问题
  11. slz-servlet的引入
  12. 如何防止数据库中的信息被“脱库”-笔记
  13. ES9218PC SABRE HiFi 移动 DAC 便携式耳放
  14. java浏览器插件开发,如何获取Windows的IcedTea浏览器插件(OpenJDK浏览器Java插件)?
  15. matlab弹簧振子的阻尼振动,matlab阻尼振动模拟
  16. 微信小程序简单留言板
  17. int和Integer区别,为什么有了int还要有Integer
  18. SAP_PS常用增强
  19. Centos 禁用Transparent HugePages
  20. 利用 MoviePy 实现 FLV 转 MP3

热门文章

  1. 梦想起航商务工作PPT模板
  2. 【转载】遥感影响数据集整理
  3. 写论文第一步——查文献的方法
  4. 苹果手机浏览器下拉会闪动的解决办法
  5. android仿QQ优雅的修改App字体大小
  6. [转载] python实现语义分割_使用Keras实现深度学习中的一些语义分割模型
  7. 【NOIP2014】解方程【秦九韶】【高精度处理】
  8. 商品数据结构之什么是SPU和SKU?
  9. CEF 最新版本自己编译加上支持播放MP4视频
  10. 自动清理内存linux,linux 过滤内存使用率并于计划任务结合来自动清理内存缓存...