في 2 فبراير 2023 بعد الظهر، تعرض بروتوكول أوريون على شبكة إيثريوم وسلسلة بينانس الذكية لهجوم إعادة دخول بسبب ثغرة في العقد، مما أدى إلى خسارة إجمالية تصل إلى حوالي 2.9 مليون دولار من الأصول، بما في ذلك 2,844,766 USDT على إيثريوم و191,606 BUSD على سلسلة بينانس الذكية.
تحليل عملية الهجوم
قام المهاجم أولاً بنشر عقد Token مخصص، وأجرى العمليات المتعلقة بالتحويل والتفويض، استعداداً للهجوم اللاحق. ثم، قام المهاجم من خلال دالة swap في Uniswap V2 بإجراء عملية اقتراض، واستدعى طريقة ExchangeWithAtomic.swapThroughOrionPool من OrionProtocol لتبادل الرموز.
تم تعيين مسار التحويل إلى [USDC، توكن المهاجم، USDT]، حيث يُستخدم توكن المهاجم لتنفيذ عمليات الاستدعاء. خلال عملية التحويل، نظرًا لأن عقد توكن المهاجم يحتوي على منطق الاستدعاء، يؤدي ذلك إلى استدعاء وظيفة ExchangeWithAtomic.depositAsset من خلال Token.Transfer أثناء تنفيذ طريقة ExchangeWithAtomic.swapThroughOrionPool، مما يحقق هجوم إعادة الإدخال. وهذا يؤدي إلى تكرار إضافة مبلغ الإيداع، وفي النهاية يحقق المهاجم الربح من خلال عملية السحب.
تدفق الأموال
مصدر الأموال الأولية للمهاجمين كان من محفظة ساخنة لواحدة من منصات التداول الكبرى. من بين 1,651 إيثيريوم التي حصلوا عليها من الهجوم، لا زالت 657.5 إيثيريوم في عنوان محفظة المهاجم، بينما تم تحويل البقية عبر خدمات خلط العملات.
تظهر المشكلة الأساسية في الثغرة في دالة doSwapThroughOrionPool. تستدعي هذه الدالة دالة _doSwapTokens، وبعد تنفيذ عملية التحويل، يتم تحديث متغير curBalance. استغل المهاجمون منطق الاستدعاء المضاف في دالة transfer الخاصة بالتوكن المخصص، حيث تم استدعاء دالة depositAsset مرة أخرى أثناء عملية التحويل، مما أدى إلى تحديث غير صحيح لمتغير curBalance. وقد أدى ذلك إلى تمكين المهاجمين من سحب أموال إضافية من خلال دالة withdraw بعد سداد القرض السريع.
لتجنب هجمات مماثلة، ينبغي على فريق المشروع الانتباه إلى النقاط التالية:
عند تنفيذ وظيفة تحويل الرموز، يجب أخذ في الاعتبار المخاطر الأمنية التي قد تنجم عن أنواع متعددة من الرموز ومسارات التحويل.
الالتزام الصارم بنمط الترميز "الفحص - التأثير - التفاعل" (Checks-Effects-Interactions) أي إجراء فحص الحالة أولاً، ثم تحديث حالة العقد، وأخيرًا التفاعل مع العقود الخارجية.
تنفيذ آلية القفل المعاد وغيرها من آليات الأمان لمنع حدوث هجمات إعادة الدخول.
يجب إجراء تدقيق أمني شامل واختبار للوظائف الرئيسية المتعلقة بعمليات الأموال.
النظر في إدخال تدابير أمان إضافية مثل السحب المتأخر أو التوقيع المتعدد لزيادة صعوبة الهجوم.
من خلال اتخاذ هذه التدابير، يمكن تقليل خطر تعرض العقود الذكية للهجمات بشكل كبير، وزيادة الأمان العام للمشاريع. في نظام Web3 البيئي، يجب أن تكون الأمان دائمًا الاعتبار الأول.
قد تحتوي هذه الصفحة على محتوى من جهات خارجية، يتم تقديمه لأغراض إعلامية فقط (وليس كإقرارات/ضمانات)، ولا ينبغي اعتباره موافقة على آرائه من قبل Gate، ولا بمثابة نصيحة مالية أو مهنية. انظر إلى إخلاء المسؤولية للحصول على التفاصيل.
تسجيلات الإعجاب 8
أعجبني
8
5
مشاركة
تعليق
0/400
EntryPositionAnalyst
· منذ 4 س
مرة أخرى، كان الفريق مهملًا، وعليهم أن يتعلموا من الخسائر.
شاهد النسخة الأصليةرد0
BearMarketSurvivor
· منذ 4 س
ساحة المعركة الرئيسية تتعرض لهجوم مفاجئ، الخسائر 290 مليون
شاهد النسخة الأصليةرد0
PaperHandSister
· منذ 5 س
مدمر لماذا تركز دائمًا على ثغرات العقود؟
شاهد النسخة الأصليةرد0
NeverVoteOnDAO
· منذ 5 س
مرة أخرى ثغرة في العقد لا تنتهي
شاهد النسخة الأصليةرد0
BearMarketSurvivor
· منذ 5 س
هل أصبح داكناً مرة أخرى؟ ما هي المحافظ الآمنة المتاحة؟
تعرض OrionProtocol لهجوم إعادة الدخول وخسر أصولًا بقيمة 2.9 مليون دولار
تحليل حادثة الهجوم المتكرر على OrionProtocol
في 2 فبراير 2023 بعد الظهر، تعرض بروتوكول أوريون على شبكة إيثريوم وسلسلة بينانس الذكية لهجوم إعادة دخول بسبب ثغرة في العقد، مما أدى إلى خسارة إجمالية تصل إلى حوالي 2.9 مليون دولار من الأصول، بما في ذلك 2,844,766 USDT على إيثريوم و191,606 BUSD على سلسلة بينانس الذكية.
تحليل عملية الهجوم
قام المهاجم أولاً بنشر عقد Token مخصص، وأجرى العمليات المتعلقة بالتحويل والتفويض، استعداداً للهجوم اللاحق. ثم، قام المهاجم من خلال دالة swap في Uniswap V2 بإجراء عملية اقتراض، واستدعى طريقة ExchangeWithAtomic.swapThroughOrionPool من OrionProtocol لتبادل الرموز.
تم تعيين مسار التحويل إلى [USDC، توكن المهاجم، USDT]، حيث يُستخدم توكن المهاجم لتنفيذ عمليات الاستدعاء. خلال عملية التحويل، نظرًا لأن عقد توكن المهاجم يحتوي على منطق الاستدعاء، يؤدي ذلك إلى استدعاء وظيفة ExchangeWithAtomic.depositAsset من خلال Token.Transfer أثناء تنفيذ طريقة ExchangeWithAtomic.swapThroughOrionPool، مما يحقق هجوم إعادة الإدخال. وهذا يؤدي إلى تكرار إضافة مبلغ الإيداع، وفي النهاية يحقق المهاجم الربح من خلال عملية السحب.
تدفق الأموال
مصدر الأموال الأولية للمهاجمين كان من محفظة ساخنة لواحدة من منصات التداول الكبرى. من بين 1,651 إيثيريوم التي حصلوا عليها من الهجوم، لا زالت 657.5 إيثيريوم في عنوان محفظة المهاجم، بينما تم تحويل البقية عبر خدمات خلط العملات.
! تحليل هجوم إعادة دخول OrionProtocol مع PoC
تحليل الثغرات
تظهر المشكلة الأساسية في الثغرة في دالة doSwapThroughOrionPool. تستدعي هذه الدالة دالة _doSwapTokens، وبعد تنفيذ عملية التحويل، يتم تحديث متغير curBalance. استغل المهاجمون منطق الاستدعاء المضاف في دالة transfer الخاصة بالتوكن المخصص، حيث تم استدعاء دالة depositAsset مرة أخرى أثناء عملية التحويل، مما أدى إلى تحديث غير صحيح لمتغير curBalance. وقد أدى ذلك إلى تمكين المهاجمين من سحب أموال إضافية من خلال دالة withdraw بعد سداد القرض السريع.
! تحليل هجوم إعادة دخول OrionProtocol مع PoC
! تحليل هجوم إعادة دخول OrionProtocol باستخدام PoC
! تحليل هجوم إعادة دخول OrionProtocol مع PoC
! تحليل هجوم إعادة الدخول OrionProtocol مع PoC
! تحليل هجوم إعادة دخول OrionProtocol باستخدام PoC
! تحليل هجوم إعادة دخول OrionProtocol باستخدام PoC
! تحليل هجوم إعادة دخول OrionProtocol باستخدام PoC
! تحليل هجوم إعادة الدخول OrionProtocol باستخدام PoC
نصائح الأمان
لتجنب هجمات مماثلة، ينبغي على فريق المشروع الانتباه إلى النقاط التالية:
عند تنفيذ وظيفة تحويل الرموز، يجب أخذ في الاعتبار المخاطر الأمنية التي قد تنجم عن أنواع متعددة من الرموز ومسارات التحويل.
الالتزام الصارم بنمط الترميز "الفحص - التأثير - التفاعل" (Checks-Effects-Interactions) أي إجراء فحص الحالة أولاً، ثم تحديث حالة العقد، وأخيرًا التفاعل مع العقود الخارجية.
تنفيذ آلية القفل المعاد وغيرها من آليات الأمان لمنع حدوث هجمات إعادة الدخول.
يجب إجراء تدقيق أمني شامل واختبار للوظائف الرئيسية المتعلقة بعمليات الأموال.
النظر في إدخال تدابير أمان إضافية مثل السحب المتأخر أو التوقيع المتعدد لزيادة صعوبة الهجوم.
من خلال اتخاذ هذه التدابير، يمكن تقليل خطر تعرض العقود الذكية للهجمات بشكل كبير، وزيادة الأمان العام للمشاريع. في نظام Web3 البيئي، يجب أن تكون الأمان دائمًا الاعتبار الأول.