في 2 فبراير 2023 بعد الظهر، تعرضت منصة DEX معينة على شبكة الإيثريوم وسلسلة بينانس الذكية لهجوم إعادة دخول بسبب ثغرة في العقد، مما أدى إلى خسارة إجمالية تقدر بحوالي 2.9 مليون دولار من الأصول المشفرة، بما في ذلك 2,844,766 USDT على الإيثريوم و191,606 BUSD على سلسلة بينانس الذكية.
نظرة عامة على عملية الهجوم
قام المهاجم أولاً بنشر عقد توكن مخصص، وأجرى عمليات النقل والتفويض ذات الصلة. بعد ذلك، اقترض المهاجم أموالاً من خلال وظيفة swap في بعض DEX، واستدعى طريقة swapThroughOrionPool للمنصة المستهدفة لتبادل التوكنات. تتضمن مسار التبادل عنوان عقد التوكن الذي أنشأه المهاجم، مما يسمح له بتنفيذ عملية استدعاء خلال عملية التداول.
في عملية التحويل، استغل المهاجم وظيفة الاستدعاء في عقد الرمز المميز الذي أنشأه، وقام بالاستدعاء المتكرر لطريقة 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. تقوم هذه الدالة بتحديث متغير curBalance بعد تنفيذ تحويل الرمز، لكنها لا تأخذ في الاعتبار خطر هجوم إعادة الإدخال المحتمل. تمكن المهاجمون من تحقيق استدعاء إعادة الإدخال لدالة depositAsset من خلال إضافة منطق استدعاء في دالة 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(
! [تحليل هجوم إعادة الدخول 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(
! [تحليل هجوم إعادة دخول 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، ولا بمثابة نصيحة مالية أو مهنية. انظر إلى إخلاء المسؤولية للحصول على التفاصيل.
تعرض OrionProtocol لهجوم إعادة الدخول وخسارة أصول تشفير بقيمة 2.9 مليون دولار
تحليل حادثة هجوم إعادة الدخول على OrionProtocol
في 2 فبراير 2023 بعد الظهر، تعرضت منصة DEX معينة على شبكة الإيثريوم وسلسلة بينانس الذكية لهجوم إعادة دخول بسبب ثغرة في العقد، مما أدى إلى خسارة إجمالية تقدر بحوالي 2.9 مليون دولار من الأصول المشفرة، بما في ذلك 2,844,766 USDT على الإيثريوم و191,606 BUSD على سلسلة بينانس الذكية.
نظرة عامة على عملية الهجوم
قام المهاجم أولاً بنشر عقد توكن مخصص، وأجرى عمليات النقل والتفويض ذات الصلة. بعد ذلك، اقترض المهاجم أموالاً من خلال وظيفة swap في بعض DEX، واستدعى طريقة swapThroughOrionPool للمنصة المستهدفة لتبادل التوكنات. تتضمن مسار التبادل عنوان عقد التوكن الذي أنشأه المهاجم، مما يسمح له بتنفيذ عملية استدعاء خلال عملية التداول.
في عملية التحويل، استغل المهاجم وظيفة الاستدعاء في عقد الرمز المميز الذي أنشأه، وقام بالاستدعاء المتكرر لطريقة 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. تقوم هذه الدالة بتحديث متغير curBalance بعد تنفيذ تحويل الرمز، لكنها لا تأخذ في الاعتبار خطر هجوم إعادة الإدخال المحتمل. تمكن المهاجمون من تحقيق استدعاء إعادة الإدخال لدالة depositAsset من خلال إضافة منطق استدعاء في دالة 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(
! [تحليل هجوم إعادة الدخول 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(
! [تحليل هجوم إعادة دخول 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 البيئي، يعتبر ضمان أمان العقود أمرًا بالغ الأهمية للحفاظ على ثقة المستخدمين وأمان الأصول.