1、前言
北京时间3月5日,知道创宇区块链安全实验室?监测到?BaconProtocol?遭受黑客攻击损失约958,166美元,本次攻击利用重入漏洞,并凭借闪电贷扩大收益额。目前攻击者地址还没有被加入USDC的黑名单中。
2、分析
攻击事件如下图所示,该次攻击事件的问题点在于lend()函数,攻击者利用该函数进行重入攻击。
2.1基础信息
攻击合约:0x580cac65c2620d194371ef29eb887a7d8dcc91bf
攻击者地址:0x7c42f2a7d9ad01294ecef9be1e38272c84607593
美国国家安全顾问:拜登将与七国集团讨论人工智能问题:金色财经报道,美国国家安全顾问沙利文表示,拜登将与七国集团讨论人工智能问题。[2023/5/18 15:09:55]
攻击tx:0x7d2296bcb936aa5e2397ddf8ccba59f54a178c3901666b49291d880369dbcf31
漏洞合约:0x781ad73f140815763d9A4D4752DAf9203361D07D
2.2流程
1.攻击者通过UniswapV2闪电贷借出6,360,000USDC。
2.用闪电贷借出的6,360,000USDC分成3份,去bHOME中进行2次重入攻击调用了3次lend()函数铸造共8,465,943.180104bHOME。
支持发行数字美元的布雷纳德已被拜登提名担任美联储副主席:金色财经报道,当地时间11月22日,白宫发表声明称拜登宣布打算提名鲍威尔连任美联储主席,值得关注的是,拜登同时还提名布雷纳德担任美联储副主席。布雷纳德一直呼吁稳定币监管并支持美国发行央行数字货币,他曾指出稳定币如果被广泛采用,会带来风险。考虑到非接触式支付的趋势,以及疫情期间直接向家庭支付的困难,美联储数字美元的讨论变得更加“突出”。 布雷纳德提醒数字美元开发一系列“紧迫性”的理由,包括中国等其他国家正在推进自己的数字货币,并称很难想象美国在央行数字货币(CBDC)上面落后于其他央行。[2021/11/23 7:05:47]
3.将刚才重入获得的bHOME拿去销毁赎回获得7,336,924.998USDC。
拜登:鲍威尔在加密货币方面发挥了积极作用:美国总统拜登表示,鲍威尔在加密货币和金融风险方面发挥了积极作用。(金十)[2021/11/23 7:05:33]
4、归还闪电贷借出的6,360,000USDC,并支付19,716的手续费,最后将剩余的957,208.998USDC转入自己的账户。
2.3细节
该次攻击事件重点在于lend()函数,由于合约https://etherscan.io/address/0x781ad73f140815763d9a4d4752daf9203361d07d#code并未验证开源,所以我们只能从交易的Debugger中寻找线索。
1、攻击者通过UniswapV2闪电贷借出6,360,000USDC。
华尔街日报:拜登政府拟对稳定币实施类似银行的监管:金色财经报道,拜登政府周一采取了首个重要举措,旨在对参与稳定币发行的加密货币公司实施类似银行的监管,概述了一个可能塑造这种数字货币未来的过程。由美国财政部牵头的一个委员会建议国会围绕稳定币实施新的监管框架,并将这类数字资产的发行方限定为银行。鉴于国会参众两院的两党人数相差较小,因此这项立法要求是一个艰巨的任务。稳定币是与美元等国家货币挂钩的数字货币。如果国会不采取行动,该委员会建议由一个更广泛的、负责检测金融系统风险的监管机构——金融稳定监管委员会(Financial Stability Oversight Council)考虑是否将某些稳定币活动指定为具有系统重要性的活动。这一过程最终可能导致美联储为稳定币公司制定更严格的风险管理标准。(wsj)[2021/11/2 6:26:05]
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修饰器来防止重入攻击的发生。
活動時間:2022年03月10日10:00至2022年03月17日07:59活動一:註冊幣安賬戶,參與瓜分40,000美元等值GMT卡券獎勵活動期間,通過紅包鏈接成功註冊幣安賬戶.
尊敬的XT.COM用戶:CELO節點升級維護,XT.COM現已暫停CELO充值與提幣業務。給您帶來的不便,請您諒解.
親愛的KuCoin用戶,KuCoin交易機器人一直致力於為廣大用戶帶來更優質的使用體驗,近期我們上線了多項更新邀您體驗.
货币监管的新行政命令,名为《关于确保负责任地发展数字资产的行政命令》。简单来说,该命令要求财政部、美国证券交易委员会和其他机构研究数字资产对消费者和市场稳定的潜在威胁,实质上为政府计划如何平衡消.
關於Gate.ioStartup免費空投計劃爲回饋平臺用戶,Gate.io上線“免費空投計劃”,在Startup區不定期進行區塊鏈項目的免費空投計劃.
Today’stopGate.ioLending&Single-AssetVaultminingpoolsareJASMY,OGN.