木星链 木星链
Ctrl+D收藏木星链
首页 > 火星币 > 正文

HAI:SharkTeam:十大智能合约安全威胁之重放攻击

作者:

时间:1900/1/1 0:00:00

重放攻击是把原链网络上的交易拿到目标链网络上使用

问:我们常提到的智能合约漏洞真的是实际中威胁最大、发生最频繁的安全漏洞吗?

答:完全不是那样。例如“溢出”、“外部调用”等常提到的智能合约安全漏洞并不是最常发生,威胁最大的。

到底哪些安全威胁从发生频率和危害性上能称为Top10的呢?SharkTeam合约安全系列课程之[十大智能合约安全威胁]和您一起讨论和深入。第十课[详解重放攻击]。

一、什么是重放攻击

重放攻击是把原链网络上的交易拿到目标链网络上使用,即一笔交易重复执行,我们根据类型可以分为交易重放和签名重放。

交易重放是将原链上的交易一成不变放到目标链上,重放过后交易在目标链上可以正常执行并完成交易验证。

以太坊JavaScript库Ethers.js推出Shanghai升级前的测试网Shandong:10月16日消息,以太坊JavaScript库Ethers.js推出Shanghai升级前的测试网Shandong。这是与EF DevOps合作运行的实验性测试网,其激活了一组选定为 Shanghai 升级的 EIP(包括激活信标链取款功能的 EIP-4895),可用于早期的客户端测试。[2022/10/16 14:29:21]

签名重放利用私钥签名的消息进行重放,重放过程中无需像交易重放那样去重放整个交易,而是重放相应的签名信息。

在实施EIP 155后,交易签名带有chainid,即链与分叉链之间的标识符。由于chainid不同,交易重放无法完成,签名重放可以间接完成。在以太坊完成分叉后,ETHW主网出现数起重放攻击事件,让我们回顾一下这些攻击事件前因后果。

二、攻击事件分析

2.1 Optimism

Multiverse Labs在阿联酋推出元宇宙城市Sharjahverse:金色财经报道,人工智能生态系统Multiverse Labs在阿联酋(UAE)推出了一个新的元宇宙城市,阿联酋称此举可以加强该地区的旅游业。这个新的元宇宙城市被称为Sharjahverse,Multiverse Labs将其描述为一个“逼真的、物理学上准确的”元宇宙,涵盖了该国1,000平方英里的面积。

沙迦商业和旅游发展局(SCTDA)是负责促进该国旅游业的主要政府机构,这个元宇宙城市得到了该部门的支持。沙迦商业和旅游发展局主席Khalid Jasim Al Midfa说,这项新举措旨在改变“大众市场的旅游业,使其朝着下一代可持续发展的方向发展”。(Cointelegraph)[2022/10/11 10:30:48]

2022年6月9日消息,据Optimism与加密货币做市商 Wintermute 透露,2000万个Optimism代币被黑客盗取。重放攻击过程如下:

(1)5月27日,Optimism地址0x2501向Optimism/L2上的0x4f3a地址转账2000万OP,0x4f3a地址在Ethereum/L1上是Wintermute的多签合约地址,但此时在Optimism/L2上面并没有部署合约;

NFT交易平台ShardingDAO将于明日启动第二阶段挖矿合约升级:3月30日消息,集NFT、AMM和DAO于一体的NFT交易平台ShardingDAO发推称,明天将启动第二阶段挖矿的合约升级,这不会对用户的前端页面产生任何影响。[2021/3/30 19:29:38]

(2)6月1日,黑客地址0x8bcf部署合约0xe714。

(3)6月5日,黑客通过重放Ethereum/L1上的交易创建了Gnosis Safe: Proxy Factory 1.1.1合约,其地址与Ethereum/L1上一样;然后地址0x60b2通过合约0xe714部署了多签合约0x4f3a,合约所有权归黑客所有,因此5月27日转入的2000万OP被黑客盗取。在Gnosis Safe: Proxy Factory 1.1.1合约中,其中创建代理合约函数createProxy如下:

CoinShares研究主管:3月份价格暴跌为矿商提前做好了减半准备:CoinShares研究主管Chris Bendikson表示,他认为最近3月份的价格暴跌为矿业公司提前做好了减半的准备,这将减少减半可能对其盈利能力造成的突然影响,因为设备陈旧的人已经被迫退出或升级。他表示,在减半之后,再加上可能几个月的潜在风险波动,采矿业将处于更有利的地位,整体成本基础更低。(Cointelegraph)[2020/4/9]

Gnosis Safe: Proxy Factory 1.1.1合约使用的是0.5版本的Solidity,使用new来创建合约时使用的是create命令,而不是create2。使用create命令创建合约,合约地址是msg.sender以及nonce来计算的。在Ethereum/L1上面,创建多签合约0x4f3a的msg.sender就是Gnosis Safe: Proxy Factory 1.1.1的地址,黑客在Optimism/L2通过重放交易来创建于Gnosis Safe: Proxy Factory 1.1.1合约的主要目的就是为了保证在Optimism/L2上创建合约0x4f3a的msg.sender与在Ethereum/L1上一致,那么黑客可以很方便的通过智能合约(合约0xe714)调用createProxy函数来创建出地址是0x4f3a的合约。

