المعلوماتية > برمجيات

كيف يمكنُ لرسالة الـ75 بايت أن تعطِّل نظام iOS؟

انتشرت في الآونة الأخيرة ثغرةٌ تسببت بانهيارِ نظام الضحية وتوقفه عن العمل وقيامه بعملية إعادة التشغيل (مراتٍ متعدّدةٍ في بعض الأحيان)، وهذا بسببِ سلسلة نصيّةٍ تمّت صياغتها بعناية، مستغلةً ثغرة موجودة في نظام التشغيل iOS. 

في الواقع فإنّ هذه السلسلة ليست كبيرة الحجم، فهي مكوّنة من حوالي 50 محرفاً مقسمةً إلى ثلاثة أسطر، مكتوبةٌ بمحارف لاتينيّة وعربيّة وديوناكريّة (سنسكريتيّة وهنديّة)، بالإضافة إلى محارف CJK (محارفٌ مستخدمةٌ في كتابة اللغة الصينيّة واليابانيّة والكوريّة). يمكن إرسال هذه السلسلة برسالة نصيّة، مما يجبر الجهاز على القيام بعملية إعادة التشغيل في حال محاولة فتح الرسالة عن طريق لوحة الإشعارات.

تتلخَّصُ الثغرة بقدرتها على جعل التطبيقات المعتمدة على مكتبة CoreText الخاصّة بـ«آبل» تنهار، بما فيها نظام التشغيل OS X (يمكن استخدام هذه السلسلة النصيّة أيضاً لجعل الـTerminal الخاص بنظام التشغيل ينهار).

تمّ اكتشاف الثغرة لأوّل مرّة عن طريق مدوِّنٍ على Reddit، في يوم الثلاثاء الثامن والعشرين من شهر مايو، وذلك بعد استلامه لتلك الرسالة على هاتفه، ممّا أجبر الهاتف على القيام بعملية إعادة التشغيل، وتبيّن لاحقاً أنّ الثغرة موجودةٌ  أيضاً في ساعة «آبل» وغيرها من الأجهزة العاملة بنظام التشغيل iOS.

في الواقع، فإنّ المشكلة ليست في الحروف العربيّة نفسها، بل في مكتبة CoreText التي تتعامل مع محارف اليونيكود Unicode التي تقوم بترميز هذه الحروف. مكتبة CoreText هي المكتبة التي تساعد التطبيقات على إظهار النصوص على الشاشة.

للتعامل مع هذه الرسالة، تحاول مكتبة CoreText الوصولَ  إلى جزءٍ غير متاحٍ من الذاكرة، ما يجبر نظامَ  التشغيل على القيام بعملية إيقافٍ  قسريٍّ للبرنامج الذي يحاول القيام بهذه العملية (يمكن أن يكون هذا البرنامج برنامج المحادثة النصيّة أوالـTerminal، أو كما في هذه الحالة شاشةُ الإشعارات التي تعد جزءاً مركزيّاً في نظام التشغيل).

يمكن الالتفافُ  على هذه الثغرة عن طريق إيقاف الإشعارات في شاشة القفل في حال لم تصلك الرسالة إلى الآن، على الرغم من كونه إجراءٌ غير مريح، لكنّه حلٌّ وقائيٌّ جيّد.

ولكن لا تقلقوا! فقد قامت «آبل» بإصلاح هذه الثغرة وطرحها عبر تحديث 8.4 الذي صدر منذ عدّة أيام.

في حال وصلتك هذه الرسالة في الإصدارات السابقة، فإنّ أفضل إجراءٍ يمكن القيام به هو أن تطلب من «سيري» قراءةَ الرسائل غير المقروءة، ثمّ أن تطلب منه أن يجيب على هذه الرسالة. بعد إجابة «سيري» على الرسالة يمكنك فتح تطبيق الرسائل، وفي حال استمرّت المشكلة يمكنك أن تقوم بمحو الرسالة. 

-------------------------------------

المصادر:

هنا

هنا