北京时间2021年3月5日,PAID Network项目代理合约owner私钥泄露,攻击者利用此权限盗取5947万枚PAID代币。
[]()
PAID Network 是去中心化生态,部署在以太坊的 DApp 项目,旨在重新定义民事法律体系,从而通过专有的 SMART 协议、社区管理的仲裁系统、声誉评分、DeFi 工具,为开展业务提供一种新方法。
零时科技区块链安全情报平台监控到消息,北京时间2021年3月6日,PAID Network官方发推称合约遭到黑客攻击,由于PAID Network项目使用的是可升级的存储代理合约模型,攻击者利用PAID Network代理合约owner权限部署了恶意逻辑合约,并盗取了超过5900万个PAID令牌。
以太坊上可升级合约的开发模型主要有以下几类:
经过初步分析,PAID Network项目使用的是第三种模型Upgradable Storage Proxy Contracts(可升级的存储代理合约),这种模型的特点是存在三个组件:代理合约,业务合约和数据结构基类合约。三个组件配合,最终使得合约有节省Gas,合约可升级,合约数据引用一致等优点。
Upgradable Storage Proxy Contracts(可升级的存储代理合约)模型的工作模式,这里我们用MuditG文章中的图来做说明。如下:
[]()
上图中:
从以上分析可以明确,代理合约可以随时更新,也就是PAID Network项目中的升级合约。
零时科技安全团队跟进此事件并分析得出攻击步骤:
攻击者盗取PAID代理合约所有者owner私钥,通过该owner将自己的地址修改为owner,并使用攻击者地址部署了攻击合约,之后使用owner权限将PAID代理合约的业务合约地址更新为攻击合约,最终利用攻击者合约中的burn()销毁函数和mint()铸币函数给攻击者地址创造了5947万枚PAID代币。
详细攻击步骤如下:
初步分析,Paid代理合约owner部署Paid逻辑合约,通过所有者0x6ba1...1120地址部署业务合约0x8c86...48df。这一步是正常的部署合约操作,如下图:
https://cn.etherscan.com/tx/0x722caf4a8ba43f06f2c26e41cf49b9200af9f0593444d0b81713c2292782d15b
[]()
攻击操作一:攻击者给Paid代理合约owner(所有者0x6ba1...1120,也就是上一步部署正常合约的地址)转了一笔手续费。攻击者开始攻击,保证所有者地址0x6ba1...1120有ether可以进行其他调用操作,如下图:
https://cn.etherscan.com/tx/0x28494ebcd854735e4d84f55890f0a92376d1af17553d998b2ee391a25dbc18c7
[]()
攻击操作二:攻击者调用Paid代理合约owner的权限,更换了owner为攻击者。由于攻击者有Paid合约owner地址私钥,所以可直接使用owner权限,并调用transferOwnership(address newOwner)函数修改owner地址为0x1873...65be。如下图:
https://cn.etherscan.com/tx/0x733dd279b3d24f3415f3850b8eceafc651c1998163dcd0352b9e83c46e2b33d9
[]()
攻击操作三:攻击者通过修改后的owner地址0x1873...65be部署攻击合约0xb828...b9c7,如下图:
https://cn.etherscan.com/tx/0x75a22e264ffabbc5e4b84090fb30a76f2b5c4b87ae7a22762cba695d922c04aa
[]()
攻击者操作四:攻击者owner调用代理合约中upgrade()函数对攻击者合约进行更新,也就是更新了Paid的逻辑合约为攻击合约,如下图:
https://cn.etherscan.com/tx/0xe4678ca53b308bb35f6fd393ca369e853f936788cd6c318cd38b0a25bec88b70
[]()
攻击者操作五:攻击者调用攻击合约中的burn()函数销毁5947万枚PAID代币,如下图:
https://cn.etherscan.com/tx/0x3a483dd881d98541ebbd51e9a64daa700546bae9c2b33a30c2192f9981334b9b
[]()
攻击者操作六:攻击者调用攻击合约中的mint()函数给攻击者地址铸币5947万枚PAID代币,如下图:
https://cn.etherscan.com/tx/0x4bb10927ea7afc2336033574b74ebd6f73ef35ac0db1bb96229627c9d77555a0
[]()
攻击者后续操作:攻击者铸造5947 万枚 PAID 代币后,随后将部分PAID代币在去中心化交易所 Uniswap 上交易。在后续的交易中,攻击者陆续售出了大约 250 万个 PAID 代币,目前已获得2000 ETH。
通过分析,发生该攻击事件只是因为PAID代理合约所有者owner私钥泄露,合约代码及可升级的合约模型并没有问题,当然也是目前大多数项目的中心化导致。所以建议项目方更要注重合约管理员私钥的安全存储。
DeFi今年确实备受关注,黑客攻击也不断发生,包括Harvest Finance,Value DeFi,Akropolis,Cheese Bank和Origin Dollar等均受到不同程度的黑客攻击。针对频频发生的黑客攻击事件,我们给出以下的安全建议:
专注为客户提供全方位区块链安全解决方案及审计服务深圳零时科技有限公司是一家专业的区块链安全漏洞风险检测与安全防御、企业级区块链应用创新解决方案提供商。
公司团队深耕网络安全攻防十余年,并深入研究区块链安全实战经验丰富,旨在为客户提供全方位的安全审计服务及安全解决方案。
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!