GMX遭黑客攻击致4200万美元损失:漏洞分析与资金追踪
近日,去中心化金融协议GMX遭遇了一次严重的安全攻击事件。攻击者利用项目合约中的一个可重入漏洞,成功获利约4200万美元。Beosin安全团队对此次事件进行了详细的漏洞分析和被盗资金追踪,并将相关结果分享如下。
详细攻击步骤
据分析,攻击者首先利用了OrderBook合约中executeDecreaseOrder函数的退还保证金机制,通过发起重入攻击绕过了Timelock合约中的杠杆开关:
随后,攻击者通过闪电贷借入USDC进行质押以铸造GLP,同时以USDC作为保证金增加BTC的空头仓位。这一操作导致GLPmanager合约的资产管理规模(AUM)值虚高,而该值的计算直接影响了GLP的价格。
最后,攻击者以异常价格赎回GLP并将其兑换为其他代币,从而完成获利。
漏洞分析
通过对整个攻击流程的复盘,可以总结出以下漏洞利用原因:
- 缺少可重入保护,导致在赎回过程中被攻击者利用重入修改内部状态。
- 赎回逻辑复杂且缺乏足够的安全校验。
尽管GMX此前经历了多次安全审计,但这个可重入漏洞却未能被发现。如果在开发过程中对赎回逻辑进行更严格的检查,并考虑到可能存在的重入风险,或许能够避免此类安全事件的发生。
被盗资金追踪
根据Beosin Trace的资金追踪结果显示,攻击者地址0x7d3bd50336f64b7a473c51f54e7f0bd6771cc355共获利约4200万美元。随后,攻击者通过多个DeFi协议将稳定币和山寨币兑换为ETH和USDC,并通过跨链协议将被盗资产转移至Ethereum网络。
截至目前,被盗资产中价值约3200万美元的ETH分别存放在以下四个以太坊网络地址:
- 0xe9ad5a0f2697a3cf75ffa7328bda93dbaef7f7e7
- 0x69c965e164fa60e37a851aa5cd82b13ae39c1d95
- 0xa33fcbe3b84fb8393690d1e994b6a6adc256d8a3
- 0x639cd2fc24ec06be64aaf94eb89392bea98a6605
此外,约1000万美元的资产被存放在Arbitrum网络的地址0xdf3340a436c27655ba62f8281565c9925c3a5221中。Beosin Trace已将黑客的相关地址加入黑地址库,并将持续追踪后续动向。
据Beosin Trace分析,所有被盗资金目前仍分散存放在攻击者的多个地址中。
总结
本次攻击的核心在于GMX合约存在重入漏洞,攻击者通过虚假增加的AUM值赎回大量资产获利。对于像GMX这样复杂的DeFi协议,必须通过多方面、多层次的安全审计,对合约代码进行全面测试和审查。
此前,Beosin安全团队已完成多个知名DeFi协议(如Surf Protocol、SyncSwap、LeverFi、Owlto Finance)的安全审计,专注于发现合约逻辑缺陷和可能被忽略的极端情况,确保协议经过全方位的检测。未来,随着DeFi生态的不断发展,安全问题将成为行业关注的重中之重。