加密世界的高危地带:跨链桥有哪些常见漏洞?_DYDX:ARK

原标题:《Cross-chainbridgevulnerabilitysummary》

原作者:lunaray

编译:ChinaDeFi

随着区块链和链上项目的增长,对多链项目的需求正在变多,跨链桥业务也相应的在增加。哪里有生意,哪里就会有安全问题。跨链桥在为用户提供便利的同时,也为黑客提供了便利,PolyNetwork被攻击后,跨链桥的安全问题也随之出现。

什么是跨链桥?

区块链桥,也称为跨链桥,其连接两个区块链,允许用户从一个链向另一个链发送加密货币。

跨链桥通过两个独立平台之间的代币转账、智能合约和数据交换等其他反馈和指令,实现了资金的跨链操作。

一种常见的跨链桥的操作如下:

用户将资产A发送到原链上的一个存储地址,并支付过桥费;

资产A被智能合约中随机选择的验证者或受信任的托管人锁定;

在目标链上发布相同数量的资产A1,并将资产A1发送到目标链上的用户地址。

跨链桥存在漏洞

跨链桥常见漏洞

ChainSwap攻击事件:

谷歌计划在其旗舰搜索引擎中添加对话式人工智能功能:金色财经报道,谷歌CEO桑达尔·皮查伊表示,谷歌计划在其旗舰搜索引擎中添加对话式人工智能功能,以引导这家科技公司应对来自ChatGPT等聊天机器人的竞争以及更广泛的商业压力。[2023/4/6 13:48:36]

2021年7月,跨链资产桥项目ChainSwap遭到攻击。跨链桥上的二十多个项目受到攻击,损失了近800万美元的资产,导致十多个项目暴跌99%。

这种攻击主要是由于该协议没有严格检查签名的有效性,攻击者可以使用自己生成的签名对交易进行签名。

Factory合约

上图中接收方法的主要功能是将用户跨链后的资金转移到目标链的用户地址,需要验证发送链的签名。当前待验证签名个数为1。

由于接收方法的逻辑和名为ecrecover和_decreaseAuthQuota方法并不严格检查签名,攻击者使用了自己产生的签名,但后续合约逻辑没有严格判断映射值签名和其他计算。使攻击者成功地执行接收方法,为自己签名转账资金。

PolyNetwork攻击事件

2021年8月,跨链互操作协议PolyNetwork突然遭到黑客攻击。使用该协议的O3Swap遭受了严重的损失。以太坊、币安智能链、Polygon三大网络上的资产几乎被洗劫一空。1小时内,分别有2.5亿、2.7亿、8500万美元的加密资产被盗,总损失高达6.1亿美元。

CryptoFed要求与SEC就禁止销售代币令进行对话:1月19日消息,美国证券交易委员会(SEC)于2022年11月禁止CryptoFed DAO LLC注册和销售代币,而CryptoFed在听证会上表示曾寻求与SEC进行对话但并未获得答复。

CryptoFed称,SEC选择直接禁止而不是为其提供机会来处理所提交的文件并解决问题,是对其进行不公平处理。(Theblock)[2023/1/19 11:20:19]

这种攻击主要是由于中继链验证者的公钥被替换造成的。即由攻击者代替跨链的中间验证者,由攻击者自己控制。

协议内部关系:

中继链验证者的公钥存在于EthCrossChainData合约中;

EthCrossChainData合约所有者是EthCrossChainManager合约;

EthCrossChainData合约的putCurEpochConPubKeyBytes方法可以修改中继链验证者角色。

EthCrossChainManager合约:

在上面的图中,_executeCrossChainTx方法没有对传入的参数施加严格的限制,这导致攻击者传入toContract,方法参数被攻击者控制。由于协议的内部关系,攻击者在哈希冲突后传入与putCurEpochConPubKeyBytes方法相同的方法签名。成功调用EthCrossChainData合约的putCurEpochConPubKeyBytes方法,直接修改中继链验证者的公钥,使其变得可控,然后利用验证者签署恶意的进行资金转移,获取了大量资金。

