1. 使用储备账本记录资产借贷情况;2. 扩展精度,减少由于算术运算导致的误差
封面:Photo by Nicolas Arnold on Unsplash
2023 年 11 月 1 日,Beosin 旗下 EagleEye 安全风险监控、预警与阻断平台监测显示,OnyxProtocol 的 oPEPE 市场合约遭受黑客攻击,黑客获利约 218 万美元。
有趣的是 OnyxProtocol 协议是 CompoundV2 的一个分支,早在 2022 年 4 月 15 日,HundredFinance 也因为同样的漏洞遭受了 700 万美元的损失。本次 Beosin 带您来回顾一下该漏洞。
事件相关信息
●攻击交易
0xf7c21600452939a81b599017ee24ee0dfd92aaaccd0a55d02819a7658a6ef635
●攻击者地址
0x085bdff2c522e8637d4154039db8746bb8642bff
●攻击合约
0x526e8e98356194b64eae4c2d443cc8aad367336f0xf8e15371832aed6cd2741c572b961ffeaf751eaa0xdb9be000d428bf3b3ae35f604a0d7ab938bea6eb0xe495cb62b36cbe40b9ca90de3dc5cdf0a4259e1c0x414764af57c43e36d7e0c3e55ebe88f410a6edb60xcede81bb4046587dad6fc3606428a0eb4084d760
●被攻击合约
0x5fdbcd61bc9bd4b6d3fd1f49a5d253165ea117500x9dcb6bc351ab416f35aeab1351776e2ad295abc4
漏洞分析
本次攻击主要是黑客利用了舍入和汇率操控的问题,击穿了项目方的代码防线。
攻击流程
攻击准备阶段:
1. 攻击者借入 4000 枚 WETH 作为攻击准备资金。
2. 攻击者将借入的 WETH 兑换出约 2.52 万亿 PEPE。
3. 然后将 2.52 万亿 PEPE 分别转入 0xf8e1,0xdb91 等多个地址,自此攻击准备阶段完成。
攻击阶段:
1. 攻击者获取少量 oPEPE,并将 PEPE 打入 oPEPE 市场,增加 oPEPE 市场中 PEPE 的余额从而操控 oPEPE 的汇率。
2. 攻击者从其他的市场恶意借出资金大量以太坊。
3. 由于舍入和汇率操纵,攻击者使用少量 oPEPE 清算借贷并赎回捐赠的资金。
4. 攻击者重复上述步骤,最终将 PEPE 换回 ETH 并归还闪电贷,从而获利 1156ETH。
资金追踪
截止发文时,Beosin Trace 追踪发现被盗资金已大全部转入 Tornado cash。
总结
针对本次事件,Beosin 安全团队建议:1. 使用储备账本记录资产借贷情况;2. 扩展精度,减少由于算术运算导致的误差;3. 项目上线前,建议选择专业的安全审计公司进行全面的安全审计,规避安全风险。