主页 > imtoken唯一官网 > 【回顾】区块链安全事件之Parity钱包被盗事件

【回顾】区块链安全事件之Parity钱包被盗事件

imtoken唯一官网 2023-04-10 06:21:29

不忘历史充以太坊到钱包被盗,才能展望未来。 在接下来的一段时间里,极速地带将带您回顾一下区块链安全事件总结和区块链技术展望。

Parity 多重签名钱包盗窃案详解:

充以太坊到钱包被盗_以太坊钱包余额查询_以太坊transfer充币怎么充

arity多重签名钱包被盗事件分析

时间:2017年7月

活动简介:

充以太坊到钱包被盗_以太坊transfer充币怎么充_以太坊钱包余额查询

Parity 是一款多重签名钱包,也是使用最广泛的以太坊钱包之一。 创始人兼CTO为以太坊前CTO黄皮书作者Gavin Woods。

7 月 19 日,Parity 就其钱包软件 1.5 及更高版本中的漏洞发出了安全警报警告。 根据该公司的报告,确认有 153,000 ETH(约值 3000 万美元)被盗。

充以太坊到钱包被盗_以太坊transfer充币怎么充_以太坊钱包余额查询

根据 Parity 的说法,该漏洞是由名为 wallet.sol 的多重签名合约中的错误引起的。 后来,白帽黑客收回了大约 377,000 个受影响的 ETH。

此次攻击导致以太坊价格波动。 据Coindesk数据显示充以太坊到钱包被盗,事件曝光后,以太坊价格一度从235美元跌至196美元左右。 此次事件主要是由于合约代码不严谨造成的。 我们可以从区块浏览器中看到黑客的资金地址:

充以太坊到钱包被盗_以太坊钱包余额查询_以太坊transfer充币怎么充

以太坊transfer充币怎么充_充以太坊到钱包被盗_以太坊钱包余额查询

可以看到,共计153037个ETH被盗,受影响的合约代码均为Parity创始人Gavin Wood编写的Multi-Sig库代码:

以太坊transfer充币怎么充_充以太坊到钱包被盗_以太坊钱包余额查询

事件起因:

Github 用户 devops199 打开#6995 - “任何人都可以删除合同。” 然后用户声称他不小心删除了合同。

充以太坊到钱包被盗_以太坊transfer充币怎么充_以太坊钱包余额查询

漏洞原因:

因为initWallet函数是一个public函数,攻击者调用initWallet,重新初始化钱包会覆盖之前的合约wallet owner,wallet owner是可以改变的。

漏洞代码:

以太坊钱包余额查询_充以太坊到钱包被盗_以太坊transfer充币怎么充

攻击过程技术分析与还原:

以太坊钱包余额查询_以太坊transfer充币怎么充_充以太坊到钱包被盗

第一步:成为合约的所有者

以太坊transfer充币怎么充_以太坊钱包余额查询_充以太坊到钱包被盗

通过将 value = 0 且 msg.data.length > 0 的交易转移到该合约地址,执行到 _walletLibrary.delegatecall 的分支。 该函数可以无条件调用合约中的任意函数。 黑客调用了一个名为 initWallet 的函数:

以太坊transfer充币怎么充_以太坊钱包余额查询_充以太坊到钱包被盗

此函数再次调用 initMultiowned 函数:

以太坊钱包余额查询_充以太坊到钱包被盗_以太坊transfer充币怎么充

充以太坊到钱包被盗_以太坊钱包余额查询_以太坊transfer充币怎么充

不幸的是,initWallet 没有检查以防止攻击者在合约初始化后调用 initMultiowned。 该函数使合约的所有者变为攻击者,相当于从unix获得了root权限。

第二步:转账,剩下的就很清楚了,调用execute函数转账到黑客地址:

第一个参数:address to= 0xb3764761e297d6f121e79c32a65829cd1ddb4d32,转账金额116779808c03e4140000是Wei中的eth,即8218900000000000000000000,具体值可以通过以下代码获取。

总结:

通过分析代码,可以确定核心问题出在越权调用函数。 合约接口必须精心设计,访问权限必须明确,或者进一步,合约的设计必须符合某种成熟的模型或标准。 由专业机构审核。 否则,不起眼的代码可能会让您花光所有的钱。

提示:以太坊被盗不是以太坊区块链技术本身的问题,而是项目合约的技术安全问题。 因此,大众误以为区块链安全存在问题,这是不客观的。 其次,安全问题是整个互联网金融的一个重要命题。 智能合约漏洞近期曝光较多,社区和企业必须引起重视。 智能合约还处于早期发展阶段,没有像现有传统金融领域那样的审计机构和环节。 这一缺失的环节迟早会被添加到智能合约的构建过程中,从系统上帮助智能合约行业提高启动门槛和安全等级,促进其稳步推广应用。