تحليل ثغرة تجاوز السعة الصحيحة في لغة Move

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

تحليل ثغرات تجاوز السعة في التحقق من الأمان في لغة Move

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

! اكتشفت Numen Cyber حصريا ثغرة أمنية أخرى عالية الخطورة في لغة الحركة

عملية التحقق بلغة Move

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

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

اكتشاف حصري من Numen Cyber لثغرة خطيرة أخرى في لغة move

آلية التحقق من الأمان للإقتباس

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

تستخدم عملية التحقق هيكل AbstractState لتمثيل الحالة، والذي يتضمن مكونين رئيسيين: رسم الاقتراض والمحليين. أثناء التحقق، يتم مقارنة التغيرات في الحالة قبل وبعد تنفيذ الكتل الأساسية، ويتم نشر النتائج إلى الكتل التالية.

اكتشاف حصري من Numen Cyber لثغرة خطيرة أخرى في لغة move

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

يوجد ثغرة في دالة join_. تُستخدم هذه الدالة لدمج حالة الكتل الأساسية قبل وبعد التنفيذ. تكمن المشكلة في طريقة iter_locals()، التي تعيد مُكررًا من نوع u8. عندما يتجاوز مجموع طول معلمات الدالة وطول المتغيرات المحلية 256، فإنه يؤدي إلى تجاوز سعة العدد.

على الرغم من أن لغة Move تحتوي على عملية التحقق من عدد المتغيرات المحلية، إلا أنها تتحقق فقط من عدد المتغيرات المحلية، دون تضمين طول المعاملات. قد يكون هذا إغفالا من المطورين.

Numen Cyber اكتشاف حصري ثغرة عالية الخطورة أخرى في لغة move

اكتشاف حصري من Numen Cyber ثغرة عالية الخطورة أخرى في لغة move

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

اكتشاف حصري من Numen Cyber ثغرة عالية الخطورة أخرى في لغة move

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

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

! اكتشفت Numen Cyber حصريا ثغرة أمنية أخرى عالية الخطورة في لغة الحركة

اكتشاف حصري من Numen Cyber ثغرة عالية الخطورة أخرى في لغة move

اكتشاف حصري من Numen Cyber ثغرة عالية الخطورة أخرى في لغة move

استغلال الثغرات وتأثيرها

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

بشكل أكثر تحديدًا، قد تؤدي التعليمات البرمجية مثل MoveLoc/CopyLoc/FreeRef في وحدة مرجعية الأمان إلى حدوث panic بسبب الوصول إلى LocalIndex غير موجود، مما يتسبب في تعطل العقدة بأكملها.

نومين سايبر اكتشفت حصريًا ثغرة خطيرة أخرى في لغة move

! اكتشفت Numen Cyber حصريا ثغرة أمنية أخرى عالية الخطورة في لغة الحركة

ملخص وتوصيات

تثبت هذه الثغرة مرة أخرى أنه حتى اللغات المصممة بعناية قد تحتوي على مخاطر أمنية. بالنسبة للغة Move، نوصي بـ:

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

باعتبارنا رواد البحث في أمان لغة Move، سنستمر في استكشاف القضايا الأمنية ذات الصلة بعمق، ونساهم في التنمية الصحية لنظام Move البيئي.

اكتشاف حصري من Numen Cyber ثغرة عالية الخطورة أخرى في لغة move

MOVE1.32%
شاهد النسخة الأصلية
قد تحتوي هذه الصفحة على محتوى من جهات خارجية، يتم تقديمه لأغراض إعلامية فقط (وليس كإقرارات/ضمانات)، ولا ينبغي اعتباره موافقة على آرائه من قبل Gate، ولا بمثابة نصيحة مالية أو مهنية. انظر إلى إخلاء المسؤولية للحصول على التفاصيل.
  • أعجبني
  • 9
  • مشاركة
تعليق
0/400
LiquidationWatchervip
· 07-07 17:46
يا إلهي، استغلال آخر في التمويل اللامركزي... يجعلني أسترجع ذكريات 2022 بشكل كبير الآن
شاهد النسخة الأصليةرد0
BearMarketSunriservip
· 07-07 02:16
MOVE بارد ، من الأفضل قلي A بدلا من قلي B
شاهد النسخة الأصليةرد0
SundayDegenvip
· 07-06 08:36
تسلم، هذه المشكلة فعلاً بسيطة نوعًا ما.
شاهد النسخة الأصليةرد0
MoonRocketmanvip
· 07-05 04:47
ارتفاع الاعتراض لـ Move 256 قد فقد السيطرة، احذر من مخاطر سقوط الصواريخ
شاهد النسخة الأصليةرد0
Web3ProductManagervip
· 07-05 04:47
عند النظر إلى بيانات تحويل القمع، فإن خطأ الفائض هذا = احتكاك كبير في تجربة المستخدم بصراحة
شاهد النسخة الأصليةرد0
PanicSeller69vip
· 07-05 04:47
تحرك، إنها هشة للغاية
شاهد النسخة الأصليةرد0
WhaleMistakervip
· 07-05 04:46
هل ستبرد كلب الحركة؟
شاهد النسخة الأصليةرد0
NeverVoteOnDAOvip
· 07-05 04:28
أبتوس مرة أخرى عطل في الكود؟؟؟
شاهد النسخة الأصليةرد0
SignatureCollectorvip
· 07-05 04:18
مشكلة تجاوز مرة أخرى تسلق
شاهد النسخة الأصليةرد0
عرض المزيد
  • تثبيت