北京时间8月2日,成都链安链必应-区块链安全态势感知平台舆情监测显示,跨链通讯协议Nomad遭遇攻击,黑客获利约1.5亿美元。截止发稿前,根据DeFiLlama数据显示,Nomad代币桥中只剩下约5900美元左右。
关于本次攻击事件的来龙去脉,成都链安安全团队第一时间进行了分析。
PART01?
-
加密市场中首次发生的去中心化抢劫?
首先,我们先来认识本次故事主角——Nomad。
Nomad自称能提供安全的互操作性解决方案,旨在降低成本并提高跨链消息传递的安全性,与基于验证者的跨链桥不同,Nomad不依赖大量外部方来验证跨链通信,而是通过利用一种optimistic机制,让用户可以安全地发送消息和桥接资产,并保证任何观看的人都可以标记欺诈并保护系统。
派盾:KCT代币发生Rug Pull并归零,损失约607枚BNB:金色财经消息,派盾(PeckShield)监测显示,KCT代币发生Rug Pull,代币价格下跌100%,超607枚BNB转入Tornado.Cash。[2022/5/24 3:37:21]
而在4月13日,他们也以2.25亿美元估值完成高达2200万美元的种子轮融资,领投方为Polychain。对于一家初创项目而言,数千万美元种子轮融足可谓赢在起跑线上,但是本次攻击之后,不知道项目方会如何处理与“自救”。
Nomad官方推特表示,已得知此事,目前正在调查。
关于本次事件,在Web3领域,却引起了争议。
Terra研究员FatMan在推特上对Nomad遭遇攻击事件发表评论称:“在公共Discord服务器上弹出的一条消息称,任意一个人都能从Nomad桥上抢了3千到2万美元:所有人要做的就是复制第一个黑客的交易并更改地址,然后点击通过Etherscan发送。这是在真正的加密市场中首次发生的去中心化抢劫。”?
安全团队:ALG代币发生Rug Pull,损失约581.5 BNB:5月17日消息,据派盾监测,ALG代币发生Rug Pull,币价下跌99.95%,约581.5 BNB转入Tornado Cash。[2022/5/17 3:22:21]
事实的确如此。
根据Odaily星球日报的报道,在第一个黑客盗窃完成后,这条「成功」经验也在加密社区疯传,被更多用户模仿,趁火打劫。跨链通讯协议Nomad的资产被洗劫一空。
DeFi借贷平台Eco DeFi疑因私钥泄露损失约78万美元:据派盾消息,DeFi借贷平台Eco DeFi疑私钥泄露,耗尽借贷池资金,约1418 BNB,以550美元计价,损失约78万美元。[2021/12/29 8:10:29]
可能是因为过于心急,一些用户忘记使用马甲伪装,直接使用了自己的常用ENS域名,暴露无遗。目前已经有用户开始自发退款,以求避免被起诉。
PART02?
-
项目方在部署合约时犯了什么错导致被攻击?
本次攻击主要是项目方在部署合约时,把零(0x000000....)的confirmAt设置为1,导致任意一个未使用的_message都可以通过判断,并从合约中提取出对应资产。技术分析如下:
Wault Finance官方:稳定币WUSD遭遇闪电贷攻击,初步估计损失约为80万美元:8月4日消息,基于BSC的DeFi平台Wault Finance官方表示,其商业支持的稳定币WUSD遭遇闪电贷攻击,正在与3家审计公司进行调查,暂时禁用铸币。
此次攻击造成的损失初步估计约为80万美元,但90%的USDT抵押品以及所有矿池和资金库都如预期安全。资金库有约15万美元,将用于WEX回购以填补缺口。此次攻击导致交易额达到了1亿美元,也将用于更多回购。一旦修复了漏洞,稳定性机制也将恢复填充WUSD资金库,直到回到1美元。Wault上的其他所有内容都可以继续安全运行,没有问题。
此前消息, PeckShield预警显示,Wault Finance遭攻击,攻击者获利93万美元。[2021/8/4 1:34:12]
被攻击合约
0x5D94309E5a0090b165FA4181519701637B6DAEBA(存在漏洞利用的合约)
CertiK:Balancer遭黑客攻击损失约90万人民币,其他DeFi合约需警惕:6月29日北京时间凌晨2点03分,CertiK天网系统检查到在区块10355807处Balancer DeFi合约异常。此次攻击约获利90万人民币。
安全研究员迅速介入调查,攻击重现如下:
阶段0:攻击者从dYdX闪电贷处借款,获得初始WETH资金。
阶段1:攻击者使用WETH将Balancer中的STA尽可能买空,最大程度提高STA价格。
阶段2:攻击者用获得的STA多次买回WETH。每一次都用最小量的STA(数值为1e-18)进行购买,并利用Balancer内部漏洞函数gulp(),锁定STA的数目,控制STA对WETH的价格。重复多次该种买回操作,直到将Balancer中的WETH取空。
阶段3:换一种代币,用STA重复阶段2直到取空该种代币。阶段三重复了三次,一共有4种代币受到了损失WETH,WBTC, LINK和SNX。
阶段4:偿还dYdX闪电贷,离场。
CertiK判断攻击者是有经验的黑客团队在充分准备后的一次攻击尝试,有很大可能还会继续攻击其他DeFi合约。[2020/6/30]
0x88A69B4E698A4B090DF6CF5Bd7B2D47325Ad30A3(遭受损失的金库合约)
由于攻击交易过多,下面依靠其中一笔攻击交易分析为例进行阐述;
攻击的交易截图
1.通过交易分析,发现攻击者是通过调用(0x5D9430)合约中的process函数提取合约中的资金。
攻击细节截图
2.跟进process函数中,可以看到合约对_messageHash进行了判断,当输入的messages为0x000000....时,返回值却是true。
攻击细节截图
3.然后跟进acceptableRoot函数,发现_root的值为零(0x000000....)时,而confirmAt等于1,导致判断恒成立,从而攻击者可以提取合约中的资金。
攻击细节截图
?攻击细节截图
4.后续通过查看交易,发现合约在部署时,就已经初始零(0x000000....)的confirmAt为1,交易可见
攻击细节截图
攻击细节截图
PART03?
-
被盗资金进入,项目方还能找回吗?
针对跨链代币桥攻击导致损失一事,Nomad团队表示,“调查正在进行中,已经联系区块链情报和取证方面的主要公司协助。我们已经通知执法部门,并将夜以继日地处理这一情况,及时提供最新信息。我们的目标是识别相关账户,并追踪和追回资金。”
目前,成都链安安全团队正在使用链必追平台对被盗资金地址进行监控和追踪分析。
PART04?
-
总结:合约部署需要注意哪些问题?
针对本次事件,成都链安安全团队建议:项目方在合约部署前,需要考虑配置是否合理。部署后,应测试相关功能,是否存在被利用的风险,并且联系审计公司查看初始的参数是否合理。
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。