作者:秦晓峰,ODAILY星球日报
北京时间今天上午,BNB??Chian?跨链?桥BSCTokenHub遭遇攻击。黑客利用跨链桥漏洞分两次共获取200万枚BNB,价值约5.66亿美元。和BNB链之间的跨链桥。)
消息一出,BNB价格在2小时内一度下跌近5%,跌至278.7美元低点,现报价284美元,24小时跌幅4.24%。
根据BNBChain的说法,从BSC提取的资金的初步估计在1亿美元至1.1亿美元之间。并且,Tether也在第一时间将黑客地址列入黑名单。“感谢社区和我们的内部和外部安全合作伙伴,估计700万美元已经被冻结。”
Binance?创始人??CZ在社交媒体上发文表示,目前币安?已要求所有验证者暂停BSC网络,用户的资金是安全的,对于给用户带来的不便深表歉意,并将相应地提供进一步的更新。
针对具体的攻击方式,Paradigm??研究员samczsun在社交媒体上发文表示,链上数据及相关代码显示,BSC跨链桥的验证方式存在BUG,该BUG可能允许攻击者伪造任意消息;本次攻击中,攻击者伪造信息通过了BSC跨链桥的验证,使跨链桥向攻击者地址发送了200万枚BNB。
Beosin:Avalanche链上Platypus项目损失850万美元攻击事件解析:2月17日,据区块链安全审计公司Beosin旗下Beosin EagleEye安全风险监控、 预警与阻断平台监测显示,Avalanche链上的Platypus项目合约遭受闪电贷攻击,Beosin安全团队分析发现攻击者首先通过闪电贷借出4400万USDC之后调用Platypus Finance合约的deposit函数质押,该函数会为攻击者铸造等量的LP-USDC,随后攻击者再把所有LP-USDC质押进MasterPlatypusV4合约的4号池子当中,然后调用positionView函数利用_borrowLimitUSP函数计算出可借贷余额,_borrowLimitUSP函数会返回攻击者在MasterPlatypusV4中质押物品的价值的百分比作为可借贷上限,利用该返回值通过borrow函数铸造了大量USP(获利点),由于攻击者自身存在利用LP-USDC借贷的大量债务(USP),那么在正常逻辑下是不应该能提取出质押品的,但是MasterPlatypusV4合约的emergencyWithdraw函数检查机制存在问题,仅检测了用户的借贷额是否超过该用户的borrowLimitUSP(借贷上限)而没有检查用户是否归还债务的情况下,使攻击者成功提取出了质押品(4400万LP-USDC)。归还4400万USDC闪电贷后, 攻击者还剩余41,794,533USP,随后攻击者将获利的USP兑换为价值8,522,926美元的各类稳定币。[2023/2/17 12:12:32]
samczsun分析文章如下:
Etherscan现支持以太坊域名服务ENS反向解析:5月12日消息,以太坊域名服务(Ethereum Name Service,简称ENS)发推称,Etherscan目前支持ENS反向解析。ENS反向解析可使用户的ENS域名成为跨DApp的以太坊账户的便携式用户名。除Etherscan外,使用此功能的其他DApp包括Uniswap、Opensea、Aavegotchi和Snapshot Labs等。目前,要使用该服务,用户必须手动启用反向解决,之后将更改为自动启动;DApp须在其UI代码中使用PR。
注:正向解析(Forward resolution,FR)是将一个ENS域名解析到以太坊地址等资源,反向解析(Reverse resolution,RR)是指将一个以太坊地址解析到一个ENS域名。[2021/5/12 21:52:40]
五小时前,攻击者从BinanceBridge窃取了200万BNB。此后我一直在与多方密切合作致力于揭示这一切如何发生的。
DeFiBox上线Mdex 合约解析功能:据官方公告,Heco 数据合作平台 DeFiBox 现已上线Heco项目Mdex 的合约解析功能,用户通过 DeFiBox 可以直观查看收益率,并根据相关数据进行策略调整,提高了用户体验。[2021/1/27 13:38:26]
事情的起因是@zachxbt突然把攻击者的地址发给了我。当我点击进去的时候,我看到了一个价值数亿美元的账户;要么是有项目rug跑路,要么就是正在进行大规模的黑客攻击。
一开始,我以为@VenusProtocol又被黑了。然而,很快我就确定了攻击者“真的”向Venus存入了超过2亿美元。这时我就需要弄清楚这些资金的来源。
答案是,攻击者以某种方式说服了币安跨链桥,直接给他们发送了1,000,000BNB,而且是两次。
分析 | 杯柄形态ENJ最高涨幅83% 盘面解析:金色分析师:今日山寨币ENJ最高涨幅83%,消息面上,ENJ确定成为三星Galaxy S10手机的合作伙伴。从盘面上看,小时图币价在未启动前一直处于上升趋势中,前期已经涨了一波,缩量调整回落,然后放量上攻,到达前期高处时候,又再次缩量调整,然后在放量上攻突破前期高点,然后币价进入直线拉升趋势,营造杯状带柄形态。[2019/3/8]
要么币安推出Web3有史以来最大的“礼包”,要么攻击者发现了一个严重的漏洞。我首先将攻击者的交易与合法提款进行比较。我注意到的第一件事是攻击者使用的高度始终相同——110217401,而合法提款使用的高度要大得多,例如270822321。
动态 | 日本Catabira推出基于区块链的数据解析平台:据Prtimes消息,日本信息服务商Catabira宣布推出基于区块链的商业服务级数据解析平台Catabira Insights For Blockchain,将利用区块链技术不可篡改的特性保证调查数据的真实性。[2018/11/8]
我还注意到攻击者的证明明显短于合法提款的证明。这两个事实使我确信,攻击者已经找到了一种方法来伪造该特定区块的证明。现在,我必须弄清楚这些证明是如何工作的。
在Binance上,有一个特殊的预编译合约用于验证IAVL树。如果您对IAVL树一无所知,也不要担心,因为有95%的内容我都不懂。幸运的是,你和我所需要的只是剩下的5%。
基本上,当你验证一个IAVL树时,你指定了一个“操作”列表。币安跨链桥通常需要两个操作:“iavl:v”操作和“multistore”操作。以下是它们的实现:https://github.com/bnb-chain/bsc/blob/46d185b4cfed54436f526b24c47b15ed58a5e1bb/core/vm/lightclient/multistoreproof.go#L106-L125
为了伪造证明,我们需要两个操作都成功,并且我们需要最后一个操作返回一个固定值。
通过查看?implementation,我们可以发现,操纵根哈希是不可能的,或者至少非常困难。这意味着我们需要我们的输入值等于其中一个提交id。
“multistore”操作的输入值是“iavl:v”操作的输出值。这意味着我们想以某种方式控制这里的根变量,同时仍然通过值验证。
那么如何计算根哈希?它发生在一个名为COMPUTEHASH的函数中。在非常高的层次上,它递归地遍历每条路径和叶节点并进行大量的哈希运算。
https://github.com/cosmos/iavl/blob/de0740903a67b624d887f9055d4c60175dcfa758/proof_range.go#L237-L290
实际上实现细节并不重要,重要的是,由于哈希函数的工作方式,我们基本上可以肯定地说,任何(path,nleaf)对都会产生唯一的哈希。如果我们想伪造证据,这些就得保持不变。
查看证明在合法交易中的布局方式,我们看到它的路径很长,没有内部节点,只有一个叶节点,这个叶节点包含我们恶意载荷的哈希值!如果我们不能修改这个叶节点,那么我们需要添加一个新的叶节点。
当然,如果我们添加一个新的叶节点,我们还需要添加一个新的内部节点来匹配。
现在我们只需要面对最后一个障碍。我们如何真正让COMPUTEHASH返回我们想要的根哈希?好吧,请注意,最终我们将需要一个包含非零右哈希的路径。当我们找到一个匹配时,我们断言它与中间根哈希匹配。
让我们稍微检测一下代码,这样我们就可以弄清楚我们需要什么哈希,然后剩下的就是把它们放在一起,我们将采用合法证明并对其进行修改,以便:
1)我们为伪造的有效负载添加一个新叶节点;
2)我们添加一个空白内部节点以满足证明者;
3)我们调整我们的叶节点以使用正确的根哈希提前退出
https://gist.github.com/samczsun/8635f49fac0ec66a5a61080835cae3db…
值得注意的是,这不是攻击者使用的确切方法。他们的证明路径要短得多,我不确定他们究竟是如何生成的。但是,漏洞利用的其余部分是相同的,我相信展示了如何从头开始构建它是有价值的。
总之,币安跨链桥验证证明的方式存在一个错误,该错误可能允许攻击者伪造任意消息。幸运的是,这里的攻击者只伪造了两条消息,但损害可能要严重得多。
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。