1、前言
北京时间3月5日,知道创宇区块链安全实验室监测到BaconProtocol遭受黑客攻击损失约958,166美元,本次攻击利用重入漏洞,并凭借闪电贷扩大收益额。目前攻击者地址还没有被加入USDC的黑名单中。
2、分析
攻击事件如下图所示,该次攻击事件的问题点在于lend()函数,攻击者利用该函数进行重入攻击。
2.1基础信息
攻击合约:0x580cac65c2620d194371ef29eb887a7d8dcc91bf
攻击者地址:0x7c42f2a7d9ad01294ecef9be1e38272c84607593
攻击tx:0x7d2296bcb936aa5e2397ddf8ccba59f54a178c3901666b49291d880369dbcf31
BHEX Chain发布智能合约回购所有流通的ERC20-HBC:据官方消息,由于BHEX的业务清退,为了保障所有HBC持有者的利益,BHEX Chain团队发布了用于ERC20-HBC 回购的智能合约用于回购用户持有的全部HBC。BHEX Chain团队已经在该智能合约里存入了9,354,000 USDT,合约代码规定,这些USDT永远无法被回购合约创建人直接提现取出,只能用于回购当前市场上全部流通的3,118,000 HBC,用户可以随时通过DAPP页面参与回购。回购合约在收到用户转入的HBC后,会自动按照3 USDT/HBC 的价格,按收到的HBC数量计算回购可兑换USDT金额,并将对应价值的USDT直接转账到用户操作HBC转账的钱包地址,同时合约收到的HBC将会被自动销毁。
BHEX Chain主链代HBC代币的持有者,可以通过Metamask钱包连接BHEX Chain或者通过BHEX Chain的跨链钱包,跨链提取ERC20-HBC到以太坊网络参与回购。注:请不要直接从钱包或者交易所向合约转账,否则用户无法接收到USDT。更多详情见原文链接。[2021/12/29 8:11:32]
漏洞合约:0x781ad73f140815763d9A4D4752DAf9203361D07D
BHEX将于5月14日上线FLY(Franklin):据BHEX官方公告,BHEX将于5月14日18:00(UTC+8)正式上线FLY(Franklin),并开通FLY/USDT交易对。充值现已开启。同时,BHEX还将开启“充值FLY,瓜分35,000个FLY”、“交易FLY,瓜分100,000个FLY”和“幸运锦鲤瓜分10,000个FLY”三大活动。
FLY(Franklin)是VRM的生态币,并且也是 Blackocean 的原生代币,可以直接扣除系统内的交易费用。[2021/5/13 21:57:02]
2.2流程
1.攻击者通过UniswapV2闪电贷借出6,360,000USDC。
2.用闪电贷借出的6,360,000USDC分成3份,去bHOME中进行2次重入攻击调用了3次lend()函数铸造共8,465,943.180104bHOME。
BHEX声明:BHEX的前品牌名称霍比特和Hotbit交易所无任何关联:据官方消息,今日,币核旗下平台BHEX发布声明:因长期维护导致用户无法提币的名为Hotbit的交易所,与BHEX完全无任何关系。
公开资料显示,“Hotbit交易所”的中文名称不叫“霍比特”,只有BHEX曾使用过的品牌名称“霍比特HBTC”,今年为了避免和其他假冒的“霍比特”重名,当前品牌已经更改为BHEX。[2021/5/12 21:52:24]
3.将刚才重入获得的bHOME拿去销毁赎回获得7,336,924.998USDC。
4、归还闪电贷借出的6,360,000USDC,并支付19,716的手续费,最后将剩余的957,208.998USDC转入自己的账户。
动态 | CoinDesk:BHB项目涉嫌伪造团队成员信息:CoinDesk调查发现,加密货币项目BHB似乎一直在宣传有关其团队成员的虚假信息。网络资料显示,其团队成员包括一位名叫Bobby White的金融工程师,一位名叫David Chen的区块链专家和一位名叫Gregory Moss的产品设计师。 BHB的网站bgepay.com上展示了每个人的照片(该项目似乎已关闭了该网站)。 然而,BHB营销材料中使用的Bobby White图片与清华大学的经济学教授Alexander White的形象相同,Gregory Moss的图片与香港中文大学哲学教授的形象相同。两位教授都否认与该计划有任何关联,并且都表示此前对BHB项目没有任何了解。除了有关其团队成员的虚假信息,该项目还在其网站上列出了无效的联系方式,包括断开的电话号码以及不存在的总部地址。[2019/2/28]
2.3细节
瑞波亚太及中东地区监管关系主管Sagar Sarbhai:加密货币的市场化过程有三个阶段:瑞波亚太及中东地区监管关系主管Sagar Sarbhai表示,“加密货币的市场化过程应分为三个阶段,一是应用的兴起、规范措施及制度的逐渐形成;二是风险的涌现,如恐怖主义、非法集资等;三是,监管的保护及完善,同时大批的金融服务机构进入市场,形成全面的加密货币市场化格局。”他强调:目前,我们处于第一阶段,只是开始。[2018/3/19]
该次攻击事件重点在于lend()函数,由于合约https://etherscan.io/address/0x781ad73f140815763d9a4d4752daf9203361d07d#code并未验证开源,所以我们只能从交易的Debugger中寻找线索。
1、攻击者通过UniswapV2闪电贷借出6,360,000USDC。
2、用闪电贷借出的6,360,000USDC分成3份,去bHOME中进行重入攻击2次调用lend()函数铸造共8,465,943.180104bHOME。
3、将刚才重入获得的bHOME拿去销毁赎回获得7,336,924.998USDC。
4、归还闪电贷借出的6,360,000USDC,并支付19,716的手续费,最后将剩余的957,208.998USDC转入自己的账户。
2.3细节
该次攻击事件重点在于lend()函数,由于合约https://etherscan.io/address/0x781ad73f140815763d9a4d4752daf9203361d07d#code并未验证开源,所以我们只能从交易的Debugger中寻找线索。
分析Debugger可以看到下图是第一次调用函数,接着进行了2次重入。
从重入攻击中可以找到INPUT中调用函数的字节码为0xa6aa57ce。
通过字节签名可以知道重入攻击调用的是lend()函数。
从Debugger中我们可以发现攻击合约的地址0x781ad73f140815763d9a4d4752daf9203361d07d。
通过反编译合约0x781ad73f140815763d9a4d4752daf9203361d07d得到合约伪代码内容,可以找到lend()函数。
我们在反编译的代码中可以看到该合约使用的ERC777协议,会查询recipient的回调合约并回调tokensReceived()函数用以重入攻击。
通过分析可以发现_index就是传入的USDC数量。
totalSupply和balanceOf的增量都和_index是正比关系,和stor104是反比关系,并且这两个变量的更新发生在重入攻击之前,每次都会更新。
stor104记录的是用户存入的USDC总量,该变量的更新发生在重入之后,那么在重入的过程中stor104的值是不变的,而上面的totalSupply是在变大,所以最后return的值也会相应的增大,从而使得攻击者通过重入攻击铸造得到比正常逻辑更多的bHOME代币。
除了该次攻击事件,BlockSecTeam还阻断了后面发生的攻击并将金额返还给了项目方。
交易hash:0xf3bd801f5a75ec8177af654374f2901b5ad928abcc0a99432fb5a20981e7bbd1
3、总结
此次攻击事件是由于项目方使用了ERC777协议但没有对回调合约的安全性进行考虑从而导致了重入攻击的发生,当项目合约有涉及资产的转移时,建议使用「检查-生效-交互」模式来保证逻辑代码的安全,当然我们也可以使用OpenZeppelin官方提供的ReentrancyGuard修饰器来防止重入攻击的发生。
区块链生态已经从单纯的链上通证发展成了一系列高级的去中心化应用,而这些应用的底层技术就是混合型智能合约.
DAO会是下一次工业革命吗? 基础设施/金融 法律 可持续发展 教育领域 行动主义 IRL(现实生活) 风险投资 艺术 科学 时尚 在我们写下《DAO改变世界的15种方式》后的8个月里.
背景 2021年回顾 MolochDAO网络/生态系统概述 赠款策略 MolochDAO—未来展望MolochDAO关于ETH生态系统发展的计划 Moloch崛起! 背景-Moloch的故事20.
凭借独到的金融市场眼光,顶峰AscendEX致力在全球范围内广泛甄选具有应用价值潜质的优秀区块链项目。精准的市场定位和严格的遴选标准,让顶峰AscendEX稳居全球加密交易平台投资回报率前列.
NFT世界仿佛从来不缺新鲜感,随时都可能刷出更高的成交价。4月18日,Moonbirds#3904以150ETH的价格完成交易,折合美元约45.7万,刷新该系列交易额最高记录.
5月6日,波场联合储备宣布AlamedaResearch成为其首位成员及白名单机构,有权铸造去中心化算法稳定币USDD。USDD是由数学模型与算法支撑的完全去中心化稳定币.