OrionProtocolはリエントランシー攻撃を受け、USDTとBUSDで290万ドルを失いました

robot
概要作成中

OrionProtocolのリエントランシー攻撃の分析

2023年2月2日午後、コントラクトの脆弱性により、イーサリアムとバイナンスチェーンのOrionProtocolが攻撃を受け、約290万ドルの損失が発生しました。 具体的な損失には、イーサリアムの2,844,766 USDTとBinanceチェーンの191,606 BUSDが含まれます。

攻撃プロセスの分析

攻撃者はまずTokenコントラクトを作成し、それに対して移転および権限付与操作を行い、後続の攻撃の準備をします。その後、攻撃者はUNI-V2のswapメソッドを使用して借入を行い、ExchangeWithAtomicコントラクトのswapThroughOrionPoolメソッドを呼び出してトークンを交換します。

交換経路は[USDC, 攻撃者が作成したToken, USDT]に設定されています。交換プロセス中、攻撃者が作成したToken契約にコールバック機能が存在するため、攻撃者はTokenのTransferメソッドを通じてExchangeWithAtomic契約のdepositAssetメソッドを継続的にコールバックすることができ、再入攻撃を実現し、預金額が継続的に累積されます。最終的に、攻撃者は引き出し操作を通じて利益を得ます。

! [PoCによるOrionProtocolリエントランシー攻撃分析](https://img-cdn.gateio.im/webp-social/moments-730464b2d4d7f6e0ff21a0289a2d5d68.webp0192837465674839201

脆弱性分析

この脆弱性の中核は、ExchangeWithAtomic コントラクトの doSwapThroughOrionPool 関数にあります。 この関数を実行すると、_doSwapTokensの実行時に次の問題が発生します。

  1. curBalance変数は、転送操作後にのみ更新してください。
  2. Checks-Effects-Interactionsモードが動作していません。

攻撃者はこの脆弱性を利用して、偽造されたToken契約のtransfer関数にコールバック機能を追加し、送金時にdepositAsset関数を呼び出すようにしました。これにより、curBalance変数が誤って更新され、攻撃者はフラッシュローンを返済した後、withdraw関数を通じて過剰資金を引き出すことができました。

! [PoCによるOrionProtocolリエントランシー攻撃分析])https://img-cdn.gateio.im/webp-social/moments-caac189901b7aaad5abd8be30bb4361a.webp(

! [PoCによるOrionProtocolリエントランシー攻撃分析])https://img-cdn.gateio.im/webp-social/moments-7e21c34158a85d4c387fcdbec136d31b.webp(

! [PoCによるOrionProtocolリエントランシー攻撃分析])https://img-cdn.gateio.im/webp-social/moments-24819b5154419e86ea523a25a9101f67.webp(

! [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(

資金の流れ

攻撃者の初期資金は、ある取引プラットフォームのホットウォレットアカウントから来ています。利益として得られた1,651枚のETHのうち、657.5枚は攻撃者のウォレットアドレスに残っており、残りはミキシングサービスを介して移動されています。

予防に関する推奨事項

類似の攻撃を避けるために、プロジェクト側は以下の点に注意する必要があります:

  1. 契約設計時には、複数のトークンや交換経路がもたらす可能性のある予期しない状況を考慮する必要があります。
  2. "チェック-効果-インタラクション"のコーディング規約を厳守し、まず判断を行い、次に状態変数を更新し、最後に外部呼び出しを実行することを確実にする。
  3. 資金移転に関わる重要な操作については、より厳格なセキュリティチェックと制限を実施する。
  4. 定期的な契約セキュリティ監査を実施して、潜在的な脆弱性をタイムリーに発見し、修正します。

今回の事件は、スマートコントラクトの開発においてセキュリティが極めて重要であることを再確認させてくれました。プロジェクト側は常に警戒を怠らず、契約リスクを最大限に低減するために多重防護策を講じるべきです。

原文表示
このページには第三者のコンテンツが含まれている場合があり、情報提供のみを目的としております(表明・保証をするものではありません)。Gateによる見解の支持や、金融・専門的な助言とみなされるべきものではありません。詳細については免責事項をご覧ください。
  • 報酬
  • 5
  • リポスト
  • 共有
コメント
0/400
GateUser-4745f9cevip
· 6時間前
また再入攻撃!終わったな
原文表示返信0
OptionWhisperervip
· 08-16 06:37
また無くなった
原文表示返信0
CryptoGoldminevip
· 08-16 06:37
バグは資産の負の収益率です
原文表示返信0
RektButSmilingvip
· 08-16 06:35
また脆弱性が発生しました
原文表示返信0
GasSavingMastervip
· 08-16 06:35
また再入攻撃ですか?
原文表示返信0
いつでもどこでも暗号資産取引
qrCode
スキャンしてGateアプリをダウンロード
コミュニティ
日本語
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)