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

robot
إنشاء الملخص قيد التقدم

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

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

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

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

عند تنفيذ طريقة swapThroughOrionPool، أدى وجود وظيفة الاستدعاء في عقد توكن الخاص بالمهاجم إلى حدوث هجوم إعادة الدخول خلال عملية التحويل. استغل المهاجم طريقة Token.Transfer لاستدعاء دالة ExchangeWithAtomic.depositAsset بشكل متكرر، مما أدى إلى زيادة مبلغ الإيداع بشكل مستمر. في النهاية، أكمل المهاجم عملية السحب لتحقيق الربح.

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

تدفق الأموال

وفقًا لبيانات السلسلة، جاءت الأموال الأولية للمهاجم من محفظة ساخنة لواجهة تداول معينة. من بين 1,651 إيثريوم التي تم تحقيقها، لا يزال 657.5 في عنوان محفظة المهاجم، بينما تم نقل الباقي من خلال خدمات خلط العملات.

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

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

تتمثل جوهر الثغرة في وظيفة doSwapThroughOrionPool لعقد ExchangeWithAtomic. تحتوي هذه الوظيفة على عيب منطقي أثناء تنفيذ عملية _doSwapTokens. على وجه التحديد، يقوم الكود بتحديث متغير curBalance بعد تنفيذ التحويل، مما يخلق ظروفاً لهجوم إعادة الإدخال.

المهاجمون يضيفون منطق الاستدعاء في دالة transfer لرمز مخصص، مما يؤدي إلى استدعاء دالة depositAsset بشكل متكرر، مما يتسبب في تحديث غير صحيح لـ curBalance. في النهاية، بعد سداد القرض السريع، يستدعي المهاجمون دالة withdraw لسحب الأموال الزائدة.

! [تحليل هجوم إعادة دخول 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(

! [تحليل هجوم إعادة الدخول OrionProtocol مع 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. إجراء تدقيق دوري للكود واختبارات الأمان، لاكتشاف وإصلاح الثغرات المحتملة في الوقت المناسب.

  5. استخدام مكتبات أمان ناضجة وأفضل الممارسات، مثل SafeERC20 من OpenZeppelin.

من خلال اتخاذ هذه التدابير، يمكن تقليل مخاطر تعرض العقود الذكية للهجمات بشكل كبير، مما يزيد من الأمان العام للمشروع.

TOKEN0.19%
شاهد النسخة الأصلية
قد تحتوي هذه الصفحة على محتوى من جهات خارجية، يتم تقديمه لأغراض إعلامية فقط (وليس كإقرارات/ضمانات)، ولا ينبغي اعتباره موافقة على آرائه من قبل Gate، ولا بمثابة نصيحة مالية أو مهنية. انظر إلى إخلاء المسؤولية للحصول على التفاصيل.
  • أعجبني
  • 6
  • إعادة النشر
  • مشاركة
تعليق
0/400
ser_ngmivip
· منذ 18 س
لقد نفد المال مرة أخرى
شاهد النسخة الأصليةرد0
PretendingToReadDocsvip
· منذ 18 س
كل يوم تحدث مشكلات، ماذا نفعل؟
شاهد النسخة الأصليةرد0
LiquidityWizardvip
· منذ 18 س
اهرب محددا مسبقا ~
شاهد النسخة الأصليةرد0
degenonymousvip
· منذ 18 س
حمقى مرة أخرى تم خداع الناس لتحقيق الربح
شاهد النسخة الأصليةرد0
CountdownToBrokevip
· منذ 18 س
قفز آخر
شاهد النسخة الأصليةرد0
BoredApeResistancevip
· منذ 18 س
مرة أخرى ثغرة في العقد، أكل حتى الشبع
شاهد النسخة الأصليةرد0
  • تثبيت