(图片来源于网络)12月05日,新上线的又一款EOS竞猜类游戏Fastwin遭到黑客攻击,区块链安全公司PeckShield态势感知平台捕捉到了该攻击行为并率先进行了安全播报披露。数据显示,当天凌晨03:18—04:15之间,黑客(ha4tsojigyge)向Fastwin游戏合约(fastwindice3)发起124次攻击,共计获利1,929.17个EOS。PeckShield安全人员分析发现,该攻击行为是黑客利用Fastwin的合约在校验合约调用方时存在的漏洞,导致“内联反射(inlineReflex)”攻击成功。据PeckShield此前发布的《浅析DApp生态安全》的报告显示,截止11月底,已经发生了超27起EOSDApp安全事件,主要集中在假EOS攻击、随机数问题等攻击方式,且在不断升级演变。而这次看似较小的攻击事件背后却暴露出了一个较以往危害性可能更大的新型漏洞:EOSIO官方系统对调用合约自身函数存在不校验权限的问题。
动态 | Cointelegraph盘点2019年最具活力和影响力的区块链公司:Cointelegraph发文盘点2019年最具活力和影响力的区块链公司,具体如下:
1. 加密货币托管和清算获得动力:Gemini;
2. 去中心化稳定币交易加速:Maker/DAI;
3. 游戏协议吸引主流兴趣:TRON / WINk;
4. 利用不断扩展的开发者社区:Ethereum;
5. 比特币生态系统中的智能合约和DeFi:RSK;
6. 衍生品让机构投资者的兴趣达到顶峰:Bakkt;
7. 向加密生态系统添加资本市场功能:Binance;
8. 打开法币闸门:Simplex;
9. 扩大对加密解决方案的访问和认知:Coinbase;
10. 传统支付公司利用加密技术并鼓励采用:Skrill。[2020/2/10]
(图一:PeckShield与Block.one邮件沟通)PeckShield认为这是一个非常严重的漏洞,并第一时间通知了Block.one团队。Block.one官方团队接受了该漏洞提议,并告知我们有其他研究团队也事先独立汇报了该漏洞,最终于周四(12月13日)更新了紧急补丁以补救防御,同时次日新发布1.5.1和1.4.5两个版本,完成了该漏洞修复,避免了更多攻击事件的发生及可能造成的资产损失。“内联反射(inlineReflex)”攻击原理正常的转账流程如图所示:玩家通过调用系统合约(eosio.token),将EOS转账给游戏合约,触发游戏合约的分发逻辑(apply),进而调用相关函数实现开奖。
动态 | 澳媒盘点12国加密货币税制 日本税率最高:7月23日,澳大利亚加密货币媒体Mickey发文盘点各国加密货币税制,并指出日本加密货币税率非常高。根据2017年4月实行的资金结算法修订版,加密货币交易所产生的利益所得划分为杂项收入,所得税最高可达45%,作为伴随着损失的交易市场税率来说非常高。此外,该媒体列举了以下几个国家的加密货币税制:1、德国:加密货币交易免除附加税,持续保有加密货币一年以上可免除转让所得税。全部欧洲市民向德国转移资产时可免除转移税。2、新加坡:长期投资加密货币的企业和个人免除转让所得税。3、葡萄牙:不像加密货币征收附加税和所得税,但企业通过加密货币交易所得的收益需要课税。4、马耳他:加密货币的日交易作为法人税征收税金,但个人投资者购买和拥有加密货币不用缴纳税金。5、马来西亚:不需要缴纳转让所得税。6、白俄罗斯:对加密货币挖矿和对加密货币的投资不征收税金。7、瑞士:对专业投资者的加密货币交易征收法人税,挖矿被视为个人营业收入,但个人投资者的投资及交易不需缴纳转让所得税。8、加密货币被认为是资产,纳税方式和股票一样;如果购买加密货币并保留一年以上,根据收入水平征收0%至20%的税金。9、澳大利亚:当所有交易均被视为转让收入,并且兑换为澳元时要求保留所有准确的交易记录;如果进行加密货币投资获得的利润,就要交纳与个人所得税相同速率的税金。但如果持有1年以上的加密货币,将减免50%的税金。10、以色列和瑞典:如果纳税人不能证明他们购买的加密货币的购买额,将会征收百分之百的税金。[2019/7/23]
而此次的攻击者(ha4tsojigyge),在自己帐号部署的合约中包含了与游戏合约相同的操作函数,在转账完成后,自行开奖获得奖金。如图所示:
动态 | 老猫盘点2018年个人经历:披露“李笑来欠3万个比特币”事件进展:12月31日讯,硬币资本(INBlockchain)管理合伙人老猫发文回顾2018年个人经历。文章中,老猫透露2018年由经济下行个人资产也缩水一大半,但相对而言可能还说得过去,因为坚持3个投资方法:第一是不加杠杆,第二是主要持有主流品种,第三是配置。 文章中,老猫还就此前外界盛传的“李笑来欠了3万个比特币”事件进行回应,同时披露最近进展。老猫表示,该事件最初源于2013年面向熟人圈开展的代理投资,当时所有合同以人民币计价投资,每份10万人民币,但有的人当时给的是比特币,“这个事情被一些黑子刻意的改头换面,最后就变成笑来欠了30000个币”。老猫透露,此事在2018年8月26日画上了句号。[2018/12/31]
从图中可以看出,攻击者在自身合约的函数(pushck)中,内联调用了与游戏合约开奖同名的函数(check),再通过通知(require_recipient)的方式将信息发送到了游戏合约。此时游戏合约的分发逻辑(apply)没有过滤掉此信息,并调用了开奖函数(check)。总之,攻击者利用了EOSIO系统中对调用合约自身函数不校验权限的漏洞,进而使用游戏合约(fastwindice3)的帐号权限发起内联调用,致使绕过游戏合约在敏感函数中校验调用者权限的方法(require_auth),从而获取了游戏合约发放的奖励。修复方法从上述分析能够发现,攻击者合约的通知信息中,实际调用的合约是攻击者合约(ha4tsojigyge),而非游戏合约(fastwindice3),因此在游戏合约的分发逻辑(apply)中过滤掉此类信息即可。而且从系统定义的宏(EOSIO_ABI或者EOSIO_DISPATCH,如图四)中能够看到,分发逻辑处理了此问题。因此PeckShield在此提醒开发者在定制化自己的分发逻辑时,需要特别注意其中的调用来源。
深层次及兼容性问题需要强调的是:这个问题属于EOS公链层的较大漏洞,攻击者在内联调用中可以伪造任意帐号的权限执行,但这个修复可能会给部分开发者造成兼容性问题,如合约内联调用函数,而执行者帐号(actor)不是自己的时候,会导致整个交易(transaction)执行失败,如需解决兼容性问题请给合约赋予执行者帐号的eosio.code权限。
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。