مؤخراً، تم اكتشاف ثغرة خطيرة في تجاوز الحد الأقصى للعدد في لغة Move. تظهر هذه الثغرة خلال خطوات التحقق من الأمان، مما قد يؤدي إلى هجمات رفض الخدمة. من خلال تحليل هذه الثغرة بعمق، يمكننا الحصول على فهم أعمق للغة Move.
تقوم لغة Move بالتحقق من الشيفرة قبل تنفيذ التعليمات البرمجية، وتنقسم إلى أربع خطوات. تظهر هذه الثغرة في خطوة reference_safety. مسؤولية وحدة reference_safety هي التحقق من شرعية عمليات الإشارة، بما في ذلك التحقق من وجود مراجع عائمة، وما إذا كانت الوصول إلى المراجع المتغيرة آمنة.
عملية التحقق تتم على مستوى الدوال. بالنسبة لكل دالة، يتم التعرف أولاً على الكتل الأساسية فيها. الكتلة الأساسية هي تسلسل من التعليمات البرمجية المتتالية، حيث قد توجد الفروع فقط عند المدخلات والمخرجات. ثم يتم تحليل كل كتلة أساسية، وتوليد الحالة قبل وبعد التنفيذ، ونشر الحالة إلى الكتل اللاحقة.
تتضمن الحالة قسمين من المعلومات: locals و borrow graph. يسجل locals معلومات المتغيرات المحلية، بينما تمثل borrow graph العلاقات المرجعية بين المتغيرات. ستقوم عملية التحليل بتحديث معلومات الحالة هذه بشكل مستمر.
تظهر الثغرة أثناء عملية دمج الحالة. عندما يتجاوز العدد الإجمالي لوسائط الدالة والمتغيرات المحلية 256، يحدث تجاوز عددي بسبب استخدام نوع u8 لتمثيل الفهرس. هذا يؤدي إلى ظهور أخطاء في معلومات الحالة المدمجة، مما قد يتسبب في هجوم رفض الخدمة.
على الرغم من أن لغة Move لديها آلية للتحقق من عدد المتغيرات المحلية، إلا أنها لم تأخذ في الاعتبار عدد المعلمات. هذه الإغفالة أدت إلى ظهور ثغرات.
لتفعيل هذا الثغرة، يمكن للمهاجم بناء كتلة كود دورية، والاستفادة من تجاوز السعة لتغيير حالة الكتلة. عند التنفيذ مرة أخرى، بسبب المعلومات الخطأ عن الحالة، سيؤدي الوصول إلى متغيرات غير موجودة إلى تعطل البرنامج.
توضح هذه الثغرة مرة أخرى أنه حتى اللغات المصممة بعناية قد تكون فيها ثغرات أمنية. إنها تذكرنا بأهمية تدقيق الشفرات، والحاجة إلى اعتبارات أمان أكثر شمولاً في تصميم اللغات. بالنسبة للغة Move، قد يكون إضافة المزيد من الفحوصات في وقت التشغيل اتجاهًا للتحسين.
قد تحتوي هذه الصفحة على محتوى من جهات خارجية، يتم تقديمه لأغراض إعلامية فقط (وليس كإقرارات/ضمانات)، ولا ينبغي اعتباره موافقة على آرائه من قبل Gate، ولا بمثابة نصيحة مالية أو مهنية. انظر إلى إخلاء المسؤولية للحصول على التفاصيل.
تم الكشف عن ثغرة تجاوز عدد صحيح في لغة Move، مما يثير مخاطر في التحقق من الأمان.
إعادة إنتاج ثغرة تجاوز السعة الصحيحة في لغة Move
مؤخراً، تم اكتشاف ثغرة خطيرة في تجاوز الحد الأقصى للعدد في لغة Move. تظهر هذه الثغرة خلال خطوات التحقق من الأمان، مما قد يؤدي إلى هجمات رفض الخدمة. من خلال تحليل هذه الثغرة بعمق، يمكننا الحصول على فهم أعمق للغة Move.
تقوم لغة Move بالتحقق من الشيفرة قبل تنفيذ التعليمات البرمجية، وتنقسم إلى أربع خطوات. تظهر هذه الثغرة في خطوة reference_safety. مسؤولية وحدة reference_safety هي التحقق من شرعية عمليات الإشارة، بما في ذلك التحقق من وجود مراجع عائمة، وما إذا كانت الوصول إلى المراجع المتغيرة آمنة.
عملية التحقق تتم على مستوى الدوال. بالنسبة لكل دالة، يتم التعرف أولاً على الكتل الأساسية فيها. الكتلة الأساسية هي تسلسل من التعليمات البرمجية المتتالية، حيث قد توجد الفروع فقط عند المدخلات والمخرجات. ثم يتم تحليل كل كتلة أساسية، وتوليد الحالة قبل وبعد التنفيذ، ونشر الحالة إلى الكتل اللاحقة.
تتضمن الحالة قسمين من المعلومات: locals و borrow graph. يسجل locals معلومات المتغيرات المحلية، بينما تمثل borrow graph العلاقات المرجعية بين المتغيرات. ستقوم عملية التحليل بتحديث معلومات الحالة هذه بشكل مستمر.
تظهر الثغرة أثناء عملية دمج الحالة. عندما يتجاوز العدد الإجمالي لوسائط الدالة والمتغيرات المحلية 256، يحدث تجاوز عددي بسبب استخدام نوع u8 لتمثيل الفهرس. هذا يؤدي إلى ظهور أخطاء في معلومات الحالة المدمجة، مما قد يتسبب في هجوم رفض الخدمة.
على الرغم من أن لغة Move لديها آلية للتحقق من عدد المتغيرات المحلية، إلا أنها لم تأخذ في الاعتبار عدد المعلمات. هذه الإغفالة أدت إلى ظهور ثغرات.
لتفعيل هذا الثغرة، يمكن للمهاجم بناء كتلة كود دورية، والاستفادة من تجاوز السعة لتغيير حالة الكتلة. عند التنفيذ مرة أخرى، بسبب المعلومات الخطأ عن الحالة، سيؤدي الوصول إلى متغيرات غير موجودة إلى تعطل البرنامج.
توضح هذه الثغرة مرة أخرى أنه حتى اللغات المصممة بعناية قد تكون فيها ثغرات أمنية. إنها تذكرنا بأهمية تدقيق الشفرات، والحاجة إلى اعتبارات أمان أكثر شمولاً في تصميم اللغات. بالنسبة للغة Move، قد يكون إضافة المزيد من الفحوصات في وقت التشغيل اتجاهًا للتحسين.
! اكتشفت Numen Cyber حصريا ثغرة أمنية أخرى عالية الخطورة في لغة الحركة
! اكتشف Numen Cyber حصريا ثغرة أمنية أخرى عالية الخطورة في لغة الحركة
! اكتشفت Numen Cyber حصريا ثغرة أمنية أخرى عالية الخطورة في لغة الحركة