عالم العملات الرقمية版 خداع؟ تقرير حادثة Slow Mist: كيف استغل القراصنة ثغرات الكود لسرقة 2.2 مليون دولار من Cetus

في الآونة الأخيرة، أثار اختراق بروتوكول Cetus الذي بلغت قيمته 2.2 مليار دولار صدمة في عالم العملات الرقمية، مما أثار نقاشات في جميع الأوساط. كما أصدرت فريق الأمن السيبراني مانمو تقريرًا كاملاً عن الحادثة، حيث أفاد فريق مانمو أن الهجوم أظهر قوة ثغرات تجاوز السعة الرياضية. تمكن المهاجم من اختيار معلمات معينة بدقة من خلال حسابات دقيقة، واستغل عيب دالة checked_shlw، مما مكنه من الحصول على سيولة بقيمة مليارات الدولارات بتكلفة عملة واحدة. كان هذا هجومًا رياضيًا دقيقًا للغاية، وقدم اقتراحًا للمطورين بضرورة التحقق بدقة من جميع شروط الحدود للوظائف الرياضية أثناء تطوير العقود الذكية.

慢霧:جوهر الحدث هو ثغرة فحص التدفق الزائد

أفادت فريق Slow Mist أن جوهر الحادث هو أن المهاجمين قاموا ببناء معلمات بعناية، مما أدى إلى حدوث تجاوز ولكن مع القدرة على تجاوز الكشف، وفي النهاية تمكنوا من استبدال مبلغ صغير جداً من العملة مقابل أصول سيولة ضخمة. يتوافق ذلك مع تحليل @neeksec السابق.

( من ثغرات البروتوكول إلى الجدال اللامركزي: شرح مفصل لأحداث Cetus، هل اهتزت أمان لغة MOVE؟ )

هاجم المهاجم أولاً من خلال اقتراض 10,020,000 عملة haSUI بسرعة مما أدى إلى انخفاض سعر التجمع haSUI/SUI بنسبة 99.9%. ثم أضاف السيولة في نطاق قيمة tick من 300000 إلى 300200، وهذا النطاق السعري يمثل فقط عرض نطاق 1%.

بعد ذلك يأتي الثغرة الرئيسية في الحدث، حيث ادعى المهاجم أنه قد أضاف كمية ضخمة من السيولة ( تزيد عن 10 مرفوعة للأس 27 )، ولكن بسبب خطأ في ترميز دالة checked_shlw، فقد تم تحصيل 1 عملة haSUI فقط منه.

صيغة حساب السيولة المطلوبة ( المصدر: شركة مان ووت تكنولوجي)

الهجوم الذي قامت به شركة مان وو يعود إلى قدرتها على استبدال 1 عملة بمبالغ ضخمة من السيولة. السبب الرئيسي لذلك هو وجود ثغرة في فحص overflow في دالة get_delta_a. استغل المهاجم هذه النقطة، مما تسبب في حدوث انحراف كبير في النظام عند حساب كمية haSUI التي يجب إضافتها. نظرًا لعدم اكتشاف overflow، أخطأ النظام في تقدير كمية haSUI المطلوبة، مما أدى إلى أن المهاجم يحتاج فقط إلى عدد قليل من الرموز، ليتمكن من استبدالها بكميات كبيرة من الأصول السائلة.

أي قيمة إدخال أقل من 0xffffffffffffffff << 192 ستتجاوز فحص الفائض. ومع ذلك، عندما يتم إزاحة هذه القيم إلى اليسار بمقدار 64 بت، ستتجاوز النتيجة نطاق تمثيل u256، مما يتسبب في قطع بيانات البت العالية، مما يؤدي إلى نتيجة أقل بكثير من القيمة النظرية. وبالتالي، سيقوم النظام بتقليل تقدير كمية haSUI المطلوبة في الحسابات اللاحقة.

الكود الذي تسبب في المشكلة ( المصدر: Slow Mist Technology )

قام المهاجم بإزالة السيولة ثلاث مرات، وجمع 20,040,000 عملة haSUI وأكثر من 5,760,000 عملة SUI. في النهاية، أعاد المهاجم القرض الفوري، وحقق في النهاية ربحًا صافياً يتجاوز 230,000,000 دولار.

Cetus تم إصلاح الكود

بعد ذلك، قامت Cetus بإصلاح الكود، والذي يتضمن:

قم بتصحيح 0xffffffffffffffff << 192 إلى العتبة الصحيحة 1 << 192.

قم بتعديل شرط الحكم من n > mask إلى n >= mask.

تأكد من أنه عند التحريك لليسار بمقدار 64 بت قد يؤدي إلى تجاوز، يمكن اكتشافه بشكل صحيح وإرجاع علامة التجاوز.

تم إصلاح دالة checked_shlw ( المصدر: شركة Slow Mist ) فريق Slow Mist: يجب على المطورين التحقق بدقة من جميع حدود الدوال الرياضية.

تشير Slow Fog إلى أن المهاجم كان مستعدًا لرسوم الغاز قبل يومين، وكان لديه محاولة واحدة قبل الهجوم، لكنها فشلت. حاليًا، تم تجميد أموال المهاجم في عنوان Sui، وتم وضع عنوان EVM في القائمة السوداء من قبل Slow Fog لمتابعته.

فريق Slow Mist أشار إلى أن هذا الهجوم يظهر قوة ثغرة تجاوز السعة الرياضية. قام المهاجمون باختيار معلمات معينة من خلال حسابات دقيقة، واستغلوا عيب دالة checked_shlw، للحصول على سيولة تقدر بمليارات من خلال تكلفة عملة واحدة. كان هذا هجومًا رياضيًا دقيقًا للغاية، وينصح فريق Slow Mist للأمان المطورين بالتحقق بدقة من جميع شروط الحدود للدوال الرياضية أثناء تطوير العقود الذكية.

هذه المقالة عالم العملات الرقمية خداع في الضوء؟ تقرير حادثة SlowMist: كيف استخدم القراصنة ثغرات الشفرة لنهب 2.2 مليون دولار من Cetus ظهر لأول مرة في أخبار السلسلة ABMedia.

شاهد النسخة الأصلية
المحتوى هو للمرجعية فقط، وليس دعوة أو عرضًا. لا يتم تقديم أي مشورة استثمارية أو ضريبية أو قانونية. للمزيد من الإفصاحات حول المخاطر، يُرجى الاطلاع على إخلاء المسؤولية.
  • أعجبني
  • تعليق
  • مشاركة
تعليق
0/400
لا توجد تعليقات
  • تثبيت