火币论坛对话汪弘彬:从技术层面来说,区块链将在金融领域发挥领先作用:新加坡时间12月30日下午,欧洲货币机构投资者集团大中华区CEO汪弘彬做客火币论坛,以“回顾与展望,从疫情到复苏”为主题,与火币商务副总裁Ciara探讨在疫情的持续影响下,企业该如何进行数字化转型。

汪弘彬认为,疫情推动了数字浪潮的发展,从技术层面来说,区块链和加密货币行业将在金融领域发挥领先作用,并且会迅速成长为不同于大数据、人工智能和物联网的另一种新技术,未来势必会有很大的发展空间。比特币在2020年表现突出。但如果比特币要成长为更成熟的资产类别的话,必须要经历一系列的周期,比特币至今还没有一个完整的周期。成熟的机构投资者要了解这一点,然后再进入这个市场。

“据我个人观察,比特币的资产类别变得愈来愈清晰了,这会吸引越来越多的机构进入这个市场,但我们还是要从宏观角度来看比特币整体周期的发展。但从长远来看,我对这类资产很乐观。”汪弘彬最后总结道。[2020/12/31 16:08:51]

Multichain(AnySwap)攻击事件

2022年1月,Multichain正式声明协议的跨链桥存在安全风险,部分代币存在被黑客攻击的风险,并敦促用户尽快取消授权。

火币“DeFi预言家”项目对话:Terra基于费用模型搭建网络生态:8月25日,火币全球站“DeFi预言家”活动正式启动,邀请到活动中四个DeFi项目线上对话。来自Terra项目生态发展负责人Daniel Hwang表示,Terra的运行基于费用模型,其生态系统网及络基于费用模型有很大的优势。Daniel在分享中介绍,目前Terra的累计交易收入排名第三,仅次于比特币和以太坊,迄今为止已超过430万美元。其中Terra验证者获得的奖励超过了80万美元。相比于通货膨胀模型,Terra基于费用模型的重要之处在于它呈现的是客观估值。从CHAI应用程序来看,实际消费者对商家购买的真实外部价值可以在区块链上呈现。这些真实的交易费用对实际估值和网络安全至关重要。[2020/8/26]

事件的核心原因是:协议调用的底层代币合约没有实现permit方法,但包含一个fallback函数,因此调用permit方法的合约正常运行。

左边是AnyswapV4Router合约,右边是WETH9合约。

在上图中的AnySwapOutUnderlyingWithPermit方法中,前三个参数都是由调用者传入的,也就是说代币和其他参数都是攻击者控制的。当参数可控时,攻击者部署攻击合约来转移受影响的代币。合约地址被设置为基础代币参数。

星云创始人兼CEO徐义吉出席了贵州国家数博会“区块链应用高峰论坛暨DemoDay对话”:5月28日星云链创始人徐义吉在贵州举办的中国国际大数据产业博览会区块链应用高峰论坛参与对话。他和其他与会嘉宾一同针对“怎么发现并打造优秀的区块链应用项目”进行了讨论。在发言中他提到,区块链本质是对数据的确权,有些项目是重资本的,并不特别侧重真正的开发者和用户。一个区块链系统想要真正的发展,一定要在用户和开发者身上发生变化。星云认同数据的价值和应用的价值,并围绕这一点打造了星云的价值尺度、原生激励和自进化三个特点,希望能让更多真正有趣有用的应用在星云链上产生。星云链(NAS)是致力于构建可持续升级的良性生态3.0公链。(已于3月29号主网上线)[2018/5/28]

核心问题是由于WETH9没有permit方法,但是会调用WETH9的fallback方法进行充值操作,所以其不会有错误的调用(交易不会回滚),也就是说,当用户授权到协议时,攻击者会很快转移用户资金。

QubitBridge攻击事件

2022年1月,QubitFinance跨链桥以太坊-币安被黑客攻击,损失超过8000万美元。

核心问题:当deposit方法中的资金地址为address(0)时,不会出现safeTransferFrom错误,导致deposit功能正常执行。

