تعرضت Euler Finance لهجوم القرض الفوري، وخسائرها بلغت 1.97 مليار دولار
في 13 مارس 2023، تعرض مشروع Euler Finance لهجوم كبير للقروض السريعة بسبب ثغرة في عقده الذكي. استغل المهاجمون ثغرة عدم وجود فحص للسيولة في دالة donateToReserves في Etoken، من خلال إجراء عمليات مختلفة باستخدام عملات متعددة للحصول على أرباح ضخمة. بلغت الخسائر الإجمالية الناتجة عن هذا الهجوم 197 مليون دولار، وشمل ذلك 6 أنواع مختلفة من الرموز.
تحليل عملية الهجوم
خطوات العملية للمهاجم كالتالي:
اقتراض 3000万 DAI من منصة القروض السريعة.
نشر عقدين: واحد للإقراض والآخر للتسوية.
قم بتجميد 20000000 DAI في عقد بروتوكول Euler للحصول على 195000 eDAI.
استخدم خاصية الإقراض بالرافعة المالية 10x من بروتوكول Euler لاقتراض 195.6 ألف eDAI و200 ألف dDAI.
استخدام 10,000,000 DAI المتبقية لسداد جزء من الديون، وإتلاف dDAI المقابل.
اقتراض مرة أخرى 195.6 ألف eDAI و 200 ألف dDAI.
استدعاء دالة donateToReserves، والتبرع بمبلغ 10 أضعاف قيمة الأموال المستردة (1 مليون eDAI).
تفعيل دالة التسوية، والحصول على 3100000 dDAI و 2500000 eDAI.
سحب 38.9 ألف DAI، سداد 300 ألف القروض السريعة، وتحقيق ربح نهائي قدره 88.7 ألف DAI.
تحليل الثغرات
كان المفتاح لنجاح الهجوم هو أن دالة donateToReserves في Euler Finance تفتقر إلى فحص السيولة الضروري. بالمقارنة مع الوظائف الأساسية الأخرى (مثل mint)، لم تقم دالة donateToReserves بتنفيذ خطوة checkLiquidity. أدى هذا الإغفال إلى تمكين المستخدمين من التلاعب بحالة حساباتهم لتلبية شروط التصفية، ثم تحقيق الربح من خلال التصفية.
في الظروف العادية، ستقوم دالة checkLiquidity باستدعاء وحدة RiskManager، لضمان أن تكون Etoken الخاصة بالمستخدم دائمًا أكبر من Dtoken، للحفاظ على حالة النظام الصحية. ومع ذلك، نظرًا لافتقار دالة donateToReserves لهذه الفحص الحاسم، تمكن المهاجم من تجاوز آلية الأمان في النظام.
نصائح السلامة
نقترح النصائح الأمنية التالية لمواجهة هذا النوع من الهجمات:
يجب إجراء تدقيق أمني شامل قبل إطلاق العقد الذكي.
يجب على المشاريع المتعلقة بالاقتراض أن تولي اهتمامًا خاصًا لعملية سداد الأموال، واختبار السيولة، وتصفيات الديون.
تأكد من أن جميع الوظائف التي قد تؤثر على حالة أصول المستخدم تتضمن الفحوصات الأمنية اللازمة.
إجراء مراجعة دورية للشيفرة، للتأكد من أن الميزات الجديدة لا تفعل ثغرات محتملة.
إنشاء آلية استجابة للطوارئ للتفاعل بسرعة عند حدوث أحداث أمنية.
تسلط هذه الحادثة الضوء مرة أخرى على أهمية أمان العقود الذكية. يجب على فريق المشروع دائمًا وضع الأمان في المقام الأول، من خلال ممارسات الأمان المستمرة والتدقيق لحماية أصول المستخدمين.
قد تحتوي هذه الصفحة على محتوى من جهات خارجية، يتم تقديمه لأغراض إعلامية فقط (وليس كإقرارات/ضمانات)، ولا ينبغي اعتباره موافقة على آرائه من قبل Gate، ولا بمثابة نصيحة مالية أو مهنية. انظر إلى إخلاء المسؤولية للحصول على التفاصيل.
تعرض Euler Finance لهجوم قرض فوري بقيمة 1.97 مليار دولار أمريكي، وخلل في العقود الذكية أدى إلى خسائر كبيرة.
تعرضت Euler Finance لهجوم القرض الفوري، وخسائرها بلغت 1.97 مليار دولار
في 13 مارس 2023، تعرض مشروع Euler Finance لهجوم كبير للقروض السريعة بسبب ثغرة في عقده الذكي. استغل المهاجمون ثغرة عدم وجود فحص للسيولة في دالة donateToReserves في Etoken، من خلال إجراء عمليات مختلفة باستخدام عملات متعددة للحصول على أرباح ضخمة. بلغت الخسائر الإجمالية الناتجة عن هذا الهجوم 197 مليون دولار، وشمل ذلك 6 أنواع مختلفة من الرموز.
تحليل عملية الهجوم
خطوات العملية للمهاجم كالتالي:
تحليل الثغرات
كان المفتاح لنجاح الهجوم هو أن دالة donateToReserves في Euler Finance تفتقر إلى فحص السيولة الضروري. بالمقارنة مع الوظائف الأساسية الأخرى (مثل mint)، لم تقم دالة donateToReserves بتنفيذ خطوة checkLiquidity. أدى هذا الإغفال إلى تمكين المستخدمين من التلاعب بحالة حساباتهم لتلبية شروط التصفية، ثم تحقيق الربح من خلال التصفية.
في الظروف العادية، ستقوم دالة checkLiquidity باستدعاء وحدة RiskManager، لضمان أن تكون Etoken الخاصة بالمستخدم دائمًا أكبر من Dtoken، للحفاظ على حالة النظام الصحية. ومع ذلك، نظرًا لافتقار دالة donateToReserves لهذه الفحص الحاسم، تمكن المهاجم من تجاوز آلية الأمان في النظام.
نصائح السلامة
نقترح النصائح الأمنية التالية لمواجهة هذا النوع من الهجمات:
تسلط هذه الحادثة الضوء مرة أخرى على أهمية أمان العقود الذكية. يجب على فريق المشروع دائمًا وضع الأمان في المقام الأول، من خلال ممارسات الأمان المستمرة والتدقيق لحماية أصول المستخدمين.