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