Shapeshift CEO:比特币与央行一样少有人知道其如何运作 却一直在被使用:Shapeshift的首席执行官Erik Voorhees在其社交媒体发文称:“现在有许多人质疑比特币是如何运作的,并且因为比特币的不确定性而远离它。然而与此同时,这些人中没有一个人知道中央银行的业务是如何运作的,但却毫无疑问地一直在使用它。[2018/3/22]

(4)6月5日,多签合约0x4f3a在接收到2000万OP后,将100万OP转账给黑客地址0x60b2,然后将100万OP兑换成了720.7 Ether。

(5)6月9日,合约0x4f3a将其中的100万OP转账给了账户地址0xd8da, 其他的1800万OP仍然在合约0x4f3a中。

本次攻击根本原因是:交易重放、Solidity旧版本漏洞以及主链和侧链交易签名验证等综合因素

2.2 Omni

2022年9月18日,以太坊合并完成后,PoW链遭到PoS链上交易的重放攻击,根本原因是网桥未正确读取并验证区块链的chainid。攻击者首先通过Gnosis链的Omni跨链桥转移了200 WETH,然后在PoW链上重放了相同的消息,获得了额外的200 ETHW。

(1)PoS链交易hash:0xbddb0cc8bc9949321e1748f03503ed1a20dd618fbf0a51dc5734c975b1f8bdf5

(2)PoW链交易hash:0x9c072551861ce384203516f4d705176a2d2e262d5b571d853467425f1a861fb4

我们对比发现两笔交易访问的合约相同,并且inputdata完全相同,即调用了同一个合约的同一个函数并且参数相同,根据相同的方法签名ID 0x23caab49可知,黑客调用safeExecuteSignaturesWithAutoGasLimit函数。

在正常的交易中,我们通过nonce来进行排序交易,避免重复交易。在跨链中,我们会根据chianid进行识别链的类型,比如以太坊主网的chainid是1,ETHW主网的chainid是10001。

我们查看一下Omni Bridge验证chainid的逻辑,发现chainid的来源于unitStorage中存储的值,而不是通过操作码 CHAINID(0x46)直接读取的链上chainid。

unitStorage是合约EternalStorage中的状态变量,sourceChainId()函数所在的合约BasicAMB继承了BasicBridge和VersionableAMB。其中,BasicBridge陆续继承了合约EternalStorage。这里保存的chainid是预先存储好的,如果发生区块链的硬分叉而chainid又没有重新设置或者chainid人为设置有误,从合约层面上来说,由于不是通过操作码获取的chainid,不会正确验证跨链消息的实际chainid。

本次攻击根本原因是:主要是Omni使用的solidity版本是0.4.24,采用的是手动存储和更新chainid的方式,并未通过EIP-1344中规定的CHAINID(0x46)操作码进行实际chainid获取。

三、预防措施

针对重放攻击主要有以下几种预防的方法:

(1)可以在签名消息中加入chainid和nonce两个参数值,chainid用于识别链ID的标识符,nonce是交易次数计数值。

(2)记录签名是否使用过,比如利用mapping进行签名中对应参数映射为bool值,这样做可以防止签名多次使用。

(3)项目上线前,需联系专业的第三方专业审计团队进行审计。

来源:tuoniaox

鸵鸟区块链

媒体专栏

阅读更多

金色早8点

比推 Bitpush News

Foresight News

PANews

Delphi Digital

区块链骑士

深潮TechFlow

链捕手

区块律动BlockBeats

DeFi之道

标签:HAICHAChainAINblockchain.pi翻译中文blockchain怎么注册sdchainRAINI价格

火星币热门资讯
IDO:Lido还能统治以太坊staking市场吗?

Part.1 Insight作者:Momir, IOSG Ventures本文为IOSG原创内容,仅做行业学习交流之用,不构成任何投资参考.

1900/1/1 0:00:00
TIT:V神:到底什么是“制度”?

原文:《What even is an institution?》作者:Vitalik特别感谢 Dennis Pourteaux 和 Tina Zhen 的讨论促成了这篇文章.

1900/1/1 0:00:00
FTX:FTX轰然倒塌 美国司法部官员将与SEC一同调查

可以预见的是,FTX的崩溃引起了美国监管机构的注意。美国证券交易委员会(SEC)和商品期货交易委员会(CFTC)已经对FTX的商业行为展开了调查.

1900/1/1 0:00:00
区块链:金色早报 | Binance再次提供BTC储备证明

▌Binance再次提供BTC储备证明金色财经报道,加密货币交易所Binance宣布了一项新计划,该计划将为所有当前和未来的加密货币投资者提供其现有比特币和以太坊储备的证明.

1900/1/1 0:00:00
WEB:Web3创始人的成功之道

在任何行业中,创业都并非易事,然而Web3的创业道路尤为艰辛。原因之一是这条路少有人走过。传统企业创始人可以借鉴前人丰富的经验教训,相比之下,虽然Web3的创业者也逐渐摸索出了一些经验,但目前仍.

1900/1/1 0:00:00
TOKE:要短期回报也要长期发展 从基本原则进行Token设计

原文标题:《要短期回报也要长期发展,从基本原则进行代币设计》在过去的两年里,许多协议已经建立了Token经济学模型,很多一心赚钱的项目方为了让投资者们一股脑的把钱放进来.

1900/1/1 0:00:00