في الثاني من فبراير 2023، تعرض مشروع OrionProtocol على شبكة الإيثريوم وسلسلة بينانس الذكية لهجوم إعادة دخول بسبب ثغرة في العقد، حيث بلغ إجمالي الخسائر حوالي 2.9 مليون دولار من الأصول، بما في ذلك 2,844,766 USDT على الإيثريوم و191,606 BUSD على سلسلة بينانس الذكية.
! [تحليل هجوم إعادة دخول OrionProtocol باستخدام PoC](https://img-cdn.gateio.im/webp-social/moments-730464b2d4d7f6e0ff21a0289a2d5d68.webp0192837465674839201
تحليل عملية الهجوم
قام المهاجم أولاً بنشر عقد Token خاص، وأجرى سلسلة من التحضيرات. بعد ذلك، استعار المهاجم الأموال من خلال وظيفة swap في بعض DEX، واستدعى طريقة ExchangeWithAtomic.swapThroughOrionPool من OrionProtocol لتبادل الرموز. تتضمن مسار التبادل عنوان عقد Token الذي أنشأه المهاجم، مما أعد الأرض لهجوم الاستدعاء اللاحق.
خلال عملية التبادل، أدى وجود منطق الاستدعاء في عقد توكن المهاجم إلى تفعيل استدعاءات متكررة لطريقة ExchangeWithAtomic.depositAsset أثناء عملية التحويل. لقد أدت هذه الهجمة المتكررة إلى تراكم مبلغ الإيداع بشكل متكرر، مما سمح للمهاجم بالحصول على أموال تتجاوز الحد الطبيعي من خلال عملية السحب.
! [تحليل هجوم إعادة دخول OrionProtocol مع PoC])https://img-cdn.gateio.im/webp-social/moments-caac189901b7aaad5abd8be30bb4361a.webp(
تدفق الأموال
كانت مصادر رأس المال الأولية للمهاجمين من المحفظة الساخنة لمنصة تداول معينة. من بين 1,651 إيثريوم التي تم الحصول عليها من الهجوم، لا يزال 657.5 إيثريوم في عنوان محفظة المهاجم، بينما تم نقل الباقي باستخدام أدوات خلط العملات.
! [تحليل هجوم إعادة دخول OrionProtocol مع PoC])https://img-cdn.gateio.im/webp-social/moments-7e21c34158a85d4c387fcdbec136d31b.webp(
تحليل الثغرات
تتركز المشكلة الأساسية للهجوم في دالة doSwapThroughOrionPool لعقد ExchangeWithAtomic. هذه الدالة عند معالجة تبادل الرموز، لم تتعامل بشكل صحيح مع حالات إعادة الإدخال المحتملة. على وجه التحديد، في دالة _doSwapTokens، يتم تحديث متغير curBalance بعد عملية تحويل الرموز، مما يوفر فرصة للمهاجم.
قام المهاجم بإضافة منطق استدعاء في دالة transfer الخاصة بـ Token المخصص، مما أدى إلى استدعاء دالة depositAsset في كل مرة يتم فيها إجراء تحويل، مما تسبب في تحديث غير صحيح لمتغير curBalance. في النهاية، بعد سداد القرض السريع، تمكن المهاجم من سحب أموال زائدة عبر دالة withdraw.
! [تحليل هجوم إعادة دخول 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(
إعادة إنتاج الثغرات
قدّم الباحثون جزءًا من كود POC، يُظهر كيفية استغلال الثغرة للهجوم. الكود يحاكي بشكل أساسي عملية المهاجم، بما في ذلك إنشاء توكن مزيف، إعداد حوض السيولة، تنفيذ قرض فوري وهجمات إعادة الدخول.
! [تحليل هجوم إعادة دخول OrionProtocol باستخدام PoC])https://img-cdn.gateio.im/webp-social/moments-cd401091e63ab21864f39cd650014b97.webp(
![تحليل هجوم إعادة الدخول على بروتوكول أوريون مع 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، ولا بمثابة نصيحة مالية أو مهنية. انظر إلى إخلاء المسؤولية للحصول على التفاصيل.
تسجيلات الإعجاب 10
أعجبني
10
4
مشاركة
تعليق
0/400
SleepTrader
· منذ 8 س
مبتدئ آخر يتعرض للضرب
شاهد النسخة الأصليةرد0
StablecoinEnjoyer
· منذ 8 س
تمت سرقتي مرة أخرى، ألا تتعلم الدرس؟
شاهد النسخة الأصليةرد0
GetRichLeek
· منذ 9 س
يتم اقتطاف القسائم من العقود اليومية ههههههههه
شاهد النسخة الأصليةرد0
MemeEchoer
· منذ 9 س
لقد استلقيت مرة أخرى، يبدو أن العقود الذكية يجب كتابتها بجدية.
تعرض OrionProtocol لهجوم إعادة دخول مما أدى إلى خسارة أصول بقيمة 2.9 مليون دولار
تحليل حادثة هجوم إعادة الدخول على OrionProtocol
في الثاني من فبراير 2023، تعرض مشروع OrionProtocol على شبكة الإيثريوم وسلسلة بينانس الذكية لهجوم إعادة دخول بسبب ثغرة في العقد، حيث بلغ إجمالي الخسائر حوالي 2.9 مليون دولار من الأصول، بما في ذلك 2,844,766 USDT على الإيثريوم و191,606 BUSD على سلسلة بينانس الذكية.
! [تحليل هجوم إعادة دخول OrionProtocol باستخدام PoC](https://img-cdn.gateio.im/webp-social/moments-730464b2d4d7f6e0ff21a0289a2d5d68.webp0192837465674839201
تحليل عملية الهجوم
قام المهاجم أولاً بنشر عقد Token خاص، وأجرى سلسلة من التحضيرات. بعد ذلك، استعار المهاجم الأموال من خلال وظيفة swap في بعض DEX، واستدعى طريقة ExchangeWithAtomic.swapThroughOrionPool من OrionProtocol لتبادل الرموز. تتضمن مسار التبادل عنوان عقد Token الذي أنشأه المهاجم، مما أعد الأرض لهجوم الاستدعاء اللاحق.
خلال عملية التبادل، أدى وجود منطق الاستدعاء في عقد توكن المهاجم إلى تفعيل استدعاءات متكررة لطريقة ExchangeWithAtomic.depositAsset أثناء عملية التحويل. لقد أدت هذه الهجمة المتكررة إلى تراكم مبلغ الإيداع بشكل متكرر، مما سمح للمهاجم بالحصول على أموال تتجاوز الحد الطبيعي من خلال عملية السحب.
! [تحليل هجوم إعادة دخول OrionProtocol مع PoC])https://img-cdn.gateio.im/webp-social/moments-caac189901b7aaad5abd8be30bb4361a.webp(
تدفق الأموال
كانت مصادر رأس المال الأولية للمهاجمين من المحفظة الساخنة لمنصة تداول معينة. من بين 1,651 إيثريوم التي تم الحصول عليها من الهجوم، لا يزال 657.5 إيثريوم في عنوان محفظة المهاجم، بينما تم نقل الباقي باستخدام أدوات خلط العملات.
! [تحليل هجوم إعادة دخول OrionProtocol مع PoC])https://img-cdn.gateio.im/webp-social/moments-7e21c34158a85d4c387fcdbec136d31b.webp(
تحليل الثغرات
تتركز المشكلة الأساسية للهجوم في دالة doSwapThroughOrionPool لعقد ExchangeWithAtomic. هذه الدالة عند معالجة تبادل الرموز، لم تتعامل بشكل صحيح مع حالات إعادة الإدخال المحتملة. على وجه التحديد، في دالة _doSwapTokens، يتم تحديث متغير curBalance بعد عملية تحويل الرموز، مما يوفر فرصة للمهاجم.
قام المهاجم بإضافة منطق استدعاء في دالة transfer الخاصة بـ Token المخصص، مما أدى إلى استدعاء دالة depositAsset في كل مرة يتم فيها إجراء تحويل، مما تسبب في تحديث غير صحيح لمتغير curBalance. في النهاية، بعد سداد القرض السريع، تمكن المهاجم من سحب أموال زائدة عبر دالة withdraw.
! [تحليل هجوم إعادة دخول 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(
إعادة إنتاج الثغرات
قدّم الباحثون جزءًا من كود POC، يُظهر كيفية استغلال الثغرة للهجوم. الكود يحاكي بشكل أساسي عملية المهاجم، بما في ذلك إنشاء توكن مزيف، إعداد حوض السيولة، تنفيذ قرض فوري وهجمات إعادة الدخول.
! [تحليل هجوم إعادة دخول OrionProtocol باستخدام PoC])https://img-cdn.gateio.im/webp-social/moments-cd401091e63ab21864f39cd650014b97.webp(
![تحليل هجوم إعادة الدخول على بروتوكول أوريون مع 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 البيئي.