针对区块链安全问题,Beosin团队每一周都将出智能合约安全漏洞解析连载,希望能帮助程序员写出更加安全牢固的合约,防患于未然。引子:寓目暂为实,过者即为虚。——《俨上人粹隐堂》宋·梅尧臣前情提要
上回书,EOS游戏屡遭手,随机数漏洞屡禁不绝。当下正值各种EOSDApp火爆的时期,许多项目方纷纷开发自己的EOS游戏吸引玩家。由于EOS官方并没有提供随机数接口,EOS游戏在随机数生成问题上面临和以太坊游戏一样的窘境,开发者无法确保随机数算法中的因子是不受其他因素干扰的完全随机因子,因此EOS游戏随机数攻击一而再,再而三的发生,项目方也采取修改相关算法的措施应对类似风险,如何做到正确修改,就要看开发者对随机数因子的生成机制是否了解透彻,必要时还是需要借助第三方审计,做到随机数问题上的万无一失。本期话题
DApp假币鱼目混珠,转账函数检测疏漏马虎说起今年比较卖座的国产电影,周润发的《无双》肯定占有一席之地,电影中美元假钞的制造技术让人惊叹,也演绎了一段残酷的“钞级局”。钞票不够用,就想到自己制造印刷,以假乱真,但是像影片中那种精湛的技艺确实还是很少的。在利益面前,任何一种货币都有被伪造的风险。对于EOS也不例外,本期我们就来说说由伪EOS攻击引出的相关漏洞及其变体。基础知识铺垫
EOS智能合约的架构EOS智能合约是由一系列action组成的,每个action代表一条合约条款,以实现条款中的具体规则。执行一个EOS智能合约分为制作、部署、调用三个部分。其中,在部署智能合约这一步,每个EOS智能合约必须实现一个apply()函数,作用是将action请求映射到具体的处理函数。具体的实现细节封装在EOSIO_ABI宏里面。这样的设计让开发者只需要专注业务逻辑的开发,而不必关注底层技术,起到简化开发的作用。apply函数示例:伪EOS转账攻击历史事件:大名鼎鼎的EOSBet在9月12日损失约42,000EOS,开始了黑客使用伪EOStoken攻击的热潮,接下来就是eoswindice和去中心化交易所newdex,都沦落为黑客的“鱼肉”。攻击分析:在EOS链上通用代币为EOStoken,EOStoken是由EOSIO部署的eosio
代码安全非黑即白
受到攻击的游戏官方经过一系列的安全事件、代码修复才最终解决了一个看似很匪夷所思的漏洞。可以看出,区块链安全是一个异常严谨、值得考究的技术,近两年的磕磕碰碰又让它成为了一个非常沉重的话题。《无双》中有句台词,“只看到黑跟白的人,永远都是失败者。”这句话在区块链领域并不适用,不信你看电影主角的结局。区块链项目需要做到代码层面上的逻辑严密,设计精巧。区块链安全规范和相关知识也需要理解透彻,融会贯通,在细节问题上的把握也异常重要,尤其是对于起步不久的EOS、Fabric等新平台,所以可以说区块链技术在代码安全方面非黑即白,做到安全开发、安全审计、安全部署,才能让攻击者、投机者无从下手。引用::假EOS攻击再升级:EOSCast遭黑客“假EOS转账变种”攻击,损失超6万EOS;:BET被黑客攻击始末,实锤还原作案现场和攻击手段;:震惊!EOSBet又被攻击了。损失高达500万。攻击手法竟是这样?;:HowEOSBETattackedbyaabbccddeefg;:EOSBetTransferHackStatement。
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。