1. 背景介绍
随着区块链及链上程序的增长,多链资金转换需求迫切,跨链桥业务随之增加,有业务的地方就会有安全问题,跨链桥为用户提供便利的同时,可能也为黑客提供了另一扇大门,Poly Network攻击事件发生后,跨链桥安全问题也随之显露出来。
2. 什么是跨链桥?
区块链桥,也称为跨链桥,连接两条区块链,允许用户将加密货币从一条链发送到另一条链。
跨链桥通过在两个独立平台之间启用代币转移、智能合约和数据交换以及其他反馈和指令来进行资金跨链操作。

普通跨链桥运行如下:
貌似并不复杂的跨链资金转移操作,但在多个跨链桥项目中,不同步骤均发生过安全漏洞。
3. 跨链桥发生过哪些漏洞
4. 跨链桥常见漏洞分析
(1) ChainSwap 攻击事件
2021年7月,跨链资产桥梁项目ChainSwap遭到攻击,该跨链桥上的二十多个项目遭到攻击,损失了近 800 万美元资产,并使十多个项目暴跌 99%。
该攻击事件主要由于协议未对signatures合法性进行严格检查,导致攻击者使用自己生成的签名可进行签名交易。
Factory合约
上图receive方法主要功能是将用户跨链之后的资金转移给目标链用户地址,需要验证发送链的签名。当前需要验证的签名个数为1。
由于receive方法逻辑及调用的ecrecover,_decreaseAuthQuota方法未对调用的signatures做严格检查,攻击者传入了自己生成的签名,后续合约逻辑对signatures的映射值及其他计算时,也并未有严格判断,导致攻击者成功执行receive方法为自己转移资金签名。
Poly Network 攻击事件
2021年8月,跨链互操作协议 Poly Network 突遭黑客攻击,使用该协议的 O3 Swap 损失惨重,在以太坊、币安智能链、Polygon 三条网络上的资产几乎被洗劫一空,黑客在不到1小时时间内,分别盗走了 2.5 亿、2.7 亿、8500 万美元的加密资产,损失总额高达 6.1 亿美元。
该攻击事件主要由于中继链验证人公钥被替换。也就是跨链的中间验证人被攻击者替换为自己可控。
协议内部关系:
上图中,_executeCrossChainTx 方法未对传入参数做严格限制,导致攻击者传入toContract,method参数均由攻击者可控,由于协议内部关系,攻击者传入经过hash碰撞与putCurEpochConPubKeyBytes方法相同方法签名,成功调用EthCrossChainData 合约的 putCurEpochConPubKeyBytes 方法直接修改中继链验证人公钥为自己可控,之后利用该验证人签名恶意的资金转移,获取大量资金。
(4) Multichain(AnySwap) 攻击事件
2022年1月,Multichain官方声明协议跨链桥存在安全风险,部分代币存在被黑的风险,督促用户尽快取消授权。
事件核心原因:协议调用的底层代币合约没有实现 permit 方法,但包含回退功能,所以调用 permit 方法合约正常运行。
上图中anySwapOutUnderlyingWithPermit方法中,前三个参数均由调用者传入,也就是from,token等参数均由攻击者可控,当参数可控后,攻击者部署攻击合约,将受影响的代币合约地址设置为底层代币参数。核心问题是,由于WETH9不存在permit 方法,但会调用WETH9的fallback方法进行deposit操作,故调用不会发生错误(交易不会回滚),所以当用户将资金授权给协议后,攻击者会迅速将用户资金转移。
(5) Qubit Bridge 攻击事件
2022 年 1 月,Qubit Finance 跨链桥Ethereum-Binance 被黑客入侵,损失超过 8000 万美元。
核心问题:deposit方法中资金地址为address(0)时而safeTransferFrom未发生错误,导致存款功能正常执行。
上图中,deposit为正常存款方法,调用该方法中的IQBridgeHandler(handler).deposit时,当用户传入的resourceID映射tokenAddress地址为0地址时,后续的tokenAddress.safeTransferFrom(depositer, address(this), amount);转账会正常执行,导致方法及事件运行正常,调用者可以成功存款。
这里比较重要的是官方 tokenAddress的ETH为零地址是官方所为(官方已声明deposit功能为忽略的遗弃功能)。
Meter Bridge 攻击事件
2022 年 2 月 ,Meter.io 跨链协议遭到攻击,合约并没有阻止封装的 ERC20 代币与原生 gas 代币的直接交互,损失约 430 万美元。
事件核心问题:deposit方法进行存款时未验证WBNB存款情况,导致攻击者绕过判断条件不进行任何存款而正常获取资金。
上图中,deposit和depositETH方法均为存款方法,而deposit方法存款时,未验证存款为原生代币的情况。攻击者利用deposit存款时,传入WBNB地址,由于该方法未验证WBNB存款的情况,未进行资金存储转移,之后调用depositHandler.deposit方法成功绕过判断条件,最后攻击者利用该缺陷,成功获取大量资金。
(7) Wormhole 攻击事件
2022 年 2 月 ,Ethereum和Solana两大区块链的重要桥接“虫洞”(Wormhole)遭黑客攻击,损失超过3.2亿美元。
漏洞核心原因:verify_signatures调用的load_instruction_at方法中未验证instruction合法性,导致攻击者可伪造,从而利用验证签名获取资金。
上图中verify_signatures方法是跨链验证时所调用的签名方法,由于verify_signatures方法调用了load_instruction_at方法,load_instruction_at方法为协议更新后的废弃方法,该方法中未对传入的instruction做严格检查,导致攻击者传入了自己可控的值,攻击者利用该签名方法对自己的跨链请求进行签名,获取大量资金。
Li Finance 攻击事件
2022 年3 月,以太坊上分布式跨链协议Li.Finance 受到了攻击,攻击者执行了 37 次 call 注入,获取了多个钱包中约 60 万美元的资产(204 个 ETH)。
该攻击事件的核心问题是未对传入的外部数据进行严格限制,导致攻击者传入了自己可控call调用逻辑。
上图swapAndStartBridgeTokensViaCBridge 方法中,对传入的_swapData参数未进行严格限制,同样的LibSwap.swap调用中,也未对该值进行严格限制,导致swap方法中,_swapData可成功调用call方法进行恶意操作,攻击者利用该缺陷,进行多次call调用获取资金。
(9) Ronin Network 攻击事件
2022 年 3 月, Axie Infinity侧链Ronin验证器节点和 Axie DAO 验证器节点遭到破坏,导致在两笔交易中从 Ronin 桥接了 173,600 个以太坊和 2550 万美元的 USDC。
攻击发生原因:
Sky Mavis 的 Ronin 链目前由 9 个验证节点组成。为了识别存款事件或取款事件,需要九个验证者签名中的五个。攻击者控制了 Sky Mavis 的四个 Ronin 验证器和一个由 Axie DAO 运行的第三方验证器。( 2021 年11月 – 12 月,Axie DAO 允许 Sky Mavis 代表其签署各种交易,该事件停止后未撤销许可名单访问权限,攻击者获得了 Sky Mavis 系统的访问权限,并使用无Gas RPC 从 Axie DAO 验证器获取签名)。
5. 总结及建议
通过上述跨链桥攻击事件可以发现,从去年两个重要的跨链桥攻击到今年目前为止已发生多个跨链桥攻击事件,跨链桥攻击明显增多,被盗资金也颇为庞大,貌似黑客已经盯上了跨链桥这块肥肉。从表格总结来看,攻击主要发生在跨链之前和签名处,普遍均为合约漏洞,也存在官方马虎大意造成的被盗事件。
对于越来越多的跨链项目及项目合约安全,可遵循以下安全建议:
西湖断桥的由来
杭州西湖断桥位于杭州里西湖和外西湖的分水点上,一端跨着北山路,另一端接通白堤。 据说,早在唐朝断桥就已经建成,宋代称保佑桥,元代称段家桥。 断桥不仅以景享誉天下,更以情驰名人间:这里是《白蛇传》中几段重要故事情节的发生地——在这里,白娘子与许仙相识,同舟归城,借伞定情;水漫金山后又在此邂逅,言归于好……
在西湖古今诸多大小桥梁中,她的名气最大。 断桥之名得于唐朝。 其名由来,一说孤山之路到此而断,故名;一说段家桥简称段桥,谐音为断桥;传说白娘子与许仙断桥相会,确为断桥景物增添了浪漫色彩。 现在的断桥,是1941年改建,五十年代又经修饰。 桥的东北有碑亭,内立“断桥残雪”碑。 伫立桥头,放眼四望,远山近水,尽收眼底,是欣赏西湖雪景之佳地,为西湖十景之一,断桥位于里西湖和外西湖的分水点上,一端跨着北山路,另一端接通白堤。 断桥之名得于唐朝,其正名反而鲜为人知,当时是一座石桥,宋代称保佑桥,元代称段家桥。 在西湖古今诸多大小桥梁中,她的名气最大。 据说,早在唐朝断桥就已经建成,时人张祜《题杭州孤山寺》诗中就有“断桥”一词。
伫立雪霁西湖,举目四望,但见断桥残雪似银,冻湖如墨,黑白分明,格外动人心魄。
西湖断桥名字由来其名由来,众说纷纭,一说孤山之路到此而断,故名;一说段家桥简称段桥,谐音为断桥;一说古石桥上建有亭,冬日雪霁,桥阳面冰雪消融,桥阴面仍然玉砌银铺,从葛岭远眺,桥与堤断之感,得名“断桥残雪”。 传说白娘子与许仙断桥相会,确为断桥景物增添了浪漫色彩。 也有人说,南宋王朝偏安一隅,多情的画家取残山剩水之意,于是拟出了桥名和景名,后一种说法似更为可取。
断桥的典故西湖断桥,最早叫段家桥。
很早以前,西湖白沙堤,从孤山蜿蜿蜒蜒到这里,只有一座无名小木桥,与湖岸紧紧相连。 游人要到孤山去游玩,都要经过这座小木桥,日晒雨淋,桥板经常要烂断,游人十分不便。
桥旁有一间简陋的茅舍,住着—对姓段的夫妇。 两人心地善良,手脚勤快,男的在湖里捕鱼为生,女的在门口摆个酒摊,卖家酿土酒。 因酒味不佳,顾客很少上门,生意清淡。
一天,日落西山,夫妇俩刚要关门,来了一个衣衫褴褛的白发老人,说是远道而来,身无分文,要求留宿—夜。 段家夫妇见他年老可怜,热情地留他住下,还烧了一条刚从西湖里捕来的鲤鱼,打上一碗家酿土酒,款待老人。 老人也不客气,一连饮了三大碗,便倒在床上,呼呼入睡。
第二天早晨白发老人临别时,说道:“谢谢你们好心款待,我这里有酒药三颗,可帮助你们酿得好酒。 ”说罢,取出三颗红红的酒药,告别而去。
段家夫妇将老人的三颗酒药放在酿酒缸里,酿出来的酒,颜色猩红,甜醇无比,香气袭人。 从此,天天顾客盈门,段家猩红酒名扬杭城,生意一天比一天兴隆。 段家夫妇拆了茅舍,盖起了酒楼。 他们为了感谢白发老人,积蓄了一笔钱,准备好好答谢他。
岁月流逝,一晃三年。 这年冬天,西湖大雪,白发老人冒雪来到段家酒楼。 夫妇俩一见恩人来到,喜出望外,留老人长住他家。 然而老人第二天便要告别。 临别之时,段家夫妇取出三百两银子送给老人。 老人笑着推辞说:“谢谢你们夫妇—片好心,我这孤单老人,要这么多银钱何用?你们还是用在最要紧的地方吧!”说罢,便踏雪向小桥走去。 段家夫妇站在门口相送,只见老人刚跨上小木桥,脚下一滑,桥板断啦,老人也跌进了湖里。 夫妇俩急忙跑去相救,忽见白发老人立于湖面,如履平地,微笑着向他们挥挥手,漂然而去。
段家夫妇这才知道,白发老人不是凡人。 想起老人临别说的话,使用那笔银钱在原来的小木桥处,造起了一座高高的青石拱桥,还在桥头建了一座亭子。 从此,游西湖的人,再不怕路滑桥断啦。
乡亲父老怀念段家夫妇行善造桥的好事,便把这桥称为段家桥。 后来,因为“段”、“断”同音,便被称为断桥。
悬索桥和斜拉桥的区别
斜拉桥 ,又称斜张桥,是将桥面用许多拉索直接拉在桥塔上的一种桥梁,是由承压的塔,受拉的索和承弯的梁体组合起来的一种结构体系。 其可看作是拉索代替支墩的多跨弹性支承连续梁。 其可使梁体内弯矩减小,降低建筑高度,减轻了结构重量,节省了材料。 斜拉桥由索塔、主梁、斜拉索组成。 桥的主要承重并非它上面的汽车或者火车,而是它本身,也即我们看的的路面。 现在我们就分析这个:我们以一个索塔来分析。 索塔两侧是对称的斜拉索,通过斜拉索将索塔主梁连接在一起。 现在假设索塔两侧只有两根斜拉索,左右对称各一条, 这两根斜拉索受到主梁的重力作用,对索塔产生两个对称的沿着斜拉索方向的拉力,根据受力分析,左边的力可以分解为水平向向左的一个力和竖直向下的一个力;同样的右边的力可以分解为水平向右的一个力和竖直向下的一个力;由于这两个力是对称的,所以水平向左和水平向右的两个力互相抵消了,最终主梁的重力成为对索塔的竖直向下的两个力,这样,力又传给索塔下面的桥墩了。 斜拉索数量再多,道理也是一样的。 之所以要很多条,那是为了分散主梁给斜拉索的力而已。 斜拉桥作为一种拉索体系,比梁式桥的跨越能力更大,是大跨度桥梁的最主要桥型。 斜拉桥是由许多直接连接到塔上的钢缆吊起桥面,斜拉桥由索塔、主梁、斜拉索组成。 索塔型式有A型、倒Y型、H型、独柱,材料有钢和混凝土的。 斜拉索布置有单索面、平行双索面、斜索面等。 第一座现代斜拉桥始建于1955年的瑞典,跨径为182米。 目前世界上建成的最大跨径的斜拉桥为法国的诺曼底桥,主跨径为856米。 1993年建成的上海杨浦大桥是我国目前最大的斜拉桥,主跨径为602米斜拉桥是将梁用若干根斜拉索拉在塔柱上的桥。 它由梁、斜拉索和塔柱三部分组成。 斜拉桥是一种自锚式体系,斜拉索的水平力由梁承受、梁除支承在墩台上外,还支承在由塔柱引出的斜拉索上。 按梁所用的材料不同可分为钢斜拉桥、结合梁斜拉桥和混凝土梁斜拉桥。 斜拉桥是我国大跨径桥梁最流行的桥型之一。 目前为止建成或正在施工的斜拉桥共有3O余座,仅次于德国、日本,而居世界第三位。 而大跨径混凝土斜拉桥的数量已居世界第一。 50年代中期,瑞典建成第一座现代斜拉桥,40多年来,斜拉桥的发展,具有强劲势头。 我国70年代中期开始修建混凝土斜拉桥,改革开放后,我国修建斜拉桥的势头一直呈上升趋势。 我国一直以发展混凝土斜拉桥为主,近几年我国开始修建钢与混凝土的混合式斜拉桥,如汕头石大桥,主跨518m;武汉长江第三大桥,主跨618m。 钢箱斜拉桥如南京长江第二大桥南汊桥,主跨628m;武汉军山长江大桥,主跨460m。 前几年上海建成的南浦(主跨423m)和杨浦(主跨6O2m)大桥为钢与混凝土的结合梁斜拉桥。 我国斜拉桥的主梁形式:混凝土以箱式、板式、边箱中板式;钢梁以正交异性极钢箱为主,也有边箱中板式。 现在已建成的斜拉桥有独塔、双塔和三塔式。 以钢筋混凝土塔为主。 塔型有H形、倒Y形、A形、钻石形等。 斜拉索仍以传统的平行镀锌钢丝、冷铸锚头为主。 钢绞线斜拉索目前在汕头石大桥采用。 钢绞线用于斜拉索,无疑使施工操作简单化,但外包PE的工艺还有待研究。 斜拉桥的钢索一般采用自锚体系。 近年来,开始出现自锚和部分地锚相结合的斜拉桥,如西班牙的鲁纳(Luna)桥,主桥440m;我国湖北郧县桥,主跨414m。 地锚体系把悬索桥的地锚特点融于斜拉桥中,可以使斜拉桥的跨径布置更能结合地形条件,灵活多样,节省费用。 斜拉桥的施工方法:混凝土斜拉桥主要采用悬臂浇筑和预制拼装;钢箱和混合梁斜位桥的钢箱采用正交异性板,工厂焊接成段,现场吊装架设。 钢箱与钢箱的连接,一是螺栓,二是全焊,三是栓焊结合。 一般说,斜拉桥跨径300~1000m是合适的,在这一跨径范围,斜拉桥与悬索桥相比,斜拉桥有较明显优势。 德国著名桥梁专家认为,即使跨径14O0m的斜拉桥也比同等跨径悬索桥的高强钢丝节省二分之一,其造价低30%左右。 斜拉桥发展趋势:跨径会超过10O0m;结构类型多样化、轻型化;加强斜拉索防腐保护的研究;注意索力调整、施工观测与控制及斜拉桥动力问题的研究。 悬索桥,悬索桥(吊桥)(suspensionbridge)指的是以通过索塔悬挂并锚固于两岸(或桥两端)的缆索(或钢链)作为上部结构主要承重构件的桥梁。 其缆索几何形状由力的平衡条件决定,一般接近抛物线。 从缆索垂下许多吊杆,把桥面吊住,在桥面和吊杆之间常设置加劲梁,同缆索形成组合体系,以减小活载所引起的挠度变形。 位于美国旧金山的金门大桥,是非常典型的悬索桥设计。 悬索桥是桥梁的一种,悬索桥的主要承力部分是桥两端的两根塔架,在这两根塔架间的悬索拉住桥的桥面。 为了保障悬索桥的稳定性,两根塔架外的另一面也有悬索,这些悬索保障塔架本身受的力是垂直向下的。 这些悬索连接到桥两端埋在地里的锚锭中。 有些悬索桥的塔架外还有两个小一些的桥面,它们可以由小一些的悬索拉住,或由主索拉住。 悬索桥的构造方式是19世纪初被发明的,现在许多桥梁使用这种结构方式。 现代悬索桥,是由索桥演变而来。 适用范围以大跨度及特大跨度公路桥为主,是当今跨度超过1000米的唯一桥式。 又名吊桥,是以承受拉力的缆索或链索作为主要承重构件的桥梁。 悬索桥由悬索、索塔、锚碇、吊杆、桥面系等部分组成。 悬索桥的主要承重构件是悬索,它主要承受拉力,一般用抗拉强度高的钢材(钢丝、钢绞线、钢缆等)制作。 由于悬索桥可以充分利用材料的强度,并具有用料省、自重轻的特点,因此悬索桥在各种体系桥梁中的跨越能力最大,跨径可以达到1000米以上。 1981年建成的英国恒比尔悬索桥的跨径为1410米,是目前世界上跨径最大的桥梁。 悬索桥的主要缺点是刚度小,在荷载作用下容易产生较大的挠度和振动,需注意采取相应的措施。 按照桥面系的刚度大小,悬索桥可分为柔性悬索桥和刚性悬索桥。 柔性悬索桥的桥面系一般不设加劲梁,因而刚度较小,在车辆荷载作用下,桥面将随悬索形状的改变而产生S形的变形,对行车不利,但它的构造简单,一般用作临时性桥梁。 刚性悬索桥的桥面用加劲梁加强,刚度较大。 加劲梁能同桥梁整体结构承受竖向荷载。 除以上形式外,为增强悬索桥刚度,还可采用双链式悬索桥和斜吊杆式悬索桥等形式,但构造较复杂。 桥面支承在悬索(通常称大揽)上的桥称为悬索桥。 英文为Suspension Bridge,是“悬挂的桥梁”之意,故也有译作“吊桥”的。 “吊桥”的悬挂系统大部分情况下用“索”做成,故译作“悬索桥”,但个别情况下,“索”也有用刚性杆或键杆做成的,故译作“悬索桥”不能涵盖这一类用桥。 和拱肋相反,悬索的截面只承受拉力。 简陋的只供人、畜行走用的悬索桥常把桥面直接铺在悬索上。 通行现代交通工具的悬索桥则不行,为了保持桥面具有一定的平直度,是将桥面用吊索挂在悬索上。 和拱桥不同的是,作为承重结构的拱肋是刚性的,而作为承重结构的悬索则是柔性的。 为了避免在车辆驶过时,桥面随着悬索一起变形,现代悬索桥一般均设有刚性梁(又称加劲梁)。 桥面铺在刚性梁上,刚性梁吊在悬索上。 现代悬索桥的悬索一般均支承在两个塔柱上。 塔顶设有支承悬索的鞍形支座。 承受很大拉力的悬索的端部通过锚碇固定在地基中,个别也有固定在刚性梁的端部者,称为自锚式悬索桥。
终极三国大结局
57集
我已经全看完了 (黑客技术)
修他们打败孙坚后,还要和没有死了的董卓开战
东城卫+五虎将+强辩团+劲香团+大小桥+曹操+孙策+吕布VS超级魔化人董卓
画面相当壮观!不行你等着看吧!!!
发表评论