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