في 2 فبراير 2023 بعد الظهر، تعرض عقد OrionProtocol على Ethereum وBinance Chain لهجوم إعادة دخول بسبب وجود ثغرة. تمكن المهاجمون من سرقة حوالي 2.9 مليون دولار من الأموال، بما في ذلك 2,844,766 USDT على Ethereum و191,606 BUSD على BSC.
تحليل عملية الهجوم
قام المهاجم أولاً بإنشاء عقد توكن خاص، وأجرى عليه عمليات نقل وتفويض، استعدادًا للهجوم اللاحق. بعد ذلك، قام المهاجم بالاقتراض من خلال طريقة swap الخاصة بـ UNI-V2، واستدعى طريقة swapThroughOrionPool لعقد ExchangeWithAtomic لتبادل التوكنات.
تم تعيين مسار التبادل إلى [USDC، توكن تم إنشاؤه بواسطة المهاجم، USDT]. خلال عملية التبادل، بسبب وجود وظيفة الاستدعاء في عقد توكن المهاجم، تم تفعيل هجوم إعادة الدخول أثناء تنفيذ طريقة ExchangeWithAtomic.swapThroughOrionPool. استمر المهاجم في استدعاء طريقة ExchangeWithAtomic.depositAsset من خلال Token.Transfer، مما أدى إلى تراكم مستمر في مبلغ الإيداع، وفي النهاية تم تحقيق الربح من خلال عملية السحب.
! [تحليل هجوم إعادة دخول 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. تقوم هذه الدالة بتحديث متغير 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(
تكرار الهجوم
قدّم الباحثون جزءًا من كود POC لمحاكاة عملية الهجوم. أظهرت نتائج الاختبار أن المهاجمين تمكنوا من استغلال ثغرة في العقد للحصول على USDT إضافية.
! [تحليل هجوم إعادة دخول OrionProtocol باستخدام PoC])https://img-cdn.gateio.im/webp-social/moments-7239f8886fe83c1da8b1b42545185811.webp(
! [تحليل هجوم إعادة الدخول OrionProtocol مع PoC])https://img-cdn.gateio.im/webp-social/moments-e5042932f0e1b7fa96e3f6e749231957.webp(
![تحليل هجوم إعادة الدخول بروتوكول أوريون مع 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(
نصائح الأمان
للهجمات من هذا النوع ، يُنصح بأن يأخذ الفريق القائم على المشروع في الاعتبار النقاط التالية عند تصميم العقد:
تقييم شامل للمخاطر الأمنية المحتملة الناتجة عن مجموعة متنوعة من الرموز ومسارات التبادل.
اتبع معيار الترميز "تقييم أولاً، ثم كتابة المتغيرات، ثم إجراء المكالمات الخارجية" (نموذج Checks-Effects-Interactions).
عند تنفيذ وظيفة تبادل الرموز، يجب الانتباه بشكل خاص إلى الحماية من هجمات إعادة الدخول.
إجراء تدقيق دوري للشفرة، واكتشاف وإصلاح الثغرات المحتملة في الوقت المناسب.
النظر في تنفيذ حدود لمبلغ المعاملات أو تدابير أخرى للسيطرة على المخاطر.
هذا الحدث يبرز مرة أخرى أهمية أمان العقود الذكية. يجب على المشروع أن يواصل التركيز على أمان العقود، واتخاذ تدابير نشطة لحماية أصول المستخدمين، من أجل الحفاظ على التنمية الصحية للنظام البيئي Web3.
قد تحتوي هذه الصفحة على محتوى من جهات خارجية، يتم تقديمه لأغراض إعلامية فقط (وليس كإقرارات/ضمانات)، ولا ينبغي اعتباره موافقة على آرائه من قبل Gate، ولا بمثابة نصيحة مالية أو مهنية. انظر إلى إخلاء المسؤولية للحصول على التفاصيل.
تسجيلات الإعجاب 16
أعجبني
16
6
مشاركة
تعليق
0/400
SybilSlayer
· 07-28 15:34
مرة أخرى إعادة الإدخال ممل حقا
شاهد النسخة الأصليةرد0
CantAffordPancake
· 07-28 11:05
مرة أخرى ثغرة في العقد، لقد سئمت من هذا
شاهد النسخة الأصليةرد0
GateUser-26d7f434
· 07-25 18:03
أخشى أنني سأهرب ~
شاهد النسخة الأصليةرد0
OvertimeSquid
· 07-25 17:55
مرة أخرى تم اقتطاف القسائم من العقد، يبدو أنني فقدت التركيز.
شاهد النسخة الأصليةرد0
BrokenYield
· 07-25 17:55
يوم آخر، اختراق آخر في الديفاي... ثغرات البروتوكول لا تنام أبداً
تعرض OrionProtocol لهجوم إعادة إدخال وسُرِقَ ما يقرب من 3 ملايين دولار من الأموال
تحليل حادثة هجوم إعادة الدخول على OrionProtocol
في 2 فبراير 2023 بعد الظهر، تعرض عقد OrionProtocol على Ethereum وBinance Chain لهجوم إعادة دخول بسبب وجود ثغرة. تمكن المهاجمون من سرقة حوالي 2.9 مليون دولار من الأموال، بما في ذلك 2,844,766 USDT على Ethereum و191,606 BUSD على BSC.
تحليل عملية الهجوم
قام المهاجم أولاً بإنشاء عقد توكن خاص، وأجرى عليه عمليات نقل وتفويض، استعدادًا للهجوم اللاحق. بعد ذلك، قام المهاجم بالاقتراض من خلال طريقة swap الخاصة بـ UNI-V2، واستدعى طريقة swapThroughOrionPool لعقد ExchangeWithAtomic لتبادل التوكنات.
تم تعيين مسار التبادل إلى [USDC، توكن تم إنشاؤه بواسطة المهاجم، USDT]. خلال عملية التبادل، بسبب وجود وظيفة الاستدعاء في عقد توكن المهاجم، تم تفعيل هجوم إعادة الدخول أثناء تنفيذ طريقة ExchangeWithAtomic.swapThroughOrionPool. استمر المهاجم في استدعاء طريقة ExchangeWithAtomic.depositAsset من خلال Token.Transfer، مما أدى إلى تراكم مستمر في مبلغ الإيداع، وفي النهاية تم تحقيق الربح من خلال عملية السحب.
! [تحليل هجوم إعادة دخول 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. تقوم هذه الدالة بتحديث متغير 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(
تكرار الهجوم
قدّم الباحثون جزءًا من كود POC لمحاكاة عملية الهجوم. أظهرت نتائج الاختبار أن المهاجمين تمكنوا من استغلال ثغرة في العقد للحصول على USDT إضافية.
! [تحليل هجوم إعادة دخول OrionProtocol باستخدام PoC])https://img-cdn.gateio.im/webp-social/moments-7239f8886fe83c1da8b1b42545185811.webp(
! [تحليل هجوم إعادة الدخول OrionProtocol مع PoC])https://img-cdn.gateio.im/webp-social/moments-e5042932f0e1b7fa96e3f6e749231957.webp(
![تحليل هجوم إعادة الدخول بروتوكول أوريون مع 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(
نصائح الأمان
للهجمات من هذا النوع ، يُنصح بأن يأخذ الفريق القائم على المشروع في الاعتبار النقاط التالية عند تصميم العقد:
هذا الحدث يبرز مرة أخرى أهمية أمان العقود الذكية. يجب على المشروع أن يواصل التركيز على أمان العقود، واتخاذ تدابير نشطة لحماية أصول المستخدمين، من أجل الحفاظ على التنمية الصحية للنظام البيئي Web3.