合约漏洞:pNetwork被黑事件分析
SharkTeam合约漏洞:pNetwork被黑事件分析
北京时间9月20日凌晨,pNetwork跨链项目遭到黑客攻击,黑客利用BSC上pBTC的代码漏洞,窃取了277枚BTC,损失价值高达1270万美元。?
SharkTeam第一时间对此事件进行了攻击分析和技术分析,并总结了安全防范手段,希望后续的区块链项目可以引以为戒,共筑区块链行业的安全防线。
一、事件分析
https://bscscan.com/address/0x2bf5693dd3a5cea1139c4510fdce120cf042c934
以其中一笔交易进行分析:
https://bscscan.com/tx/0xe79e3ff4ef01a29475e6387a44c550df3e4c0a80177249bfdc9bbd66376b9ff6?整个攻击写在攻击合约的构造函数中,并在攻击完成后调用selfdestruct()函数销毁合约,使得无法看到攻击合约的细节内容。通过交易的事件(Event)并结合PToken合约源码可知,攻击者首先以amount:0,userData:0x,underlyingAssetRecipient:3LngKgsXQAnm5cLP43PZUGGvMau9uUzhky.作为输入数据委托调用redeem函数。
随后通过攻击合约发送多个Redeem(_msgSender(), amount, underlyingAssetRecipient, userData) event事件。
触发的redeem事件都是向攻击者的多个比特币地址转账相同数量1.38个左右的bitcoin,这是跨链攻击中重要的环节。
以其中的一个比特币地址查询,可查到相同数量的bitcoin到账。
通过pToken的介绍可知,跨链转账中只是通过查询相关的deposit或redeem事件这种方式来确定btc的转账地址与数量,并没有进行其他的检查!使得黑客利用这一漏洞,在BSC上触发多次redeem事件,窃取大量的BTC。
二、安全建议
SharkTeam提醒您,在涉足区块链项目时请提高警惕,选择更稳定、更安全,且经过完备多轮审计的公链和项目,切不可将您的资产置于风险之中,沦为黑客的提款机。