كشف باحثو أمن سيبراني عن نجاحهم في استخلاص البرمجيات الثابتة (firmware) من جهاز ساعة ذكية منخفض التكلفة، وذلك بالاعتماد على تقنية تعود إلى عشرين عاماً كانت تستخدم سابقاً لسرقة البيانات من أجهزة الشبكات.
تم تعديل هذه التقنية، المعروفة باسم “Blinkenlights”، لتناسب شاشات TFT الحديثة بدلاً من مؤشرات LED التقليدية. يبرز هذا الإنجاز مدى فعالية الأساليب القديمة عند تكييفها مع التقنيات الحديثة.
باحثون يستعيدون تقنية “Blinkenlights” لفك برمجيات الساعات الذكية
قام محللون من شركة Quarkslab بشراء ساعة ذكية بسعر تقريبي بلغ 12 يورو من متجر محلي، واكتشفوا أنها تحتوي على مستشعرات صحية مزيفة غير قادرة على قياس ضغط الدم أو تتبع نشاط النوم.
اعتمد الجهاز على شريحة نظام-على-شريحة (SoC) من طراز JieLi AC6958C6 وتواصل عبر تقنية Bluetooth Low Energy، وهو ما بدا في البداية وكأنه مسار واعد لاستخلاص البرمجيات الثابتة.
بعد تحليل الساعة الذكية، حدد الباحثون ثغرة أمنية في محلل واجهات العرض (dial parser) سمحت بقراءة خارج الحدود. هذه الثغرة الأمنية مكّنتهم من استغلال خطأ في التحقق من حدود الذاكرة، مما أجبر الجهاز على عرض محتويات الذاكرة العشوائية مباشرة على الشاشة.
تفاصيل الثغرة الأمنية
أشار محللو Quarkslab إلى هذه النقطة الضعيفة بعد هندسة عكسية لعملية تحميل واجهات العرض المخصصة، واكتشاف أن محلل البرمجيات الثابتة لم يتحقق من إزاحات الصور التي تشير إلى بيانات خارج النطاق المسموح به في ملف الواجهة الثنائية.
كان هذا الاكتشاف محورياً في تطوير الطريقة الجديدة لاستخلاص البرمجيات الثابتة، حيث فتح الباب أمام استغلال مباشر لبيانات الذاكرة.
محاولات استخلاص البرمجيات الثابتة
جرب الباحثون عدة طرق لاستخلاص البرمجيات الثابتة قبل الاستقرار على نهج Blinkenlights. في البداية، استكشفوا ميزة التحديث عبر الهواء (over-the-air update) التي توفرها JieLi، لكنهم وجدوا أنها تدعم فقط تحميل البرمجيات الثابتة، وليس تنزيلها.
استخدمت آلية المصادقة وظيفة E1 القديمة لـ Bluetooth مع قيم ثابتة، وهو ما نجح الباحثون في محاكاته. ومع ذلك، ثبت أن هذا المسار لم يسفر عن نتائج لاستخلاص البرمجيات الثابتة.
تطبيق Blinkenlights الحديث
طور الفريق إعداداً خاصاً للأجهزة باستخدام Raspberry Pi Pico، تم رفع تردده إلى 200 ميجاهرتز، لالتقاط البيانات المرسلة من شريحة SoC الرئيسية للساعة الذكية إلى وحدة تحكم الشاشة NV3030B.
استخدمت الشاشة ساعة بتردد 25 ميجاهرتز لنقل بيانات البكسل بتنسيق RGB565، مما استلزم أخذ عينات عالية السرعة لالتقاط المعلومات بدقة.
قام الباحثون بلحام أسلاك دقيقة بقطر 0.1 ملم في موصل الشاشة، واستخدموا ميزة الإدخال/الإخراج القابلة للبرمجة (PIO) في Pico لأخذ عينات من بتات البيانات عند حواف الساعة الصاعدة. تم تصميم برنامج PIO بتعليمات قليلة لضمان الكفاءة عند معدل أخذ العينات المرتفع.
تم تخزين البيانات الملتقطة في مخزن Pico بسعة 145,000 بايت قبل نقلها إلى جهاز حاسوب مضيف عبر منفذ USB التسلسلي.
استغلال الثغرة لاستخلاص البيانات
لتشغيل عملية تفريغ البرمجيات الثابتة، قام الباحثون بإنشاء واجهات عرض مخصصة تحتوي على قيم إزاحة معدلة، مما تسبب في قراءة الساعة الذكية وعرض محتويات الذاكرة التي تتجاوز منطقة البيانات المخصصة لواجهة العرض.
شملت عملية الاستخلاص إنشاء واجهات عرض مخصصة متعددة، تستهدف كل منها عناوين ذاكرة مختلفة. تم تضمين رأس خاص يحتوي على كلمات تزامن (0xa5a5a5a5) وبايتات سحرية (0xdeadbeef) في كل واجهة عرض لتحديد كتل البيانات الملتقطة والتحقق من المحاذاة.
تم تطوير نصوص برمجية باستخدام Python لأتمتة إنشاء واجهات العرض، وجمع البيانات، وإعادة بناء البرمجيات الثابتة من شرائح الذاكرة الفردية.
توضح هذه الأبحاث كيف أن تقنيات الهجوم القديمة تظل فعالة ضد الأجهزة المدمجة الحديثة عند دمجها مع طرق استغلال إبداعية. أثبت نهج الأجهزة منخفض التكلفة، الذي لا يتجاوز تكلفته سوى Raspberry Pi Pico، أنه أكثر عملية من محللات المنطق باهظة الثمن لهذا التطبيق المحدد.

