في 2 فبراير 2023 بعد الظهر، تعرض OrionProtocol على شبكة الإيثيريوم وسلسلة بينانس الذكية لهجوم إعادة الدخول بسبب ثغرة في العقد، مما أدى إلى خسارة حوالي 2.9 مليون دولار، بما في ذلك 2,844,766 USDT على الإيثيريوم و191,606 BUSD على سلسلة بينانس الذكية.
! [تحليل هجوم إعادة دخول OrionProtocol باستخدام PoC](https://img-cdn.gateio.im/webp-social/moments-730464b2d4d7f6e0ff21a0289a2d5d68.webp0192837465674839201
تحليل عملية الهجوم
قام المهاجم أولاً بإنشاء عقد توكن، وأجرى عمليات التحويل والتفويض ذات الصلة، استعدادًا للهجوم اللاحق. بعد ذلك، اقترض المهاجم من خلال طريقة swap الخاصة بـ UNI-V2، واستدعى طريقة swapThroughOrionPool لعقد ExchangeWithAtomic لتبادل التوكنات. تم تعيين مسار التبادل إلى USDC → توكن أنشأه المهاجم → USDT.
! [تحليل هجوم إعادة دخول OrionProtocol مع PoC])https://img-cdn.gateio.im/webp-social/moments-caac189901b7aaad5abd8be30bb4361a.webp(
أثناء عملية التبادل، أدى وجود وظيفة الاستدعاء في عقد التوكن الذي أنشأه المهاجم إلى أنه عند تنفيذ طريقة ExchangeWithAtomic.swapThroughOrionPool، يتم الاستمرار في استدعاء طريقة ExchangeWithAtomic.depositAsset من خلال Token.Transfer، مما تسبب في هجوم إعادة الدخول. وهذا أدى إلى زيادة المبلغ المودع باستمرار، وفي النهاية أكمل المهاجم الربح من خلال عملية السحب.
! [تحليل هجوم إعادة دخول OrionProtocol مع PoC])https://img-cdn.gateio.im/webp-social/moments-7e21c34158a85d4c387fcdbec136d31b.webp(
تدفق الأموال
تأتي الأموال الأولية للمهاجم من حساب المحفظة الساخنة على منصة تداول معينة. من بين 1,651 إيثر التي تم تحقيقها، لا يزال 657.5 إيثر في عنوان محفظة المهاجم، بينما تم تحويل الباقي عبر خدمة خلط العملات.
! [تحليل هجوم إعادة دخول OrionProtocol باستخدام PoC])https://img-cdn.gateio.im/webp-social/moments-24819b5154419e86ea523a25a9101f67.webp(
تحليل الثغرات
تظهر المشكلة الأساسية للثغرة في دالة doSwapThroughOrionPool. تستدعي هذه الدالة دالة _doSwapTokens، حيث تحدث عملية تحويل الرموز قبل تحديث curBalance. استغل المهاجمون وظيفة الاستدعاء المضافة في دالة transfer للرمز المخصص، واستدعوا دالة depositAsset مرة أخرى قبل تحديث curBalance، مما أدى إلى تحديث خاطئ لـ curBalance. في النهاية، بعد سداد القرض السريع، استخرج المهاجمون الأموال من خلال استدعاء دالة withdraw لإكمال الهجوم.
! [تحليل هجوم إعادة دخول 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) يمكن أن يحسن بشكل فعال من أمان العقود.
عند تنفيذ وظيفة تبادل الرموز، من الضروري الانتباه إلى مخاطر هجمات إعادة الدخول، ويمكن النظر في استخدام آليات مثل قفل إعادة الدخول كوسيلة للحماية.
بالنسبة للدوال الرئيسية التي تتعلق بعمليات الأموال، يُنصح بإجراء تدقيق أمني شامل واختبارات، بما في ذلك محاكاة مختلف الحالات الحدية والمشاهد الاستثنائية.
إجراء فحوصات أمان دورية للعقود، وتحديث وإصلاح الثغرات المحتملة في الوقت المناسب.
من خلال اتخاذ هذه التدابير، يمكن تقليل مخاطر تعرض العقود الذكية للهجمات بشكل كبير، وزيادة الأمان العام للمشروع. في نظام Web3 البيئي، تُعتبر الأمان دائمًا واحدة من أهم الاعتبارات.
قد تحتوي هذه الصفحة على محتوى من جهات خارجية، يتم تقديمه لأغراض إعلامية فقط (وليس كإقرارات/ضمانات)، ولا ينبغي اعتباره موافقة على آرائه من قبل Gate، ولا بمثابة نصيحة مالية أو مهنية. انظر إلى إخلاء المسؤولية للحصول على التفاصيل.
تعرض OrionProtocol لهجوم إعادة دخول مما أدى إلى خسارة 2.9 مليون دولار من أصول التشفير
تحليل حادثة هجوم إعادة الدخول على OrionProtocol
في 2 فبراير 2023 بعد الظهر، تعرض OrionProtocol على شبكة الإيثيريوم وسلسلة بينانس الذكية لهجوم إعادة الدخول بسبب ثغرة في العقد، مما أدى إلى خسارة حوالي 2.9 مليون دولار، بما في ذلك 2,844,766 USDT على الإيثيريوم و191,606 BUSD على سلسلة بينانس الذكية.
! [تحليل هجوم إعادة دخول OrionProtocol باستخدام PoC](https://img-cdn.gateio.im/webp-social/moments-730464b2d4d7f6e0ff21a0289a2d5d68.webp0192837465674839201
تحليل عملية الهجوم
قام المهاجم أولاً بإنشاء عقد توكن، وأجرى عمليات التحويل والتفويض ذات الصلة، استعدادًا للهجوم اللاحق. بعد ذلك، اقترض المهاجم من خلال طريقة swap الخاصة بـ UNI-V2، واستدعى طريقة swapThroughOrionPool لعقد ExchangeWithAtomic لتبادل التوكنات. تم تعيين مسار التبادل إلى USDC → توكن أنشأه المهاجم → USDT.
! [تحليل هجوم إعادة دخول OrionProtocol مع PoC])https://img-cdn.gateio.im/webp-social/moments-caac189901b7aaad5abd8be30bb4361a.webp(
أثناء عملية التبادل، أدى وجود وظيفة الاستدعاء في عقد التوكن الذي أنشأه المهاجم إلى أنه عند تنفيذ طريقة ExchangeWithAtomic.swapThroughOrionPool، يتم الاستمرار في استدعاء طريقة ExchangeWithAtomic.depositAsset من خلال Token.Transfer، مما تسبب في هجوم إعادة الدخول. وهذا أدى إلى زيادة المبلغ المودع باستمرار، وفي النهاية أكمل المهاجم الربح من خلال عملية السحب.
! [تحليل هجوم إعادة دخول OrionProtocol مع PoC])https://img-cdn.gateio.im/webp-social/moments-7e21c34158a85d4c387fcdbec136d31b.webp(
تدفق الأموال
تأتي الأموال الأولية للمهاجم من حساب المحفظة الساخنة على منصة تداول معينة. من بين 1,651 إيثر التي تم تحقيقها، لا يزال 657.5 إيثر في عنوان محفظة المهاجم، بينما تم تحويل الباقي عبر خدمة خلط العملات.
! [تحليل هجوم إعادة دخول OrionProtocol باستخدام PoC])https://img-cdn.gateio.im/webp-social/moments-24819b5154419e86ea523a25a9101f67.webp(
تحليل الثغرات
تظهر المشكلة الأساسية للثغرة في دالة doSwapThroughOrionPool. تستدعي هذه الدالة دالة _doSwapTokens، حيث تحدث عملية تحويل الرموز قبل تحديث curBalance. استغل المهاجمون وظيفة الاستدعاء المضافة في دالة transfer للرمز المخصص، واستدعوا دالة depositAsset مرة أخرى قبل تحديث curBalance، مما أدى إلى تحديث خاطئ لـ curBalance. في النهاية، بعد سداد القرض السريع، استخرج المهاجمون الأموال من خلال استدعاء دالة withdraw لإكمال الهجوم.
! [تحليل هجوم إعادة دخول 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) يمكن أن يحسن بشكل فعال من أمان العقود.
عند تنفيذ وظيفة تبادل الرموز، من الضروري الانتباه إلى مخاطر هجمات إعادة الدخول، ويمكن النظر في استخدام آليات مثل قفل إعادة الدخول كوسيلة للحماية.
بالنسبة للدوال الرئيسية التي تتعلق بعمليات الأموال، يُنصح بإجراء تدقيق أمني شامل واختبارات، بما في ذلك محاكاة مختلف الحالات الحدية والمشاهد الاستثنائية.
إجراء فحوصات أمان دورية للعقود، وتحديث وإصلاح الثغرات المحتملة في الوقت المناسب.
من خلال اتخاذ هذه التدابير، يمكن تقليل مخاطر تعرض العقود الذكية للهجمات بشكل كبير، وزيادة الأمان العام للمشروع. في نظام Web3 البيئي، تُعتبر الأمان دائمًا واحدة من أهم الاعتبارات.