# OrionProtocolのリエントランシー攻撃の分析## イベント概要オンチェーン監視データによると、2023年2月2日15:40:20UTCに、OrionProtocolはEthereumとBinance Smart Chainのコントラクトの脆弱性により、リエントランシー攻撃を受けました。 攻撃者は、イーサリアムネットワークから2,844,766 USDT、Binance Smart Chainから191,606 BUSDの利益を上げ、合計で約290万ドルの利益を得ました。! [PoCによるOrionProtocolリエントランシー攻撃分析](https://img-cdn.gateio.im/social/moments-730464b2d4d7f6e0ff21a0289a2d5d680192837465674839201## 攻撃プロセス分析) イーサリアムチェーン上の攻撃の詳細 カスタムトークン ! [PoCによるOrionProtocolリエントランシー攻撃分析]###https://img-cdn.gateio.im/social/moments-caac189901b7aaad5abd8be30bb4361a(交換プロセス中、攻撃者が作成したトークン契約にコールバック機能が含まれているため、ExchangeWithAtomic.swapThroughOrionPoolの実行中に攻撃者はToken.Transferメソッドを使用してExchangeWithAtomic.depositAsset関数を繰り返し呼び出すことができました。これにより、預金額が次第に累積し、最終的に攻撃者は引き出し操作を通じて利益を得ることができました。! [PoCによるOrionProtocolリエントランシー攻撃分析])https://img-cdn.gateio.im/social/moments-7e21c34158a85d4c387fcdbec136d31b(## 資金の流れ攻撃者の初期資金は、ある大規模取引所のホットウォレットから来ています。攻撃によって得られた1,651のETHのうち、657.5のETHは攻撃者のウォレットアドレスに残っており、残りはミキシングサービスを通じて移動されています。! [PoCによるOrionProtocolリエントランシー攻撃分析])https://img-cdn.gateio.im/social/moments-24819b5154419e86ea523a25a9101f67(## 脆弱性分析脆弱性の核心的な問題は、doSwapThroughOrionPool関数に存在します。この関数は、トークンの転送を実行した後にcurBalance変数を更新しますが、「チェック-エフェクト-インタラクション」(Checks-Effects-Interactions)パターンに従っていません。攻撃者は、カスタムトークンのtransfer関数に追加されたコールバックメカニズムを利用し、curBalanceが更新される前にdepositAsset関数を繰り返し呼び出すことで、残高の計算に誤りを引き起こします。! [PoCによるOrionProtocolリエントランシー攻撃分析])https://img-cdn.gateio.im/social/moments-7c4bde9d6a35da4304844a3bbb934fae(! [PoCによるOrionProtocolリエントランシー攻撃分析])https://img-cdn.gateio.im/social/moments-7239f8886fe83c1da8b1b42545185811(! [PoCによるOrionProtocolリエントランシー攻撃分析])https://img-cdn.gateio.im/social/moments-e5042932f0e1b7fa96e3f6e749231957(! [PoCによるOrionProtocolリエントランシー攻撃分析])https://img-cdn.gateio.im/social/moments-4bd31735de09c63c490488e887118038(! [PoCによるOrionProtocolリエントランシー攻撃分析])https://img-cdn.gateio.im/social/moments-cd401091e63ab21864f39cd650014b97(! [PoCによるOrionProtocolリエントランシー攻撃分析])https://img-cdn.gateio.im/social/moments-e010d0f0c02fb8bbc648f755b0ac464c(! [PoCによるOrionProtocolリエントランシー攻撃分析])https://img-cdn.gateio.im/social/moments-f3c5f9416cfb9b7b791d86eeffb933be(## 予防に関する推奨事項1. プロジェクトチームは、トークン交換機能を含む契約を設計する際に、さまざまなトークンタイプや交換パスがもたらすセキュリティリスクを考慮する必要があります。2. "チェック-効果-インタラクション"のコーディング規範に厳密に従い、最初に条件チェックを行い、次に状態変数を更新し、最後に外部呼び出しを実行します。3. 再入リスクが存在する可能性がある関数については、再入ロックなどのメカニズムを使用して保護します。4. 重要な操作の前後に残高チェックを追加して、取引の原子性と一貫性を確保します。5. 定期的にコード監査とセキュリティテストを行い、潜在的な脆弱性を迅速に発見し修正します。6. 単一の攻撃による損失を減少させるために、取引額の制限や取引頻度の制限を実施することを検討してください。これらの対策を講じることにより、プロジェクトは契約の安全性を大幅に向上させ、同様の攻撃を受けるリスクを減少させることができます。急速に発展するWeb3エコシステムにおいて、安全性は常に最優先の考慮事項であるべきです。
OrionProtocolは、290万ドルのリエントランシー攻撃、脆弱性分析、および防止の推奨事項を受けました
OrionProtocolのリエントランシー攻撃の分析
イベント概要
オンチェーン監視データによると、2023年2月2日15:40:20UTCに、OrionProtocolはEthereumとBinance Smart Chainのコントラクトの脆弱性により、リエントランシー攻撃を受けました。 攻撃者は、イーサリアムネットワークから2,844,766 USDT、Binance Smart Chainから191,606 BUSDの利益を上げ、合計で約290万ドルの利益を得ました。
! [PoCによるOrionProtocolリエントランシー攻撃分析](https://img-cdn.gateio.im/webp-social/moments-730464b2d4d7f6e0ff21a0289a2d5d68.webp0192837465674839201
攻撃プロセス分析
) イーサリアムチェーン上の攻撃の詳細
カスタムトークン
! [PoCによるOrionProtocolリエントランシー攻撃分析]###https://img-cdn.gateio.im/webp-social/moments-caac189901b7aaad5abd8be30bb4361a.webp(
交換プロセス中、攻撃者が作成したトークン契約にコールバック機能が含まれているため、ExchangeWithAtomic.swapThroughOrionPoolの実行中に攻撃者はToken.Transferメソッドを使用してExchangeWithAtomic.depositAsset関数を繰り返し呼び出すことができました。これにより、預金額が次第に累積し、最終的に攻撃者は引き出し操作を通じて利益を得ることができました。
! [PoCによるOrionProtocolリエントランシー攻撃分析])https://img-cdn.gateio.im/webp-social/moments-7e21c34158a85d4c387fcdbec136d31b.webp(
資金の流れ
攻撃者の初期資金は、ある大規模取引所のホットウォレットから来ています。攻撃によって得られた1,651のETHのうち、657.5のETHは攻撃者のウォレットアドレスに残っており、残りはミキシングサービスを通じて移動されています。
! [PoCによるOrionProtocolリエントランシー攻撃分析])https://img-cdn.gateio.im/webp-social/moments-24819b5154419e86ea523a25a9101f67.webp(
脆弱性分析
脆弱性の核心的な問題は、doSwapThroughOrionPool関数に存在します。この関数は、トークンの転送を実行した後にcurBalance変数を更新しますが、「チェック-エフェクト-インタラクション」(Checks-Effects-Interactions)パターンに従っていません。攻撃者は、カスタムトークンのtransfer関数に追加されたコールバックメカニズムを利用し、curBalanceが更新される前にdepositAsset関数を繰り返し呼び出すことで、残高の計算に誤りを引き起こします。
! [PoCによるOrionProtocolリエントランシー攻撃分析])https://img-cdn.gateio.im/webp-social/moments-7c4bde9d6a35da4304844a3bbb934fae.webp(
! [PoCによるOrionProtocolリエントランシー攻撃分析])https://img-cdn.gateio.im/webp-social/moments-7239f8886fe83c1da8b1b42545185811.webp(
! [PoCによるOrionProtocolリエントランシー攻撃分析])https://img-cdn.gateio.im/webp-social/moments-e5042932f0e1b7fa96e3f6e749231957.webp(
! [PoCによるOrionProtocolリエントランシー攻撃分析])https://img-cdn.gateio.im/webp-social/moments-4bd31735de09c63c490488e887118038.webp(
! [PoCによるOrionProtocolリエントランシー攻撃分析])https://img-cdn.gateio.im/webp-social/moments-cd401091e63ab21864f39cd650014b97.webp(
! [PoCによるOrionProtocolリエントランシー攻撃分析])https://img-cdn.gateio.im/webp-social/moments-e010d0f0c02fb8bbc648f755b0ac464c.webp(
! [PoCによるOrionProtocolリエントランシー攻撃分析])https://img-cdn.gateio.im/webp-social/moments-f3c5f9416cfb9b7b791d86eeffb933be.webp(
予防に関する推奨事項
プロジェクトチームは、トークン交換機能を含む契約を設計する際に、さまざまなトークンタイプや交換パスがもたらすセキュリティリスクを考慮する必要があります。
"チェック-効果-インタラクション"のコーディング規範に厳密に従い、最初に条件チェックを行い、次に状態変数を更新し、最後に外部呼び出しを実行します。
再入リスクが存在する可能性がある関数については、再入ロックなどのメカニズムを使用して保護します。
重要な操作の前後に残高チェックを追加して、取引の原子性と一貫性を確保します。
定期的にコード監査とセキュリティテストを行い、潜在的な脆弱性を迅速に発見し修正します。
単一の攻撃による損失を減少させるために、取引額の制限や取引頻度の制限を実施することを検討してください。
これらの対策を講じることにより、プロジェクトは契約の安全性を大幅に向上させ、同様の攻撃を受けるリスクを減少させることができます。急速に発展するWeb3エコシステムにおいて、安全性は常に最優先の考慮事項であるべきです。