オリオンプロトコルが再入攻撃を受け、290万ドルの資産を失いました

robot
概要作成中

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

2023年2月2日午後、イーサリアムとバイナンススマートチェーン上のOrionProtocolは、契約の脆弱性により再入攻撃を受け、合計約290万ドルの資産を失いました。その中には、イーサリアム上の2,844,766 USDTとバイナンススマートチェーン上の191,606 BUSDが含まれています。

攻撃プロセス分析

攻撃者はまずカスタムトークンコントラクトを展開し、関連する移転と権限付与の操作を行い、その後の攻撃の準備をしました。続いて、攻撃者はUniswap V2のswap関数を使用して借り入れを行い、OrionProtocolのExchangeWithAtomic.swapThroughOrionPoolメソッドを呼び出してトークンの交換を行いました。

交換経路は[USDC, 攻撃者トークン, USDT]に設定されており、攻撃者トークンはコールバック操作を実行するために使用されます。交換プロセス中、攻撃者トークンコントラクトにコールバックロジックが含まれているため、ExchangeWithAtomic.swapThroughOrionPoolメソッドが実行される際に、Token.Transferを介してExchangeWithAtomic.depositAsset関数へのコールバックが続行され、再入攻撃が実現されます。これにより、預金額が繰り返し加算され、最終的に攻撃者は引き出し操作を通じて利益を得ることができます。

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

資金の流れ

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

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

脆弱性分析

脆弱性の核心問題は、doSwapThroughOrionPool関数に現れます。この関数は、_doSwapTokens関数を呼び出し、転送操作を実行した後にcurBalance変数を更新します。攻撃者は、カスタムトークンのtransfer関数に追加されたコールバックロジックを利用して、転送プロセス中に再度depositAsset関数を呼び出し、curBalance変数が誤って更新されることを引き起こします。これにより、攻撃者はフラッシュローンを返済した後、withdraw関数を通じて追加資金を引き出すことができるようになります。

! [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. トークン交換機能を実現する際には、さまざまなトークンタイプと交換パスがもたらすセキュリティリスクを考慮する必要があります。

  2. "チェック-効果-相互作用"(Checks-Effects-Interactions)のコーディングパターンに厳密に従い、まず状態をチェックし、その後契約の状態を更新し、最後に外部契約と相互作用します。

  3. 再入ロックなどのセキュリティメカニズムを実装し、再入攻撃の発生を防ぐ。

  4. 資金操作に関わる重要な関数については、包括的なセキュリティ監査とテストを実施する必要があります。

  5. 引き出しの遅延やマルチシグなどの追加のセキュリティ対策を導入することを検討し、攻撃の難易度を上げます。

これらの対策を講じることで、スマートコントラクトが攻撃されるリスクを大幅に低減し、プロジェクトの全体的な安全性を向上させることができます。Web3エコシステムでは、安全性は常に最優先の考慮事項であるべきです。

TOKEN4.31%
原文表示
このページには第三者のコンテンツが含まれている場合があり、情報提供のみを目的としております(表明・保証をするものではありません)。Gateによる見解の支持や、金融・専門的な助言とみなされるべきものではありません。詳細については免責事項をご覧ください。
  • 報酬
  • 5
  • 共有
コメント
0/400
EntryPositionAnalystvip
· 2時間前
またチームがうっかりしてしまった。損をして学ぶ。
原文表示返信0
BearMarketSurvivorvip
· 2時間前
再び主戦場を攻撃され、戦闘ダメージは290wでした
原文表示返信0
PaperHandSistervip
· 2時間前
また大損です。なぜ契約の隙間を狙っているのですか?
原文表示返信0
NeverVoteOnDAOvip
· 2時間前
また契約の脆弱性が発生した。終わりがない。
原文表示返信0
BearMarketSurvivorvip
· 2時間前
また暗くなった?安全なウォレットは他に何があるの?
原文表示返信0
  • ピン
いつでもどこでも暗号資産取引
qrCode
スキャンしてGateアプリをダウンロード
コミュニティ
日本語
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)