时间:2023-06-09|浏览:215
为此,SharkTeam第一时间对此事展开了技术指标分析,并归纳了安全防护方式,期待后面新项目能够以此为戒,共铸区块链行业安全防线。
一、事件分析
攻击者帐户详细地址为0x7d192fa3a48c307100c3e663050291fff786aa1f(简记为0x7d19);进攻合约详细地址为0xc4bea60f5644b20ebb4576e34d84854f9588a7e2(简记为0xc4be);被攻击合约详细地址为0x6d8981847eb3cc2234179d0f0e72f6b6b2421a01(简记为0x6d89)。
进攻全过程如下所示,在其中,进攻交易的txHash为0x3ee23c1585474eaa4f976313cafbc09461abb781d263547c8397788c68a00160:
1. 查看0x0b70 BUSD对0x6d18受权额度allowance; 2. 将0x0b70授权BUSD转到BUSD/WBNB交易对,根据swap函数折算成WBNB; 3. 将WBNB转到WBNB/DND交易对,根据swap函数折算成DND并退还给0x0b70。
通过上述二步,攻击者利用了0x0b70的受权,根据2次代币换取抬高了DND/WBNB交易对里的DND的价钱。同理,攻击者数次利用个人账号地址的受权,进一步拉高交易对DND/WBNB交易对心DND的价钱。最终,攻击者根据DND/WBNB交易对将最初的100万DND折算成了739.64 WBNB,完成最后的盈利。
从整个进攻环节中,攻击者利用了每个账户BUSD对被攻击合约0x6d89的受权,再通过swap抬高了DND的价钱。进攻缘故很有可能是被攻击合约0x6d89上存在权限校验系统漏洞,这也使得攻击者能够利用该系统漏洞迁移授权BUSD以实现控制价钱,也有可能是被攻击合约没考虑代币受权对交易池价钱产生的影响。
二、安全建议
为了规避代币受权带来的损失,SharkTeam提出以下安全建议:
1. 撤销全额的授权状况,依据每一次交易交易金额开展受权; 2. 在交易结束后取消授权; 3. 在合约(如DEX合约)功能分析和实现时,要了解代币受权产生的影响,防止价钱被控制的现象; 4. 找专业的财务审计团队对智能化合约开展财务审计。
关于SharkTeam
SharkTeam致力于全方位维护Web3全球的安全性。精英团队由来自全国各地的资深的安全性专业人员高级科学研究人员构成,熟练区块链智能合约的底层基础理论,提供专业的智能化合约财务审计、链上剖析、应急处置等业务。已经与区块链生态体系各行各业的重要参加者,如Polkadot、Moonbeam、polygon、OKC、Huobi Global、imToken、ChainIDE等建立长期合作伙伴关系。
SharkTeam的社交媒体账户:
Twitter:https://twitter.com/sharkteamorg Discord:https://discord.gg/jGH9xXCjDZ Telegram:https://t.me/sharkteamorg
想获取更多区块链安全咨询和分析,请点击进入以下连接查询:
D查下|链上风险性审查https://app.chainaegis.com
本文转载自驼鸟区块链。