零时科技 || 攻击者获利约 302 万美元,Orion Protocol 被攻击事件分析
事件背景
零时科技区块链安全情报平台监控到消息,北京时间 2023 年 2 月 3 日,BSC 链与 ETH 链上 Orion Protocol 受到黑客攻击,攻击者获利约 300 万美元,攻击者地址为 0x837962b686fd5a407fb4e5f92e8be86a230484bd,被盗资金已转移至 Tornado.Cash 混币平台。零时科技安全团队及时对此安全事件进行分析。
漏洞及核心
Orion Protocol 是一个交易聚合协议,用户可以进行代币交易,兑换以及跨链操作等。此处以 BSC 链攻击交易为例。
攻击者执行兑换操作,其中路径 1 代币由攻击者控制。
在执行第一次兑换后,转入攻击者构造的恶意合约中进行代币转账,转账函数由攻击者恶意构造,在恶意构造的转账函数中攻击者将通过闪电贷获得的 191,606 USDT 调用 ExchangeWithAtomic 合约中 depositAsset 函数存入合约中,此时修改了 assetBalances 变量的值,但是在最终转账时并没有执行 assetBalances 变量的修改。
计算最终兑换代币数值是由当前代币余额减去执行兑换之前合约对应代币余额
由于在执行兑换过程中攻击者已经向合约转移大笔资金,因此攻击者兑换出的 USDT 资金变多
兑换前余额
执行兑换操作后余额
攻击者在此次兑换中使用 1USDC 共兑换出 191,606 USDT
由于攻击者此前执行了 depositAsset 函数操作,但是兑换完成时并没有涉及到此函数中变量,攻击者仍可以通过调用 withdraw 函数取出之前通过 depositAsset 函数存入的资金。
资金来源及去向
资金来源
ETH 链攻击地址资金来源为 Bianace15 交易所
BSC 链攻击地址资金来源为 Tornado.Cash 混币平台
资金流向
BSC 链被盗资金通过跨链全部转移至 ETH 链攻击者地址
ETH 链将被盗资金兑换为 ETH 共 1100 ETH 转移至 Tornado.Cash 混币平台
总结及建议
此次攻击是由于 ExchangeWithAtomic 合约中对于合约内不同函数间的重入未做限定,使得攻击者能够通过调用构造的恶意合约实现重入操作,且合约中代币兑换后转出资金计算方式只受合约代币余额影响,因此攻击者在执行兑换时通过调用其他函数转入资金影响合约余额后将转入的资金取出实现获利。
🔹安全建议
建议对合约中涉及资金转移函数添加防重入机制保护,避免攻击者通过控制恶意合约进行攻击
建议项目方上线前进行多次审计,避免出现审计步骤缺失
免责声明:文章中的所有内容仅代表作者的观点,与本平台无关。用户不应以本文作为投资决策的参考。
你也可能喜欢
241125: 加密货币清算达到4.7亿美元,比特币回调,山寨币飙升
狗狗币(Dogecoin)、瑞波币(XRP)、恒星币(Stellar)和沙盒(Sandbox)的清算比例高于往常,因为2020-2021年周期中的一些主流山寨币飙升高达50%。11月24日,比特币未能突破10万美元的里程碑后回落,导致了半年多以来最大的周末加密货币清算事件之一。 过去24小时内,价值超过4.7亿美元的加密货币头寸被清算。根据CoinGlass的数据,多头和空头清算分别达到3.526亿美元和1.199亿美元,其中山寨币占了绝大多数被清算的头寸。 过去24小时内,比特币未能突破10万美元大关,导致总计4.725亿美元的多头和空头头寸被清算。来源:CoinGlass 比特币和以太坊
Messari:SynFutures第三季度关键更新
周一闪购:使用信用卡/借记卡零手续费买币
每周一,通过信用卡或借记卡( Visa、万事达卡、Google Pay 及 Apple Pay)用本地法定货币购买加密货币,可享零手续费! 买币 活动时间:每周一20:00至周二20:00(UTC+8) 活动规则 注册 Bitget 账户或登录现有账户。 导航至 “买币”并选择“ 信用卡/借记卡”作为付款方式。 完成 身份认证并输入您的银行卡信息。 立即完成从法币到加密货币的交易。 额外福利 >>> 周四闪购:使用信用卡/借记卡零手续费买币 立即参与 >>> 如何使用信用卡或借记卡购买加密货币 >>> 如何在 Bitget App 上使用信用卡/借记卡购买加密货币 >>> 如何在 Bitge