مؤخراً، اكتشف باحثو الأمان ثغرة جديدة في تجاوز سعة الأعداد الصحيحة أثناء تحليلهم العميق للغة Move. تظهر هذه الثغرة خلال عملية التحقق من أمان المرجع في لغة Move، وقد تؤدي إلى تعطل العقد.
تقوم لغة Move بالتحقق من الكود قبل تنفيذ التعليمات البرمجية البايتة، وتنقسم إلى أربع خطوات. يوجد هذا الثغرة في خطوة reference_safety. يتحقق التحقق من أمان الإشارة بشكل أساسي من وجود إشارات معلقة، وما إذا كان الوصول إلى الإشارات القابلة للتغيير آمناً، وما إذا كان الوصول إلى إشارات التخزين العالمية آمناً، وما إلى ذلك.
ستقوم عملية التحقق بتحليل كل كتلة أساسية. الكتلة الأساسية هي تسلسل من التعليمات البرمجية بدون تعليمات فرعية باستثناء نقطة الدخول والخروج. يقوم Move بتحديد الكتل الأساسية عن طريق استعراض الشيفرة البرمجية والبحث عن التعليمات الفرعية وتعليمات الحلقة.
العملية الرئيسية للتحقق من أمان الإشارة هي: تنفيذ التعليمات البرمجية لكل كتلة أساسية، وإنشاء الحالة بعد التنفيذ، ثم دمج الحالة قبل وبعد التنفيذ، وتحديث حالة الكتلة ونشرها إلى الكتل اللاحقة. تتكرر هذه العملية حتى لا تتغير الحالة أو تحدث أخطاء.
تظهر الثغرة أثناء عملية دمج الحالة. إذا كان طول معلمات الدالة بالإضافة إلى طول المتغيرات المحلية أكبر من 256، فسوف يؤدي ذلك إلى تجاوز نوع u8. على الرغم من وجود فحص للكود لعدد المتغيرات المحلية، إلا أنه لا يشمل طول المعلمات.
يمكن استخدام هذا الفائض لتغيير حالة الكتلة، مما يجعل الحالة الجديدة مختلفة عن القديمة. عند تنفيذ الكتلة الأساسية مرة أخرى، سيؤدي الوصول إلى فهرس غير موجود في الحالة الجديدة إلى تعطل البرنامج.
قدم الباحثون رمز إثبات المفهوم يمكنه استغلال هذه الثغرة مما يؤدي إلى انهيار العقدة. وهذا يدل على أنه حتى اللغات ذات الأنواع الثابتة قد تحتوي على مشكلات أمنية، لذا فإن تدقيق الكود أمر مهم. يُوصى بأن تضيف لغة Move المزيد من الفحوصات الأمنية أثناء التشغيل، وليس فقط في مرحلة التحقق.
تظهر اكتشاف هذه الثغرة مرة أخرى أنه لا يوجد كود آمن بشكل مطلق. حتى اللغات ذات الأنواع القوية قد تحتوي على ثغرات. سيواصل باحثو الأمن تحليل لغة Move بعمق بحثًا عن المزيد من المشكلات المحتملة.
قد تحتوي هذه الصفحة على محتوى من جهات خارجية، يتم تقديمه لأغراض إعلامية فقط (وليس كإقرارات/ضمانات)، ولا ينبغي اعتباره موافقة على آرائه من قبل Gate، ولا بمثابة نصيحة مالية أو مهنية. انظر إلى إخلاء المسؤولية للحصول على التفاصيل.
تسجيلات الإعجاب 9
أعجبني
9
7
إعادة النشر
مشاركة
تعليق
0/400
BlockchainRetirementHome
· منذ 6 س
هل يجب أن تتوقف Move؟
شاهد النسخة الأصليةرد0
MemeEchoer
· منذ 6 س
انهار مرة أخرى، كم مرة حدث ذلك اليوم؟
شاهد النسخة الأصليةرد0
AirdropBlackHole
· منذ 6 س
هذا الاتجاه الساخن قد انحاز - لقد انفجر move مرة أخرى
اكتشاف ثغرة في تجاوز السعة العددية في لغة Move قد تؤدي إلى انهيار العقدة
اكتشاف ثغرة تجاوز عدد صحيح جديدة في لغة Move
مؤخراً، اكتشف باحثو الأمان ثغرة جديدة في تجاوز سعة الأعداد الصحيحة أثناء تحليلهم العميق للغة Move. تظهر هذه الثغرة خلال عملية التحقق من أمان المرجع في لغة Move، وقد تؤدي إلى تعطل العقد.
! اكتشفت Numen Cyber حصريا ثغرة أمنية أخرى عالية الخطورة في لغة الحركة
تقوم لغة Move بالتحقق من الكود قبل تنفيذ التعليمات البرمجية البايتة، وتنقسم إلى أربع خطوات. يوجد هذا الثغرة في خطوة reference_safety. يتحقق التحقق من أمان الإشارة بشكل أساسي من وجود إشارات معلقة، وما إذا كان الوصول إلى الإشارات القابلة للتغيير آمناً، وما إذا كان الوصول إلى إشارات التخزين العالمية آمناً، وما إلى ذلك.
ستقوم عملية التحقق بتحليل كل كتلة أساسية. الكتلة الأساسية هي تسلسل من التعليمات البرمجية بدون تعليمات فرعية باستثناء نقطة الدخول والخروج. يقوم Move بتحديد الكتل الأساسية عن طريق استعراض الشيفرة البرمجية والبحث عن التعليمات الفرعية وتعليمات الحلقة.
العملية الرئيسية للتحقق من أمان الإشارة هي: تنفيذ التعليمات البرمجية لكل كتلة أساسية، وإنشاء الحالة بعد التنفيذ، ثم دمج الحالة قبل وبعد التنفيذ، وتحديث حالة الكتلة ونشرها إلى الكتل اللاحقة. تتكرر هذه العملية حتى لا تتغير الحالة أو تحدث أخطاء.
تظهر الثغرة أثناء عملية دمج الحالة. إذا كان طول معلمات الدالة بالإضافة إلى طول المتغيرات المحلية أكبر من 256، فسوف يؤدي ذلك إلى تجاوز نوع u8. على الرغم من وجود فحص للكود لعدد المتغيرات المحلية، إلا أنه لا يشمل طول المعلمات.
يمكن استخدام هذا الفائض لتغيير حالة الكتلة، مما يجعل الحالة الجديدة مختلفة عن القديمة. عند تنفيذ الكتلة الأساسية مرة أخرى، سيؤدي الوصول إلى فهرس غير موجود في الحالة الجديدة إلى تعطل البرنامج.
! اكتشفت Numen Cyber حصريا ثغرة أمنية أخرى عالية الخطورة في لغة الحركة
قدم الباحثون رمز إثبات المفهوم يمكنه استغلال هذه الثغرة مما يؤدي إلى انهيار العقدة. وهذا يدل على أنه حتى اللغات ذات الأنواع الثابتة قد تحتوي على مشكلات أمنية، لذا فإن تدقيق الكود أمر مهم. يُوصى بأن تضيف لغة Move المزيد من الفحوصات الأمنية أثناء التشغيل، وليس فقط في مرحلة التحقق.
تظهر اكتشاف هذه الثغرة مرة أخرى أنه لا يوجد كود آمن بشكل مطلق. حتى اللغات ذات الأنواع القوية قد تحتوي على ثغرات. سيواصل باحثو الأمن تحليل لغة Move بعمق بحثًا عن المزيد من المشكلات المحتملة.
! اكتشفت Numen Cyber حصريا ثغرة أمنية أخرى عالية الخطورة في لغة الحركة