# Euler Financeの脆弱性事件分析:フラッシュローン攻撃による1.97億ドルの損失2023年3月13日、Euler Financeプロジェクトは重大なセキュリティ事件に遭遇しました。オンチェーンモニタリングデータによると、Etoken内のdonateToReserves関数に流動性チェックの脆弱性が存在したため、プロジェクトはフラッシュローン攻撃を受けました。攻撃者は異なる通貨を使って複数回操作を行い、最終的に1億9700万ドルに達する巨額の損失を引き起こしました。6種類のトークンが関与しています。現在、この資金は攻撃者のアカウントに残っています。! [オイラーファイナンスの脆弱性分析:フラッシュローンに攻撃され、1億9,700万ドルを失う方法] ](https://img-cdn.gateio.im/social/moments-d96e9a72838647eecb62e1dfc48f2f5d)## 攻撃プロセス分析1. 攻撃者はまずある貸出プラットフォームから3000万Daiのフラッシュローンを取得し、その後2つの契約を展開しました:1つは貸出用、もう1つは清算用です。2. 攻撃者は借りた2,000万Daiをオイラー議定書契約に賭け、約1,950万eDAIを取得しました。3. Euler Protocolの10倍レバレッジ機能を利用して、攻撃者は1.956億個のeDAIと2億個のdDAIを借り出しました。4. 攻撃者は残りの1000万DAIを使って一部の債務を返済し、対応するdDAIを破棄した後、再び1.956億のeDAIと2億のdDAIを借り入れた。5. 重要なステップ:攻撃者はdonateToReserves関数を呼び出し、返済資金の10倍の金額、すなわち1億eDAIを寄付しました。その直後、攻撃者は清算関数をトリガーし、3.1億dDAIと2.5億eDAIを獲得しました。6. 最後に、攻撃者は3890万Daiを引き出し、3000万のフラッシュローンを返済し、最終的に約887万Daiの利益を得ました。! [オイラーファイナンスの脆弱性分析:フラッシュローンに攻撃され、1億9,700万ドルを失う方法] ](https://img-cdn.gateio.im/social/moments-32928681c9e7631491b5a5f1699820a9)! [オイラーファイナンスの脆弱性分析:フラッシュローンに攻撃され、1億9,700万ドルを失う方法] ](https://img-cdn.gateio.im/social/moments-6d4e5a95a6c33353e8f326a5f074b12b)! [オイラーファイナンスの脆弱性分析:フラッシュローンに攻撃され、1億9,700万ドルを失う方法] ](https://img-cdn.gateio.im/social/moments-a52f3c784e670d5ebb507b20436f78a0)! [オイラーファイナンスの脆弱性分析:フラッシュローンに攻撃され、1億9,700万ドルを失う方法] ](https://img-cdn.gateio.im/social/moments-6246cad18508cd8a8c88619d67fe149c)! [オイラーファイナンスの脆弱性分析:フラッシュローンに攻撃され、1億9,700万ドルを失う方法] ](https://img-cdn.gateio.im/social/moments-84b8e2f409d5518b194b74407b07e02e)! [オイラーファイナンスの脆弱性分析:フラッシュローンに攻撃され、1億9,700万ドルを失う方法] ](https://img-cdn.gateio.im/social/moments-17ba97f8bbe91404afdca27e5c1dc559)! [オイラーファイナンスの脆弱性分析:フラッシュローンに攻撃され、1億9,700万ドルを失う方法] ](https://img-cdn.gateio.im/social/moments-469ffb75f34d18ce6807e39d655ca789)! [オイラーファイナンスの脆弱性分析:フラッシュローンに攻撃され、1億9,700万ドルを失う方法] ](https://img-cdn.gateio.im/social/moments-365fa6b36d54052ee6efd59f44a1a6f5)! [オイラーファイナンスの脆弱性分析:フラッシュローンに攻撃され、1億9,700万ドルを失う方法] ](https://img-cdn.gateio.im/social/moments-c071e7e84eb0dc7826b7c954f546987e)## 脆弱性原因分析この攻撃の核心的な問題は、donateToReserves 関数です。 mint関数などの他の主要な関数と比較して、donateToReserves関数には重要なステップであるcheckLiquidityが欠けています。checkLiquidity関数の役割は、RiskManagerモジュールを呼び出してユーザーをチェックし、EtokenがDtokenより大きいことを確認することで、ユーザーの流動性状況を保証することです。通常、各操作のたびにこのチェックが必要です。しかし、donateToReserves関数はこのステップが欠けており、攻撃者が自分を清算可能な状態に置いた後、清算操作を完了できるようになります。! [オイラーファイナンスの脆弱性分析:フラッシュローンに攻撃され、1億9,700万ドルを失う方法] ](https://img-cdn.gateio.im/social/moments-a00d28f9fe7463d52cfd055540fad6af)## セキュリティに関するアドバイスこのような脆弱性に対して、プロジェクトチームはローンチ前に必ず包括的なセキュリティ監査を実施し、契約の安全性を確保することをお勧めします。特に貸出プロジェクトでは、以下のいくつかの側面に重点を置く必要があります。1. 資金返還メカニズムの完全性2. 流動性テストの網羅性3. 債務清算プロセスの安全性厳格なセキュリティレビューと包括的なリスク評価を通じてのみ、同様のセキュリティ事件の発生確率を最大限に低下させ、プロジェクトとユーザーの資金の安全を保障することができます。
Euler Finance が 1 億 9,700 万ドルのフラッシュ ローン攻撃に見舞われた DonateToReserves 機能の脆弱性が災害の原因
Euler Financeの脆弱性事件分析:フラッシュローン攻撃による1.97億ドルの損失
2023年3月13日、Euler Financeプロジェクトは重大なセキュリティ事件に遭遇しました。オンチェーンモニタリングデータによると、Etoken内のdonateToReserves関数に流動性チェックの脆弱性が存在したため、プロジェクトはフラッシュローン攻撃を受けました。攻撃者は異なる通貨を使って複数回操作を行い、最終的に1億9700万ドルに達する巨額の損失を引き起こしました。6種類のトークンが関与しています。現在、この資金は攻撃者のアカウントに残っています。
! [オイラーファイナンスの脆弱性分析:フラッシュローンに攻撃され、1億9,700万ドルを失う方法] ](https://img-cdn.gateio.im/webp-social/moments-d96e9a72838647eecb62e1dfc48f2f5d.webp)
攻撃プロセス分析
攻撃者はまずある貸出プラットフォームから3000万Daiのフラッシュローンを取得し、その後2つの契約を展開しました:1つは貸出用、もう1つは清算用です。
攻撃者は借りた2,000万Daiをオイラー議定書契約に賭け、約1,950万eDAIを取得しました。
Euler Protocolの10倍レバレッジ機能を利用して、攻撃者は1.956億個のeDAIと2億個のdDAIを借り出しました。
攻撃者は残りの1000万DAIを使って一部の債務を返済し、対応するdDAIを破棄した後、再び1.956億のeDAIと2億のdDAIを借り入れた。
重要なステップ:攻撃者はdonateToReserves関数を呼び出し、返済資金の10倍の金額、すなわち1億eDAIを寄付しました。その直後、攻撃者は清算関数をトリガーし、3.1億dDAIと2.5億eDAIを獲得しました。
最後に、攻撃者は3890万Daiを引き出し、3000万のフラッシュローンを返済し、最終的に約887万Daiの利益を得ました。
! [オイラーファイナンスの脆弱性分析:フラッシュローンに攻撃され、1億9,700万ドルを失う方法] ](https://img-cdn.gateio.im/webp-social/moments-32928681c9e7631491b5a5f1699820a9.webp)
! [オイラーファイナンスの脆弱性分析:フラッシュローンに攻撃され、1億9,700万ドルを失う方法] ](https://img-cdn.gateio.im/webp-social/moments-6d4e5a95a6c33353e8f326a5f074b12b.webp)
! [オイラーファイナンスの脆弱性分析:フラッシュローンに攻撃され、1億9,700万ドルを失う方法] ](https://img-cdn.gateio.im/webp-social/moments-a52f3c784e670d5ebb507b20436f78a0.webp)
! [オイラーファイナンスの脆弱性分析:フラッシュローンに攻撃され、1億9,700万ドルを失う方法] ](https://img-cdn.gateio.im/webp-social/moments-6246cad18508cd8a8c88619d67fe149c.webp)
! [オイラーファイナンスの脆弱性分析:フラッシュローンに攻撃され、1億9,700万ドルを失う方法] ](https://img-cdn.gateio.im/webp-social/moments-84b8e2f409d5518b194b74407b07e02e.webp)
! [オイラーファイナンスの脆弱性分析:フラッシュローンに攻撃され、1億9,700万ドルを失う方法] ](https://img-cdn.gateio.im/webp-social/moments-17ba97f8bbe91404afdca27e5c1dc559.webp)
! [オイラーファイナンスの脆弱性分析:フラッシュローンに攻撃され、1億9,700万ドルを失う方法] ](https://img-cdn.gateio.im/webp-social/moments-469ffb75f34d18ce6807e39d655ca789.webp)
! [オイラーファイナンスの脆弱性分析:フラッシュローンに攻撃され、1億9,700万ドルを失う方法] ](https://img-cdn.gateio.im/webp-social/moments-365fa6b36d54052ee6efd59f44a1a6f5.webp)
! [オイラーファイナンスの脆弱性分析:フラッシュローンに攻撃され、1億9,700万ドルを失う方法] ](https://img-cdn.gateio.im/webp-social/moments-c071e7e84eb0dc7826b7c954f546987e.webp)
脆弱性原因分析
この攻撃の核心的な問題は、donateToReserves 関数です。 mint関数などの他の主要な関数と比較して、donateToReserves関数には重要なステップであるcheckLiquidityが欠けています。
checkLiquidity関数の役割は、RiskManagerモジュールを呼び出してユーザーをチェックし、EtokenがDtokenより大きいことを確認することで、ユーザーの流動性状況を保証することです。通常、各操作のたびにこのチェックが必要です。しかし、donateToReserves関数はこのステップが欠けており、攻撃者が自分を清算可能な状態に置いた後、清算操作を完了できるようになります。
! [オイラーファイナンスの脆弱性分析:フラッシュローンに攻撃され、1億9,700万ドルを失う方法] ](https://img-cdn.gateio.im/webp-social/moments-a00d28f9fe7463d52cfd055540fad6af.webp)
セキュリティに関するアドバイス
このような脆弱性に対して、プロジェクトチームはローンチ前に必ず包括的なセキュリティ監査を実施し、契約の安全性を確保することをお勧めします。特に貸出プロジェクトでは、以下のいくつかの側面に重点を置く必要があります。
厳格なセキュリティレビューと包括的なリスク評価を通じてのみ、同様のセキュリティ事件の発生確率を最大限に低下させ、プロジェクトとユーザーの資金の安全を保障することができます。