وجود ثغرة في تجاوز العدد الصحيح في وحدة الأمان الخاصة بلغة Move
مؤخراً، تم اكتشاف ثغرة خطيرة في تجاوز السعة الصحيحة في وحدة الأمان المرجعي للغة Move. قد تؤدي هذه الثغرة إلى هجمات حرمان الخدمة وتشكل تهديدًا محتملاً لأمان لغة Move.
تقوم لغة Move بالتحقق من الشيفرة قبل تنفيذ التعليمات البرمجية، وتنقسم إلى عدة خطوات. تظهر هذه الثغرة في خطوة reference_safety، التي تتحمل مسؤولية التحقق من سلامة الإشارات، بما في ذلك التحقق من وجود إشارات معلقة، وما إذا كانت عمليات الوصول إلى الإشارات المتغيرة آمنة أم لا.
جذر الثغرة يكمن في مشكلة تجاوز السعة العددية في وحدة الأمان المستشهد بها. عندما يتجاوز مجموع عدد معلمات الوظيفة وعدد المتغيرات المحلية 256، فإن استخدام نوع u8 للتكرار عبر المتغيرات المحلية يؤدي إلى تجاوز السعة العددية. يمكن استغلال هذا التجاوز لتجاوز الفحوصات الأمنية، مما يؤدي في النهاية إلى هجوم رفض الخدمة.
بشكل محدد، فإن عملية استغلال الثغرات هي كما يلي:
بناء كتلة كود Move تحتوي على حلقة، بحيث يتم تنفيذها عدة مرات.
تعيين عدد كبير من معلمات الدالة والمتغيرات المحلية ، بحيث يتجاوز مجموعها 256.
عند التنفيذ الأول، بسبب تجاوز عدد صحيح، ستصبح طول خريطة المتغيرات المحلية قيمة صغيرة جداً.
في التنفيذ اللاحق، محاولة الوصول إلى فهرس متغير محلي غير موجود، مما يؤدي إلى حدوث panic وانهيار البرنامج.
تظهر هذه الثغرة أنه حتى اللغات التي تركز على الأمان مثل Move قد تحتوي على مخاطر أمنية مهملة. إنها تذكرنا بأهمية تدقيق الشيفرة، وكذلك الحاجة إلى اعتبارات أمان أكثر شمولاً في تصميم اللغات.
بالنسبة لمستخدمي ومطوري لغة Move، يُنصح بمتابعة التحديثات الأمنية الرسمية عن كثب. في نفس الوقت، عند كتابة كود Move، يجب الانتباه إلى التحكم في عدد معاملات الدالة والمتغيرات المحلية، لتجنب تفعيل مثل هذه الحالات الحدية.
من منظور أكثر شمولاً، تعكس هذه الثغرة أيضاً أن الاعتماد فقط على التحقق الثابت قد لا يكون كافياً لضمان الأمان الكامل. قد تحتاج لغة Move في المستقبل إلى إضافة المزيد من الفحوصات الديناميكية أثناء وقت التشغيل، لمنع مشكلات الأمان المماثلة.
بشكل عام، فإن اكتشاف هذه الثغرة يثبت مرة أخرى أهمية البحث الأمني المستمر في تعزيز أمان تقنية blockchain. مع استمرار توسيع استخدام لغة Move في مجال Web3، نتطلع إلى رؤية المزيد من تدابير تحسين الأمان تُدخل لبناء نظام بيئي أكثر قوة وموثوقية للعقود الذكية.
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.
تسجيلات الإعجاب 17
أعجبني
17
9
مشاركة
تعليق
0/400
FUDwatcher
· 07-11 15:51
كنت أتكلم عن خسارة الفائض الأسبوع الماضي
شاهد النسخة الأصليةرد0
PriceOracleFairy
· 07-10 20:42
يا إلهي، تم تحطيم الحركة بسبب تجاوز أساسي u8... كيف فات هذا على المدققين، حسناً.
تهديد ثغرة تجاوز عدد صحيح في وحدة الأمان المستدعاة من لغة Move
وجود ثغرة في تجاوز العدد الصحيح في وحدة الأمان الخاصة بلغة Move
مؤخراً، تم اكتشاف ثغرة خطيرة في تجاوز السعة الصحيحة في وحدة الأمان المرجعي للغة Move. قد تؤدي هذه الثغرة إلى هجمات حرمان الخدمة وتشكل تهديدًا محتملاً لأمان لغة Move.
تقوم لغة Move بالتحقق من الشيفرة قبل تنفيذ التعليمات البرمجية، وتنقسم إلى عدة خطوات. تظهر هذه الثغرة في خطوة reference_safety، التي تتحمل مسؤولية التحقق من سلامة الإشارات، بما في ذلك التحقق من وجود إشارات معلقة، وما إذا كانت عمليات الوصول إلى الإشارات المتغيرة آمنة أم لا.
جذر الثغرة يكمن في مشكلة تجاوز السعة العددية في وحدة الأمان المستشهد بها. عندما يتجاوز مجموع عدد معلمات الوظيفة وعدد المتغيرات المحلية 256، فإن استخدام نوع u8 للتكرار عبر المتغيرات المحلية يؤدي إلى تجاوز السعة العددية. يمكن استغلال هذا التجاوز لتجاوز الفحوصات الأمنية، مما يؤدي في النهاية إلى هجوم رفض الخدمة.
بشكل محدد، فإن عملية استغلال الثغرات هي كما يلي:
بناء كتلة كود Move تحتوي على حلقة، بحيث يتم تنفيذها عدة مرات.
تعيين عدد كبير من معلمات الدالة والمتغيرات المحلية ، بحيث يتجاوز مجموعها 256.
عند التنفيذ الأول، بسبب تجاوز عدد صحيح، ستصبح طول خريطة المتغيرات المحلية قيمة صغيرة جداً.
في التنفيذ اللاحق، محاولة الوصول إلى فهرس متغير محلي غير موجود، مما يؤدي إلى حدوث panic وانهيار البرنامج.
تظهر هذه الثغرة أنه حتى اللغات التي تركز على الأمان مثل Move قد تحتوي على مخاطر أمنية مهملة. إنها تذكرنا بأهمية تدقيق الشيفرة، وكذلك الحاجة إلى اعتبارات أمان أكثر شمولاً في تصميم اللغات.
بالنسبة لمستخدمي ومطوري لغة Move، يُنصح بمتابعة التحديثات الأمنية الرسمية عن كثب. في نفس الوقت، عند كتابة كود Move، يجب الانتباه إلى التحكم في عدد معاملات الدالة والمتغيرات المحلية، لتجنب تفعيل مثل هذه الحالات الحدية.
من منظور أكثر شمولاً، تعكس هذه الثغرة أيضاً أن الاعتماد فقط على التحقق الثابت قد لا يكون كافياً لضمان الأمان الكامل. قد تحتاج لغة Move في المستقبل إلى إضافة المزيد من الفحوصات الديناميكية أثناء وقت التشغيل، لمنع مشكلات الأمان المماثلة.
! اكتشفت Numen Cyber حصريا ثغرة أمنية أخرى عالية الخطورة في لغة الحركة
بشكل عام، فإن اكتشاف هذه الثغرة يثبت مرة أخرى أهمية البحث الأمني المستمر في تعزيز أمان تقنية blockchain. مع استمرار توسيع استخدام لغة Move في مجال Web3، نتطلع إلى رؤية المزيد من تدابير تحسين الأمان تُدخل لبناء نظام بيئي أكثر قوة وموثوقية للعقود الذكية.
! اكتشفت Numen Cyber حصريا ثغرة أمنية أخرى عالية الخطورة في لغة الحركة
! اكتشفت Numen Cyber حصريا ثغرة أمنية أخرى عالية الخطورة في لغة الحركة