# Euler Financeがフラッシュローン攻撃に遭い、約2億ドルの損失2023年3月13日、Euler Financeプロジェクトはスマートコントラクトの脆弱性によりフラッシュローン攻撃を受け、約1.97億ドルの重大な損失を被りました。攻撃者は、コントラクト内のdonateToReserves関数に流動性チェックが欠如している脆弱性を利用し、複数回の操作を通じて攻撃を完了しました。! [オイラーファイナンスの脆弱性分析:フラッシュローンに攻撃され、1億9,700万ドルを失う方法] ](https://img-cdn.gateio.im/social/moments-d96e9a72838647eecb62e1dfc48f2f5d)## 攻撃プロセス分析攻撃者の主な手順は以下の通りです。1. ある貸出プラットフォームから3000万DAIをフラッシュローンで借り入れ、貸出と清算の2つの契約を展開しました。2. オイラー議定書契約に2,000万DAIを賭けて、1,950万eDAIを取得します。3. オイラー議定書の10倍のレバレッジを活用して、1億9,560万eDAIと2億dDAIを貸し出します。4. 残りの1000万DAIで一部の債務を返済し、対応するdDAIを焼却し、その後再び同等の数量のeDAIとdDAIを借り出す。5. donateToReserves関数を通じて1億eDAIを寄付し、次に清算関数を呼び出して清算し、3億1,000万dDAIと2億5,000万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)## 脆弱性の原因攻撃の核心は、Euler Financeの契約内の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がフラッシュローン攻撃を受け、約2億ドルの損失を被った
Euler Financeがフラッシュローン攻撃に遭い、約2億ドルの損失
2023年3月13日、Euler Financeプロジェクトはスマートコントラクトの脆弱性によりフラッシュローン攻撃を受け、約1.97億ドルの重大な損失を被りました。攻撃者は、コントラクト内のdonateToReserves関数に流動性チェックが欠如している脆弱性を利用し、複数回の操作を通じて攻撃を完了しました。
! [オイラーファイナンスの脆弱性分析:フラッシュローンに攻撃され、1億9,700万ドルを失う方法] ](https://img-cdn.gateio.im/webp-social/moments-d96e9a72838647eecb62e1dfc48f2f5d.webp)
攻撃プロセス分析
攻撃者の主な手順は以下の通りです。
ある貸出プラットフォームから3000万DAIをフラッシュローンで借り入れ、貸出と清算の2つの契約を展開しました。
オイラー議定書契約に2,000万DAIを賭けて、1,950万eDAIを取得します。
オイラー議定書の10倍のレバレッジを活用して、1億9,560万eDAIと2億dDAIを貸し出します。
残りの1000万DAIで一部の債務を返済し、対応するdDAIを焼却し、その後再び同等の数量のeDAIとdDAIを借り出す。
donateToReserves関数を通じて1億eDAIを寄付し、次に清算関数を呼び出して清算し、3億1,000万dDAIと2億5,000万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)
脆弱性の原因
攻撃の核心は、Euler Financeの契約内のdonateToReserves関数が必要な流動性チェックを欠いていることです。他の重要な関数(mintなど)と比較して、donateToReserves関数はユーザーの流動性検証のためにcheckLiquidityを呼び出していません。これにより、攻撃者は特定の操作を通じて自分自身を清算可能な状態に置き、その後清算を完了して利益を得ることができます。
通常、checkLiquidity関数はRiskManagerモジュールを呼び出し、ユーザーのEtokenが常にDtokenより大きいことを確認して、契約の安全性を維持します。しかし、donateToReserves関数はこの重要なステップをスキップし、深刻なセキュリティの脆弱性を引き起こしました。
! [オイラーファイナンスの脆弱性分析:フラッシュローンに攻撃され、1億9,700万ドルを失う方法] ](https://img-cdn.gateio.im/webp-social/moments-a00d28f9fe7463d52cfd055540fad6af.webp)
レッスン&アドバイス
今回の事件は、スマートコントラクトのセキュリティ監査の重要性を再度強調しました。貸借型プロジェクトにおいては、以下のいくつかの重要な側面に特に注意を払う必要があります:
プロジェクトチームは、ローンチ前に包括的なセキュリティ監査を行い、契約の各機能が厳格なセキュリティチェックを受けていることを確認する必要があります。同時に、継続的なセキュリティ監視とバグバウンティプログラムも、プロジェクトの長期的な安全を確保するための有効な手段です。
さらに、開発者は関数間の一貫性に注意し、重要なセキュリティチェック(流動性チェックなど)がすべての関連関数で正しく実施されることを確認する必要があります。これには主要な機能だけでなく、寄付などの補助機能も含まれるべきです。
最後に、プロジェクトチームと開発者は新たな攻撃手法に対して警戒を怠らず、進化し続けるブロックチェーンのセキュリティ脅威に対処するために定期的にセキュリティポリシーを更新することをお勧めします。