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.
Euler Finance は 1 億 9,700 万ドルのフラッシュローンに襲われました donateToReserves 関数には脆弱性があります
Euler Financeはフラッシュローン攻撃を受け、約2億ドルの損失を被った
2023年3月13日、Euler Financeプロジェクトは重大なフラッシュローン攻撃に遭いました。オンチェーン監視データによると、攻撃者はプロジェクト契約内の脆弱性を利用して、約1.97億ドルの資金を成功裏に盗み出し、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を取得します。
オイラー議定書の10倍のレバレッジを活用して、1億9,560万eDAIと2億dDAIを貸し出します。
残りの1000万DAIを使用して一部の債務を返済し、対応するdDAIを焼却します。
同じ量のeDAIとdDAIを再度借り出します。
donateToReserves関数を通じて1億eDAIを寄付し、次に清算関数を呼び出して清算し、3億1,000万dDAIと2億5,000万eDAIを取得します。
最後に38.9百万DAIを引き出し、30百万フラッシュローンを返済し、純利益は約8.87百万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)
脆弱性の原因分析
今回の攻撃の核心的な脆弱性は、Euler Financeの契約におけるdonateToReserves関数に必要な流動性チェックが欠如していることです。他の重要な関数(mint関数など)と比較して、donateToReserves関数はcheckLiquidity操作を実行しておらず、これにより攻撃者は自らのアカウントの状態を操作し、清算される条件を満たすことができました。
通常、checkLiquidity関数はRiskManagerモジュールを呼び出し、ユーザーのeToken数が常にdToken数よりも大きいことを確認します。しかし、donateToReserves関数がこの重要なステップを欠いているため、攻撃者はセキュリティメカニズムを回避し、不当な利益を得ることができました。
! [オイラーファイナンスの脆弱性分析:フラッシュローンに攻撃され、1億9,700万ドルを失う方法] ](https://img-cdn.gateio.im/webp-social/moments-c071e7e84eb0dc7826b7c954f546987e.webp)
セキュリティに関する提案
このような攻撃に対して、ブロックチェーンプロジェクトは以下のことを行うべきです:
コントラクトのローンチ前に包括的なセキュリティ監査を行い、コードの品質と安全性を確保します。
借入関連プロジェクトにおける資金返還、流動性検査、債務清算などの重要な段階に特に注目する。
ユーザー資産の状態に影響を与える可能性のあるすべての関数が、必要なセキュリティチェックステップを含むことを確認してください。
定期的にコードレビューと脆弱性スキャンを行い、潜在的なリスクを迅速に修正します。
緊急事態に備えて、マルチシグネチャー機構やタイムロックなどの追加のセキュリティ対策を導入し、バッファ時間を確保することを検討してください。
今回の事件は、スマートコントラクトのセキュリティの重要性を再び浮き彫りにしました。プロジェクト側は常に安全を最優先とし、継続的なセキュリティプラクティスと技術革新を通じて、より安全で信頼性の高いWeb3エコシステムを共に構築すべきです。
! [オイラーファイナンスの脆弱性分析:フラッシュローンに攻撃され、1億9,700万ドルを失う方法] ](https://img-cdn.gateio.im/webp-social/moments-a00d28f9fe7463d52cfd055540fad6af.webp)