安全月报 | 10月共发生安全事件10起,DeFi借贷平台成黑客洗钱新选择
数字钱包
1)上海某投资机构冷钱包私钥被盗,造成的损失达数千万元;
2)去中心化托管平台 Payfair 官方发布声明称,由于黑客攻击,平台冷钱包的私钥被破解;
3)网页版加密货币钱包 Safuwallet 遭到黑客攻击,黑客通过注入恶意代码窃取了大量资金。
PeckShield 点评: 数字钱包作为管理私钥的工具,是离加密资产最近的地方。 虽然冷钱包是一种脱离网络连接的离线钱包,但也存在被物理攻击和被盗的风险,而像网页钱包等热钱包,用户也要谨防网络钓鱼,恶意代码注入等攻击方式。
DApp 生态
EOS 游戏 BitDice 遭受假 EOS 攻击,损失4千 EOS;SKReos 游戏遭受交易 memo 攻击,损失6千 EOS。其中 SKReos 之前已被多次报道遭受交易阻塞和随机数攻击。
具体来说,假 EOS 攻击是被攻击合约在接收到玩家投入的 EOS 时,没有验证是官方 eosio.token 合约签发的,玩家可以自己创建同名为 EOS 的代币,进而触发被攻击合约的 transfer 函数,获得真正的 EOS 回报。而交易 memo 攻击是指黑客通过精心构造投注交易的 memo,导致游戏方服务器解析异常,从而持续中奖或异常大额退款。
PeckShield 点评: 以上两款 EOS 游戏遭受的攻击都是比较常见的,DApp 开发者应在合约上线前做好安全测试,防御已知的攻击方式,必要时可寻求第三方安全公司协助,帮助其完成合约上线前攻击测试及基础安全防御部署。
智能合约
10 月 14 日,Cheeze Wizards 在以太坊主网上线。不到24小时内,玩家 @samczsun 向官方反映,游戏合约存在一个严重的漏洞,使用该漏洞可以让玩家处于不败之地。随后 Cheeze Wizards 决定采用分叉的解决方案来保护用户的权益。官方之后修复了此漏洞并部署了新的智能合约,同时弥补了用户遭受的损失。
如下图,这一漏洞主要发生在智能合约的 resolveTimedOutDuel(uint256,uint256) 方法中。
作为一款格斗游戏, Cheeze Wizards 允许玩家发起一个 “单边揭示“ 的交易,当一位玩家已经揭示了招式,另一位玩家一直不揭示招式直到时间截止 (90 分钟)时,正常玩家可以调用 resolveTimedOutDuel() 方法,以此来夺走不揭示招式玩家的能量。而问题的关键在于谁先调用并如何调用该方法。
玩家正常调用和恶意调用的例子如下。
正常调用:resolveTimedOutDuel(WIZARD-A,WIZARD-B)
恶意调用:resolveTimedOutDuel(WIZARD-A,WIZARD-A)
由于合约开发者默认为传入的两个 wizard id 不同,所以没有进行相关效验,而该方法是公开的,任何玩家都可以设置 wizard id,一个怀有恶意的玩家,通过传入相同的 wizard id 以此来冻结诚实玩家的能量。
修复此漏洞的方法很简单,只需要在方法体内加上如下判断。
PeckShield 点评: 智能合约开发者在实现相关方法时,要特别注意公开接口的相关参数,应考虑各种异常情况,做好防御限制。
跑路事件
PeckShield 旗下的 CoinHolmes 推出的可视化的数字资产追踪服务也一直监控着跑路和被盗资产的异动情况。
其中 CoinHolmes 监测到 Cryptopia 部分被盗资产流入了 Uniswap 去中心化交易所和知名 DeFi 项目 Compound。资产流向示意图如下:
鉴于资金盘跑路诈骗事件频发, CoinHolmes 为广大用户提供了爆料入口,用户可以通过(https://forms.coinholmes.com)提交关联链上地址(可点击左下角阅读原文进入),实时查询数字资产流向情况。
PeckShield 点评: 除了传统中心化交易所,黑客也在不断寻求新的洗钱方式,例如此次黑客转移资金至 Compound, 主要目的是利用 DeFi 借贷平台进行混淆资金洗钱,同时不排除“理财生息”的可能。 除 DEX 之外,当前有着较好流通性的 DeFi 借贷平台也成了黑客洗钱的新选择。
钓鱼攻击等其他类安全事件
1)Telegram 搬砖套利骗局八天内诈骗金额高达750枚 ETH;
2)MEET.ONE 提醒 EOS 用户警惕 DApp 诈骗钓鱼。
PeckShield 点评: 因用户安全意识欠缺且操作规范性造成的各类安全隐患一直层出不穷,钓鱼攻击、搬砖套利等各类事件就是典型。 在此提醒,参与数字资产投资的用户应谨慎保管各类私密信息,任何小的疏忽都可能造成不可挽回的损失。