QBridge合约

上图中,存款是一种正常的存款方式。当在此方法中调用IQBridgeHandler(handler).deposit时,当用户传入的resourceID映射tokenAddress地址为0地址时,后续的tokenAddress.safeTransferFrom(depositer,address(this),amount);转账将正常执行,导致方法和事件的正常运行,调用者可以成功进行存款。

这里更重要的是,官方tokenAddress的ETH0地址是官方所做的(官方已经声明存款功能是一个被忽略的废弃功能)。

MeterBridge攻击分析

在2022年2月,Meter.io跨链协议并未阻止封装的ERC20代币与原生gas代币的直接交互,导致损失约430万美元。

该事件的核心问题是:存款方法在进行存款时不验证WBNB的存款情况,导致攻击者绕过判断条件,不存款也可以正常获取资金。

Bridge合约

在上图中,deposit和depositETH方法都是存款方法,但是当用deposit方法存款时,并没有验证该存款是否为原生代币。当攻击者进行存款时,传入WBNB地址。该方法不验证WBNB存款,之后调用deposthhandler.deposit方法成功绕过判断条件。最后,攻击者利用该漏洞成功获取大量资金。

Wormhole攻击分析

2022年2月,以太坊和Solana两大区块链的重要桥(Wormhole)被黑客攻击,损失超过3.2亿美元。

该漏洞的核心原因是:verify_signatures调用的load_instruction_at方法没有验证指令的有效性,攻击者可以通过伪造验证签名来获取资金。

verify_signature.rs接口合约

上图中的verify_signatures方法是跨链验证过程中调用的签名方法。由于verify_signatures方法调用load_instruction_at方法,所以在协议更新后,load_instruction_at方法是一个废弃的方法。这种方法对传入的指令没有严格的检查,这就导致攻击者在传入一个可控值后,利用这种签名方式对自己的跨链请求进行签名,获得大量资金。

Li.Finance攻击分析

2022年3月,以太坊上的分布式跨链协议Li.Finance遭到攻击。攻击者进行了37次调用传入,在多个钱包中获得了约60万美元的资产(204ETH)。

这种攻击的核心问题是对传入的外部数据没有严格的限制,导致攻击者传入自己的可控调用逻辑。

CBridgeFacet合约

上图中的swapAndStartBridgeTokensViaCBridge方法中,传入的_swapData参数没有严格限制。在同一个LibSwap.swap调用中,该值不受严格限制。因此,在swap方法中,_swapData可以成功地调用call方法来执行恶意操作。攻击者利用此漏洞进行多次调用以获取资金。

RoninNetwork攻击分析

在2022年3月,AxieInfinity侧链Ronin验证者节点和AxieDAO验证者节点被破坏,导致在两笔交易中从Ronin桥接了173600ETH和2550万美元的USDC。

攻击原因:

SkyMavis的Ronin链目前由9个验证者组成。为了识别存款事件或取款事件,需要9个验证者中的5个签名。攻击者控制了四个SkyMavis的Ronin验证者和一个由AxieDAO运行的第三方验证者。(2021年11月至12月,AxieDAO允许SkyMavis代表其签署各种交易,在事件停止后没有撤销白名单访问权限,攻击者获得了对SkyMavis系统的访问权限,并使用来自AxieDAO验证器的gaslessRPC来获取签名)。

总结和建议

从以上跨链桥攻击事件可以发现,从去年到今年已经发生了几次跨链桥攻击。跨链桥攻击的数量明显在增加,被盗资金也相当多。黑客已经盯上了跨链桥这块肥肉。从总结来看,攻击主要发生在跨链前和签名处,一般都是合约漏洞,也有由于官方疏忽造成的盗窃事件。针对越来越多的跨链项目和项目合约安全,建议如下:

在项目上线前完成合约安全审计

合约调用接口需要严格检查其适配性

版本更新时,需要重新评估相关接口和签名的安全性

需要对跨链签名者进行严格的审查,以确保签名不受恶意人员的控制

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

金智博客

[0:15ms0-3:980ms