跨链DEX聚合器TransitSwap被黑客攻击,资金损失超2300万美元
然后对这次进攻全过程进行分析:
1. 当客户在TransitSwap开展swap时,首先会根据路由代理合约(0x8785bb...)针对不同的兑换种类选择不同路由桥合约。接着路由桥合约(0x0B4727...)可以通过管理权限合约(0xeD1afC...)的claimTokens函数公式将客户待兑换的代币转到路由桥合约中。所以在代币兑换前客户必须要先对管理权限合约(0xeD1afC...)开展授权。
2. 而claimTokens函数是根据启用特定代币合约的transferFrom函数公式开展转帐的。其接收到的主要参数均由顶层路由桥合约(0x0B4727...)传入,本来就没有对这种主要参数做出任何限定只查看了调用者应为路由代理合约或路由桥合约。
3. 路由桥合约(0x0B4727...)在接受到客户待兑换的代币之后启用兑换合约开展具体兑换实际操作,但兑换合约地址与具体调用函数数据信息均由顶层路由代理合约(0x8785bb...)传入,路由桥合约并没有对分析后兑换合约详细地址与启用信息进行查验。
4. 而代理合约(0x8785bb...)对路由桥合约(0x0B4727...)传入的基本参数也都来源于客户传入的主要参数。且代理合约(0x8785bb...)仅仅是保证了客户传入的calldata内各数据长度是不是超出预期和所启用的路由桥合约要在授权管理投射中地址,未对calldata信息进行实际查验。
5. 因而网络攻击运用路由代理合约、路由桥合约与管理权限合约都未对传入的信息开展安全检查的不足。根据路由代理合约传入结构后数据信息启用路由桥合约的callBytes函数公式。callBytes函数解析出网络攻击指定兑换合约与兑换数据信息,这时兑换合约被选定为管理权限合约详细地址,兑换数据信息被选定为启用claimTokens函数公式将特定客户的代币转到网络攻击特定地址中。完成了盗取全部对管理权限合约开展授权客户的代币。
本次进攻的重要原因取决于TransitSwap协议书在开展代币兑换时并没有对客户传入的信息进行全面的查验,造成了随意外界启用问题。网络攻击运用此随意外界启用难题盗取了消费者对TransitSwap授权代币。
截止到目前,网络黑客已经将2,500BNB转移至TornadoCash,剩下资产分散化保存在网络黑客详细地址中。通过网络黑客印痕剖析发觉,网络黑客存有从LATOKEN等渠道存提现痕迹。
慢雾MistTrack将持续跟进失窃资金转换及其网络黑客痕迹的剖析。
转载:驼鸟区块链