تعرض OrionProtocol لهجوم إعادة دخول أدى إلى خسارة حوالي 2.9 مليون دولار

تحليل حادثة هجوم إعادة الدخول على OrionProtocol

في 2 فبراير 2023 الساعة 15:40:20 بتوقيت UTC، تعرض OrionProtocol على شبكة الإيثيريوم وسلسلة بينانس الذكية لهجوم إعادة إدخال بسبب ثغرة في العقد. حقق المهاجم ربحًا قدره 2,844,766 USDT من شبكة الإيثيريوم و191,606 BUSD من سلسلة بينانس الذكية، ليكون إجمالي الخسائر حوالي 2.9 مليون دولار.

تحليل عملية الهجوم

قام المهاجم أولاً بنشر عقد توكن مخصص، وأجرى سلسلة من التحضيرات. بعد ذلك، اقترض المهاجم الأموال من خلال دالة swap في أحد DEXs، واستدعى دالة ExchangeWithAtomic.swapThroughOrionPool من OrionProtocol لتبادل الرموز. تحتوي مسار التبادل على عنوان عقد التوكن الذي أنشأه المهاجم، مما يمهد الطريق لهجوم الاسترجاع الذي يلي.

خلال عملية التبادل، نظرًا لأن عقد توكن المهاجم يحتوي على منطق رد النداء، فإن كل عملية تحويل ستؤدي إلى استدعاء متكرر لطريقة ExchangeWithAtomic.depositAsset. وهذا يؤدي إلى إضافة مبلغ الإيداع عدة مرات، وفي النهاية يحصل المهاجم على أرباح زائدة من خلال عملية السحب.

! [تحليل هجوم إعادة دخول OrionProtocol باستخدام PoC](https://img-cdn.gateio.im/webp-social/moments-730464b2d4d7f6e0ff21a0289a2d5d68.webp0192837465674839201

تدفق الأموال

تأتي الأموال الأولية للمهاجم من محفظة ساخنة على منصة تداول معينة. بعد نجاح الهجوم، من بين 1,651 ETH التي تم الحصول عليها، لا يزال 657.5 ETH في عنوان محفظة المهاجم، وتم نقل الباقي من خلال خدمة خلط العملات.

! [تحليل هجوم إعادة دخول OrionProtocol مع PoC])https://img-cdn.gateio.im/webp-social/moments-caac189901b7aaad5abd8be30bb4361a.webp(

تحليل الثغرات

تتمثل جوهر الثغرة في دالة doSwapThroughOrionPool و _doSwapTokens لعقد ExchangeWithAtomic. هذه الدوال تحدث المتغير curBalance فقط بعد تنفيذ تحويلات الرموز، مما يمنح المهاجمين فرصة للاستفادة من هجمات إعادة الإدخال. يقوم المهاجم بإضافة منطق رد الاتصال في دالة transfer للرموز المخصصة، مما يؤدي إلى تحديث غير صحيح ل curBalance، وبالتالي يمكنه سحب أموال إضافية بعد سداد القرض السريع.

! [تحليل هجوم إعادة دخول OrionProtocol مع PoC])https://img-cdn.gateio.im/webp-social/moments-7e21c34158a85d4c387fcdbec136d31b.webp(

! [تحليل هجوم إعادة دخول OrionProtocol باستخدام PoC])https://img-cdn.gateio.im/webp-social/moments-24819b5154419e86ea523a25a9101f67.webp(

! [تحليل هجوم إعادة دخول OrionProtocol مع PoC])https://img-cdn.gateio.im/webp-social/moments-7c4bde9d6a35da4304844a3bbb934fae.webp(

! [تحليل هجوم إعادة دخول OrionProtocol باستخدام PoC])https://img-cdn.gateio.im/webp-social/moments-7239f8886fe83c1da8b1b42545185811.webp(

إعادة إنتاج الهجوم

قدم الباحثون جزءًا من كود POC لمحاكاة عملية الهجوم. أظهرت نتائج الاختبارات أن المهاجم تمكن من استغلال ثغرة في العقد للحصول على USDT إضافية.

