OrionProtocolが290万ドルのリ入攻撃を受けた 攻撃プロセスと防止策の分析

robot
概要作成中

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

2023年2月2日、OrionProtocolはイーサリアムとバイナンススマートチェーンで再入攻撃を受け、約290万ドルの損失が発生しました。攻撃者は契約の脆弱性を利用して、イーサリアムチェーン上で2,844,766 USDT、バイナンススマートチェーン上で191,606 BUSDを盗みました。

攻撃プロセス

攻撃者はまずカスタムトークンコントラクトを作成し、関連する転送および承認操作を行いました。その後、攻撃者は某DEXのスワップメソッドを使用して借入を行い、ExchangeWithAtomic.swapThroughOrionPoolメソッドを呼び出してトークンの交換を行いました。交換パスには攻撃者が作成したトークンコントラクトのアドレスが含まれています。

交換プロセス中、攻撃者のトークン契約にコールバックメカニズムが存在するため、攻撃者はToken.Transferを通じてExchangeWithAtomic.depositAssetメソッドを再度呼び出すことができ、再入攻撃を実現しました。これにより、預金額が重複して加算され、最終的に攻撃者は出金操作を通じて利益を得ました。

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

資金の流れ

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

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

脆弱性分析

この脆弱性の主な問題は、doSwapThroughOrionPool 関数にあります。 この関数は _doSwapTokens 関数を呼び出し、転送操作後に curBalance 変数を更新します。 攻撃者は、カスタムトークンの転送関数に追加されたコールバック関数を使用して、curBalanceが更新される前にdepositAsset関数を再度呼び出し、curBalanceが正しく更新されないようにします。 最終的に、攻撃者はフラッシュローンを返済した後、引き出し機能を通じて追加の資金を引き出しました。

! [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. 定期的にコード監査とセキュリティテストを実施し、潜在的な脆弱性を迅速に発見して修正します。

これらの措置を講じることで、プロジェクトは契約の安全性と安定性を大幅に向上させ、攻撃を受けるリスクを最小限に抑えることができます。

原文表示
This page may contain third-party content, which is provided for information purposes only (not representations/warranties) and should not be considered as an endorsement of its views by Gate, nor as financial or professional advice. See Disclaimer for details.
  • 報酬
  • 7
  • 共有
コメント
0/400
AirdropHunterXiaovip
· 9時間前
ブロックチェーンプロジェクトが再び薅られた
原文表示返信0
MemecoinResearchervip
· 9時間前
ngmi... 再入場の呪いが再び襲ってきたようです fr fr
原文表示返信0
NightAirdroppervip
· 9時間前
毎日ハッキングされて、本当に悲惨です。
原文表示返信0
rugpull_survivorvip
· 9時間前
人をカモにする一刀目は次の一刀目がある
原文表示返信0
LightningLadyvip
· 9時間前
コードを書く技術が素晴らしいですね
原文表示返信0
PrivacyMaximalistvip
· 9時間前
また一つのラグプルプロジェクト
原文表示返信0
NotFinancialAdviservip
· 10時間前
またプロジェクトがやられた
原文表示返信0
  • ピン
いつでもどこでも暗号資産取引
qrCode
スキャンしてGateアプリをダウンロード
コミュニティ
日本語
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)