على الرغم من الزيادة في عدد هجمات الشبكة على أجهزة إنترنت الأشياء، غالبا ما يتم وضع أمن البرمجيات الثابتة في وضع ثانوي.عندما يخترق المهاجمون كومة النظام ويستهدفون عملية التشغيل وتكوين الأجهزة الأساسية، أصبح اختيار بنية الذاكرة قرارًا رئيسيًا في إنشاء سلسلة ثقة قابلة للتحقق.
لذلك، يتطلب ضمان أمن البرمجيات الثابتة أن يخضع كل مكون للتحقق من التشفير قبل التنفيذ. تبدأ هذه المسار مع محمول التمهيد الثابت،المسؤول عن تحميل وتحقق من البرمجيات الثابتة الرئيسيةومع ذلك، فإن تقنية الذاكرة المستخدمة في كل خطوة قد تؤدي إلى ضعف البرمجيات الثابتة للتعديلات غير المصرح بها.
ذاكرة فلاش داخلية وخارجية
الموقع المادي للذاكرة غير المتطايرة المستخدمة لتخزين البرمجيات الثابتة هو أحد أكثر العوامل أهمية في نماذج تهديد الجهاز.يحتاج مهندسو البرمجيات الثابتة إلى الاختيار بين الفلاش المضمن على الشريحة (eFlash) ووحدات الفلاش الخارجية المتصلة عبر واجهات متسلسلة مثل SPI أو QSPI.
عادة ما تكون ذاكرة الفلاش المدمجة متكاملة مباشرة على وحدات التحكم الصغيرة أو رقائق SoC.توفر هذه الهندسة المعمارية أعلى مستوى من الأمن المادي حيث لا توجد حافلات خارجية متاحة للمهاجمين للتلاعب بهاحتى الوصول إلى الذاكرة الفلاش الداخلية يتم التحكم به بواسطة سجلات مخصصة وبعض القفل.
بالإضافة إلى ذلك، ذاكرة الفلاش المدمجة تدعم حماية القراءة الدائمة.يمكن للمطورين تعطيل واجهات تحديد الأخطاء JTAG أو SWD لمنع القراصنة من تعديل صور البرمجيات الثابتةومع ذلك، مع انتقال SoCs نحو العقد الأصغر، تواجه هذه التكنولوجيا تحديات كبيرة في التوسع.
على النقيض من ذلك ، يتم وضع ذاكرة فلاش خارج المعالج الرئيسي وتتواصل من خلال واجهة متسلسلة عالية السرعة. هذا الخيار المعماري يجعل سعة التخزين سهلة التوسع ،ولكنه أيضاً يوسع سطح الهجوم للنظامأي بيانات يتم نقلها بين المعالج والذاكرة الفلاشية الخارجية عرضة بطبيعتها لتهديدات مثل التنصت
لمعالجة هذه المخاطر ، يجب على مهندسي البرمجيات الثابتة تنفيذ تدابير الحماية الصلبة للأجهزة والبرمجيات. يتم تجهيز العديد من أجهزة ذاكرة NOR الفلاش الخارجية بعلامة حماية الكتابة المادية.عندما يتم وضع الدبوس على فولتاج معين، المنطق الداخلي للشريحة سوف يمنع أي حذف أو كتابة الأوامر من التنفيذ.
الشكل 1: ذاكرة فلاش W77Q32JWSSIR TR الآمنة من Winbond Electronics لديها قدرات تشفير قنوات الاتصالات المعقدة.
ومع ذلك، إذا كان من الممكن قراءة البيانات، فإن مجرد قفل ذاكرة الفلاش غير كاف. أثناء التنفيذ، لا يزال بإمكان المهاجمين الوصول إلى العنوان وحافلة البيانات.هذه الثغرة قد دفعت إلى تطوير أجهزة فلاش آمنة متخصصة، بما في ذلك آليات الثقة الجذرية القائمة على الأجهزة وقنوات الاتصال المشفرة والعدادات المتوحدة لمنع هجمات التراجع.
ومع ذلك، إذا تم اختيار بنية التخزين الخاطئة، فإن الجهاز سيترك عيوب أساسية لا يمكن إصلاحها بالكامل بواسطة تصحيحات البرمجيات. على سبيل المثال،التصاميم التي تخزن البرمجيات الثابتة على EEPROM الخارجي دون تشفير أو التحقق دائما عرضة لمهاجمين الأجهزةعلى العكس من ذلك، فإن اختيار ذاكرة ذات قيود مفرطة قد يؤثر على وظائفها.
لذلك، يجب على المهندسين فهم أفضل الممارسات وتقنيات التصميم لتحقيق أقصى قدر من أمان البرمجيات الثابتة من خلال بنية الذاكرة.
أفضل الممارسات لتصميم تخزين برنامج ثابت آمن
عند تصميم مسار آمن لتخزين البرمجيات الثابتة من بدء التشغيل إلى وقت التشغيل ، يجب على مهندسي البرمجيات الثابتة اتباع المبادئ التالية:
1أساس الثقة على أساس الأجهزة
يجب أن يبدأ التنفيذ دائمًا من مناطق الذاكرة التي لا يمكن تغييرها. على سبيل المثال ، يجب أن تحتوي ROM boot أو القطاع الفلاش الآمن بشكل دائم على رمز للتحقق من جميع البرامج الثابتة الأخرى.هذا سوف يضمن أن المهاجمين لا يمكن تجاوز التحقق من خلال التلاعب مع كلمة المرور الأصلية.
2استخدم توقيعات مشفرة
قم بتكوين محمول التشغيل الآمن لتشغيل صور البرمجيات الثابتة الموقعة بمفاتيح خاصة موثوقة فقط. بهذه الطريقة، حتى لو تمكن المهاجمون من الوصول إلى الذاكرة وتعديل البتات، يمكنهم منع التعليمات البرمجية غير المصرح بها.إذا كانت السرية مطلوبة، يمكن تشفير البرمجيات الثابتة المخزنة.
3استخدم ميزات أمان الأجهزة
إذا كانت بنية النظام تستخدم التخزين الخارجي ، فيجب على المهندسين اختيار أجهزة تدعم أمن الأجهزة ، مثل حماية كلمة المرور المدمجة أو التشفير البسيط.على الرغم من أن هذه الأجهزة قد لا تكون قوية مثل المكونات الأمنية الكاملة، يضيفون طبقة أخرى من الحماية.
الشكل 2: ماكرونيكس تدعم MX25L3233FM2I-08Q 32 Mb ذاكرة فلاش NOR متسلسلة مع واجهة محيطية متسلسلة. (مصدر الصورة: ماكرونيكس)
4عزل البرمجيات الثابتة والبيانات
تنظيم منطقة الذاكرة وتفريق الشفرة الأكثر حساسية في وحدة التشغيل المتحركة، وضع تعليمات روتينية حاسمة في منطقة الذاكرة الآمنة حتى البرمجيات الثابتة،يمكن تعيين بعض بنوك ذاكرة الفلاش على أنها قابلة للتنفيذ فقط أو القراءة فقط.
5خطة تحديث برنامج الأمان
تأكد من أن عملية التحديث نفسها قد تمت التحقق من صحتها (على سبيل المثال طلب توقيع حزمة التحديث). إذا كان التصميم يستخدم تخزين خارجي للتحديثات المؤقتة ،يجب اتخاذ نفس تدابير الأمان مثل تخزين البرمجيات الثابتة الرئيسية.

