اكتشف نموذج لغة Move ثغرة في تجاوز السعة العددية يمكن أن تؤدي إلى هجوم حجب الخدمة

robot
إنشاء الملخص قيد التقدم

اكتشاف ثغرة جديدة في تجاوز السعة في وحدة الأمان الخاصة بلغة Move

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

تم اكتشاف ثغرة عالية الخطورة في لغة move بواسطة Numen Cyber حصريًا

آلية الأمان المرجعي في لغة Move

تستند لغة Move إلى أفكار Rust، وتدعم نوعين من الإشارات: الإشارة غير القابلة للتغيير ( و الإشارة القابلة للتغيير )&mut(. يتحقق نموذج أمان الإشارات من شرعية جميع عمليات الإشارة من خلال مسح الكتل الأساسية وتعليمات بايت الكود في الدالة.

تتضمن عملية التحقق الخطوات التالية:

  1. تحليل كل كتلة أساسية
  2. تنفيذ كود الكتلة الأساسية لإنشاء الحالة بعد التفيذ
  3. دمج الحالة السابقة والحالة اللاحقة
  4. تحديث حالة الكتلة ونشرها إلى الكتل اللاحقة

تشمل الحالة مكونين رئيسيين وهما locals و borrow graph، لضمان أمان الاستشهادات في الوظائف.

![نومين سايبر اكتشاف حصري ثغرة خطرة أخرى في لغة move])https://img-cdn.gateio.im/webp-social/moments-eb6397a8a98b556071724d98a4837b59.webp(

تفاصيل الثغرة

تظهر الثغرة في دالة join_ التي تشير إلى وحدة الأمان. عندما يكون مجموع طول معلمات الدالة وطول المتغيرات المحلية أكبر من 256، فإن استخدام نوع u8 لتكرار locals يؤدي إلى تجاوز عدد صحيح.

بشكل محدد:

  • iter_locals)( يُعيد مُكرّر من نوع u8
  • عندما تكون طول المعامل + طول المتغيرات المحلية > 256 ستحدث Overflow
  • يبدو أن المطورين يدركون الحاجة إلى التحقق من ذلك، لكن الكود الفعلي يتحقق فقط من عدد المتغيرات المحلية.

![اكتشاف حصري من Numen Cyber لثغرة خطيرة أخرى في لغة move])https://img-cdn.gateio.im/webp-social/moments-6952376046c901dfae2b19d5144746b5.webp(

استغلال الثغرات

يمكن استخدام هذه الثغرة لبناء كتلة شفرة دورية:

  1. عند التنفيذ لأول مرة يحدث تجاوز، تغيير خريطة locals
  2. عند التنفيذ الثاني، يتم الوصول إلى فهرس locals غير موجود، مما يؤدي إلى panic

هذا سيؤدي إلى انهيار العقد وتشكيل هجوم رفض الخدمة.

![اكتشاف حصري من Numen Cyber لثغرة خطيرة أخرى في لغة move])https://img-cdn.gateio.im/webp-social/moments-92892f2a9dffea9f805f3a1952e82703.webp(

إعادة إنتاج الثغرات

قدم الباحثون إثبات مفهوم لإعادة إنتاج هذه الثغرة:

  1. قم بتعيين parameters و locals كلاهما إلى SignatureIndex)0(، واجعل num_locals يساوي 264
  2. بعد التنفيذ الأول، أصبح طول خريطة locals الجديدة 8
  3. عند التنفيذ الثاني، copyloc)57( الوصول إلى offset غير موجود أدى إلى panic

![Numen Cyber اكتشاف حصري ثغرة عالية الخطورة في لغة move])https://img-cdn.gateio.im/webp-social/moments-1347ef8b31983109babdf8ef29270c67.webp(

! [اكتشفت Numen Cyber حصريا ثغرة أمنية أخرى عالية الخطورة في لغة الحركة])https://img-cdn.gateio.im/webp-social/moments-ac937ab4f426d30a476feb32520a95b4.webp(

