بحث أمني في إنترنت الأشياء — من صورة برنامج ثابت إلى ثغرة CVE منشورة
- Home
- المشاريع
نظرة عامة على المشروع
هذا هو البحث الذي أعود إليه دائمًا: العتاد المتصل للمستهلكين والشركات الصغيرة — الموجّهات، وأجهزة التلفزيون، وكاميرات الشبكة، والحواسيب أحادية اللوحة خلفها. والمنهج غير براق عن قصد. اشترِ الجهاز، ونزّل البرنامج الثابت الرسمي من صفحة دعم المصنّع، واستخرجه بأداة binwalk، وثبّت جذر SquashFS واقرأ نظام الملفات قبل أن تلمس أي مصحّح أخطاء. ثم ضع الوحدة الحية على شبكة اختبار معزولة وراقب ما تفعله فعلًا. ولا يزال هذا ينتج نتائج ذات أثر واسع بشكل غير معتاد، لأن قرارًا سيئًا واحدًا داخل صورة برنامج ثابت يُشحن إلى كل من اشترى ذلك الطراز ولا يكاد يُرقَّع بعد السنة الأولى. وقد صارت إحداها الثغرة CVE-2026-58378 — جهاز تلفزيون يُشحن بجسر تصحيح أندرويد مفعّلًا ومكشوفًا على الشبكة — ونشرتها CISA ضمن الإرشاد VA-26-190-03. وأصلح المصنّعون أخرى بهدوء: مفتاح RSA خاص ثابت متطابق في كل وحدة، وحركة إدارة بلا تشفير نقل، وبروتوكول تصحيح بلا مصادقة ينصت على الشبكة المحلية.
التحديات
- العمل انطلاقًا من صورة ثنائية مجرّدة بلا شفرة مصدرية ولا رموز ولا توثيق من المصنّع.
- التعامل مع بنى ARM وMIPS المشتقة من OpenWrt، ومع أدوات تحزيم مخصصة وشفرة مفسّر غير قياسية.
- التمييز بين خلل قابل للوصول عن بُعد فعلًا وأثر تصحيح لا يغادر المصنع أبدًا.
- إثبات الأثر على وحدة حية دون تعطيل الجهاز أو الوصول إلى شبكة أي شخص آخر.
- إيصال التقرير إلى مصنّع لا ينشر في الغالب أي جهة اتصال أمنية أصلًا.
المنهج
- تنزيل البرنامج الثابت الرسمي، واستخراجه بأداة binwalk، وتثبيت جذر SquashFS وقراءة نظام الملفات أولًا.
- البحث عن الأشياء المملة — المفاتيح، والشهادات، وكتل base64 في نصوص الإقلاع، وكل ملف تنفيذي ينصت على منفذ.
- إعادة بناء المفسّر بخريطة الأوامر المُبدَّلة الخاصة بالمصنّع لفك ترجمة واجهة الويب واستعادة منطقها الحقيقي.
- تأكيد كل نتيجة على شبكة اختبار معزولة لا تضم سوى الجهاز قيد الاختبار.
- الإبلاغ لفريق PSIRT لدى المصنّع أولًا، والتصعيد إلى الإفصاح المنسّق لدى CISA حين لا يستجيب المصنّع، وعدم نشر أي شيء قبل وجود إصلاح.
نتائج تمثيلية
العناصر المنشورة مذكورة بالاسم. أما الأجهزة غير المُصلَحة فلا تُحدَّد هنا — فالنمط هو الجزء القابل للنقل، والإفصاح يأتي أولًا.
- مفتاح خاص ثابت في كل وحدة. كان مفتاح RSA خاص موجودًا بنص واضح داخل صورة البرنامج الثابت — لا عنصرًا نائبًا، بل المفتاح الذي يستخدمه الجهاز فعلًا، ومتطابقًا عبر كل وحدة في ذلك الإصدار. وكل من نزّل الصورة العامة كان بوسعه انتحال شخصية الجهاز. ولا يصلح ذلك إلا تغيير في البرنامج الثابت يولّد المفتاح عند أول إقلاع.
- حركة إدارة بنص واضح. كانت واجهة الإدارة تُقدَّم دون تشفير للنقل على الشبكة المحلية، فوضعت بيانات اعتماد المسؤول على السلك بصيغة يقرأها أي شخص على الشبكة اللاسلكية نفسها.
- بروتوكول تصحيح بلا مصادقة. كانت خدمة تصحيح خاصة بالمصنّع تنصت وتقبل الأوامر دون أي بيانات اعتماد إطلاقًا. وباقترانها بواجهة الإدارة غير المشفّرة، لم يكن المهاجم الذي يصل إلى الشبكة المحلية بحاجة إلى تخمين أي شيء ليمتلك البوابة.
- جسر تصحيح أندرويد مكشوف على الشبكة. شُحن جهاز تلفزيون إنتاجي بجسر ADB مفعّلًا وقابلًا للوصول عبر الشبكة؛ ويحصل المهاجم الذي ينال تفويض ADB على وصول بصلاحية الجذر. نُشرت تحت المعرّف CVE-2026-58378 ضمن إرشاد CISA رقم VA-26-190-03.
- الغموض بديلًا عن التخويل. شُحن منطق واجهة الويب كشفرة بايت مجرّدة بجدول أوامر مُبدَّل. وأعادت إعادةُ بناء المفسّر مقابل ذلك الجدول استعادةَ منطق المصدر — وأظهرت أن عدة إجراءات كانت مخفية عن الواجهة لا محمية بضوابط وصول فعلية.
إفصاح، لا نشر
العملية لا تقل أهمية عن النتيجة. يذهب كل شيء أولًا إلى فريق PSIRT لدى المصنّع، مع الإصدار الدقيق للبرنامج الثابت، ومسارات الملفات، وخطوات إعادة الإنتاج، ومعالجة مقترحة لكل مشكلة. وحين يكون المنتج واسع الانتشار أو يتباطأ المصنّع في الرد، أصعّد عبر برنامج الإفصاح المنسّق عن الثغرات لدى CISA — وهكذا انتهت الثغرة CVE-2026-58378 إلى النشر تحت VA-26-190-03. ولا تُنشر أي تفصيلة تقنية قبل وجود إصلاح. وعمليًا، نادرًا ما يكون التحليل هو الجزء الأبطأ؛ بل العثور على إنسان لدى المصنّع مخوّل باستلام التقرير.
ما الذي أفحصه
- الموجّهات والبوابات المنزلية وموجّهات المكاتب الصغيرة
- أجهزة التلفزيون والوسائط العاملة بأندرويد
- كاميرات الشبكة وسائر الأجهزة الدائمة الاتصال على الشبكة المحلية
- صور البرامج الثابتة وسلاسل الإقلاع وآليات التحديث
- الإفصاح المنسّق عبر PSIRT لدى المصنّعين وعبر CISA