![تحليل هجوم إعادة الدخول على بروتوكول أوريون مع PoC])https://img-cdn.gateio.im/webp-social/moments-e5042932f0e1b7fa96e3f6e749231957.webp(

! [تحليل هجوم إعادة دخول OrionProtocol باستخدام PoC])https://img-cdn.gateio.im/webp-social/moments-4bd31735de09c63c490488e887118038.webp(

! [تحليل هجوم إعادة دخول OrionProtocol باستخدام PoC])https://img-cdn.gateio.im/webp-social/moments-cd401091e63ab21864f39cd650014b97.webp(

! [تحليل هجوم إعادة دخول OrionProtocol باستخدام PoC])https://img-cdn.gateio.im/webp-social/moments-e010d0f0c02fb8bbc648f755b0ac464c.webp(

! [تحليل هجوم إعادة الدخول OrionProtocol باستخدام PoC])https://img-cdn.gateio.im/webp-social/moments-f3c5f9416cfb9b7b791d86eeffb933be.webp(

نصائح الأمان

بالنسبة لهذا النوع من الهجمات، يُنصح الجهة المعنية بالمشروع بما يلي:

  1. عند تنفيذ وظيفة تبادل الرموز في العقد، يجب مراعاة المخاطر الأمنية المحتملة الناتجة عن أنواع الرموز المختلفة ومسارات التبادل.
  2. الالتزام الصارم بنمط الترميز "التحقق - التأثير - التفاعل" (Checks-Effects-Interactions) ، أي إجراء التحقق من الشروط أولاً ، ثم تحديث متغيرات الحالة ، وأخيرًا تنفيذ المكالمات الخارجية.
  3. استخدم قفل إعادة الدخول أو آلية مشابهة لمنع هجمات إعادة الدخول قبل تحديث المتغيرات الرئيسية.
  4. إجراء تدقيق دوري للكود واختبارات الأمان، واكتشاف وإصلاح الثغرات المحتملة في الوقت المناسب.

تسلط هذه الحادثة الضوء مرة أخرى على أهمية أمان العقود الذكية. يجب على فريق المشروع أن يواصل متابعة القضايا الأمنية، وأن يتخذ تدابير حماية شاملة لضمان أمان أصول المستخدمين واستقرار المشروع على المدى الطويل.

TOKEN-0.5%
ETH1.81%
شاهد النسخة الأصلية
قد تحتوي هذه الصفحة على محتوى من جهات خارجية، يتم تقديمه لأغراض إعلامية فقط (وليس كإقرارات/ضمانات)، ولا ينبغي اعتباره موافقة على آرائه من قبل Gate، ولا بمثابة نصيحة مالية أو مهنية. انظر إلى إخلاء المسؤولية للحصول على التفاصيل.
  • أعجبني
  • 7
  • إعادة النشر
  • مشاركة
تعليق
0/400
rug_connoisseurvip
· منذ 7 س
مرة أخرى، فشلت عقد ذكي آخر
شاهد النسخة الأصليةرد0
SchroedingerGasvip
· منذ 16 س
مرة أخرى تم انتزاع الصوف من من؟
شاهد النسخة الأصليةرد0
DAOTruantvip
· منذ 16 س
تم سحب عقد آخر
شاهد النسخة الأصليةرد0
MainnetDelayedAgainvip
· منذ 16 س
هذه حالة أخرى تدخل قاعدة البيانات الإحصائية، لا ينبغي أن تحدث.
شاهد النسخة الأصليةرد0
GateUser-5854de8bvip
· منذ 16 س
تمت سرقة العقد مرة أخرى...
شاهد النسخة الأصليةرد0
MEV_Whisperervip
· منذ 16 س
مرة أخرى إعادة الدخول، هربت هربت
شاهد النسخة الأصليةرد0
SignatureVerifiervip
· منذ 17 س
*sigh* فشل إعادة الدخول في كتاب مدرسي آخر. إحصائيًا لا مفر منه مع عدم كفاية فحوصات التحقق. لقد رأيت هذا قادمًا بصراحة.
شاهد النسخة الأصليةرد0
  • تثبيت