![اكتشاف حصري من نومن سايبر ثغرة عالية الخطورة أخرى في لغة move])https://img-cdn.gateio.im/webp-social/moments-a18dcf64108d1a75b728ffe8391100f1.webp(

! [اكتشفت Numen Cyber حصريا ثغرة أمنية أخرى عالية الخطورة في لغة الحركة])https://img-cdn.gateio.im/webp-social/moments-7c8fe4e4cf376ad49d729a6f80df6f08.webp(

![اكتشاف حصري من Numen Cyber عن ثغرة عالية الخطورة في لغة move])https://img-cdn.gateio.im/webp-social/moments-c598d61833550ec5494f9a5a4ee2a760.webp(

![اكتشاف حصري من Numen Cyber ثغرة عالية الخطورة أخرى في لغة move])https://img-cdn.gateio.im/webp-social/moments-12c60c225a5629f6d927982a7585fc5b.webp(

![اكتشاف حصري من Numen Cyber لثغرة عالية الخطورة في لغة move])https://img-cdn.gateio.im/webp-social/moments-94b0c97bb9e287ed715cddb5165f129d.webp(

![اكتشاف حصري من نومن سايبر ثغرة عالية الخطورة في لغة move])https://img-cdn.gateio.im/webp-social/moments-095e2b585c45a86b0a689214ca673619.webp(

![اكتشاف حصري من Numen Cyber ثغرة عالية الخطورة أخرى في لغة move])https://img-cdn.gateio.im/webp-social/moments-5ebaa03263f7a87edd78d146c5beadd2.webp(

![اكتشاف حصري من Numen Cyber لثغرة عالية الخطورة أخرى في لغة move])https://img-cdn.gateio.im/webp-social/moments-fe905356cbee596e8aba08ec14f5d508.webp(

ملخص وتوصيات

توضح هذه الثغرة:

  1. لا يوجد كود آمن تمامًا، قد يتم تجاوز التحقق الثابت
  2. تدقيق الشيفرة مهم، يمكن أن يكشف عن إهمال المطورين
  3. يجب أن تضيف لغة Move فحوصات في وقت التشغيل، وليس فقط الاعتماد على فحوصات الأمان في مرحلة التحقق.

حث الباحثون مصممي لغة Move على تعزيز آليات الأمان أثناء التشغيل، لمنع استغلال الثغرات المماثلة مما يؤدي إلى مشاكل أكثر خطورة.

![Numen Cyber اكتشفت حصريًا ثغرة عالية الخطورة أخرى في لغة move])https://img-cdn.gateio.im/webp-social/moments-ae25cc7d31726e2e1477e6d112b7aa75.webp(

شاهد النسخة الأصلية
This page may contain third-party content, which is provided for information purposes only (not representations/warranties) and should not be considered as an endorsement of its views by Gate, nor as financial or professional advice. See Disclaimer for details.
  • أعجبني
  • 6
  • مشاركة
تعليق
0/400
staking_grampsvip
· منذ 22 س
هذه الثغرة سيئة للغاية، أليس كذلك؟
شاهد النسخة الأصليةرد0
ChainMaskedRidervip
· منذ 22 س
مهارة كتابة الشيفرة ليست دقيقة جداً، أليس كذلك؟
شاهد النسخة الأصليةرد0
MissedTheBoatvip
· منذ 22 س
هناك ثغرة أخرى، Move ليس جيدًا أيضًا.
شاهد النسخة الأصليةرد0
GateUser-c799715cvip
· منذ 22 س
من كتب الكود لماذا هو بهذا السوء
شاهد النسخة الأصليةرد0
YieldChaservip
· منذ 22 س
u8 مرة أخرى بها مشكلة
شاهد النسخة الأصليةرد0
BridgeJumpervip
· منذ 22 س
تطوير غير منتظم، إصلاح الأخطاء بدمعتين
شاهد النسخة الأصليةرد0
  • تثبيت