في 2 فبراير 2023، تعرض OrionProtocol لهجوم إعادة دخول على شبكة الإيثيريوم وسلسلة بينانس الذكية، مما أدى إلى خسارة تقدر بحوالي 2.9 مليون دولار. استغل المهاجمون ثغرة في العقد، وسرقوا 2,844,766 USDT على سلسلة الإيثيريوم و 191,606 BUSD على سلسلة بينانس الذكية.
عملية الهجوم
أنشأ المهاجم أولاً عقد توكن مخصص، وقام بإجراء عمليات النقل والتفويض ذات الصلة. بعد ذلك، اقترض المهاجم من خلال طريقة swap الخاصة بأحد DEXs، واستدعى طريقة 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. تقوم هذه الدالة باستدعاء دالة _doSwapTokens، والتي تقوم بتحديث متغير curBalance بعد عملية التحويل. استغل المهاجمون وظيفة الاستدعاء المضافة في دالة transfer لرمز مخصص من خلال استدعاء دالة depositAsset مرة أخرى قبل تحديث curBalance، مما أدى إلى تحديث خاطئ لـ 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(
نصائح للوقاية
لتجنب هجمات مماثلة، يُنصح الأطراف المعنية في المشروع بالاهتمام بالنقاط التالية عند تصميم العقد:
النظر في الحالات غير المتوقعة التي قد تنجم عن عدة رموز ومسارات تحويل متعددة.
اتبع نمط البرمجة "تحقق-تأثيرات-تفاعلات" (Checks-Effects-Interactions) أي قم أولاً بإجراء فحص الشروط، ثم تحديث متغيرات الحالة، وأخيرًا تنفيذ المكالمات الخارجية.
استخدم قفل إعادة الدخول قبل وبعد العمليات الحرجة لمنع هجمات إعادة الدخول.
إجراء تحقق من أمان عقد التوكنات المستدعاة من الخارج.
إجراء تدقيق دوري للشفرة واختبارات الأمان، واكتشاف وإصلاح الثغرات المحتملة في الوقت المناسب.
من خلال اتخاذ هذه التدابير، يمكن للمشروع تحسين أمان العقد واستقراره بشكل كبير، وتقليل مخاطر التعرض للهجمات إلى الحد الأدنى.
This page may contain third-party content, which is provided for information purposes only (not representations/warranties) and should not be considered as an endorsement of its views by Gate, nor as financial or professional advice. See Disclaimer for details.
تسجيلات الإعجاب 17
أعجبني
17
7
مشاركة
تعليق
0/400
AirdropHunterXiao
· منذ 12 س
تمت الاستفادة من مشروع البلوكتشين مرة أخرى
شاهد النسخة الأصليةرد0
MemecoinResearcher
· منذ 12 س
ngmi... يبدو أن لعنة إعادة الدخول تضرب مرة أخرى fr fr
تعرض OrionProtocol لهجوم إعادة دخول بقيمة 2.9 مليون دولار تحليل عملية الهجوم ونصائح للوقاية
تحليل حادثة هجوم إعادة الدخول على OrionProtocol
في 2 فبراير 2023، تعرض OrionProtocol لهجوم إعادة دخول على شبكة الإيثيريوم وسلسلة بينانس الذكية، مما أدى إلى خسارة تقدر بحوالي 2.9 مليون دولار. استغل المهاجمون ثغرة في العقد، وسرقوا 2,844,766 USDT على سلسلة الإيثيريوم و 191,606 BUSD على سلسلة بينانس الذكية.
عملية الهجوم
أنشأ المهاجم أولاً عقد توكن مخصص، وقام بإجراء عمليات النقل والتفويض ذات الصلة. بعد ذلك، اقترض المهاجم من خلال طريقة swap الخاصة بأحد DEXs، واستدعى طريقة 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. تقوم هذه الدالة باستدعاء دالة _doSwapTokens، والتي تقوم بتحديث متغير curBalance بعد عملية التحويل. استغل المهاجمون وظيفة الاستدعاء المضافة في دالة transfer لرمز مخصص من خلال استدعاء دالة depositAsset مرة أخرى قبل تحديث curBalance، مما أدى إلى تحديث خاطئ لـ 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(
نصائح للوقاية
لتجنب هجمات مماثلة، يُنصح الأطراف المعنية في المشروع بالاهتمام بالنقاط التالية عند تصميم العقد:
من خلال اتخاذ هذه التدابير، يمكن للمشروع تحسين أمان العقد واستقراره بشكل كبير، وتقليل مخاطر التعرض للهجمات إلى الحد الأدنى.