أمن ROM الاختياري في macOS
ملاحظة: وحدات ROM الاختيارية غير مدعومة حاليًا في أجهزة كمبيوتر Mac المزودة بسيليكون Apple.
أمن ROM الاختياري على Mac مزود بشريحة Apple T2 الأمنية
يمكن أن تحتوي أجهزة ثندربولت و PCIe على "Option ROM" أو (OROM) متصل فعليًا بالجهاز. (لا يعد هذا عادةً ROM حقيقيًا، ولكنه بدلاً من ذلك شريحة قابلة لإعادة الكتابة تُخزّن البرامج الثابتة.) في الأنظمة المستندة إلى UEFI، يكون هذا البرنامج الثابت عادةً برنامج تشغيل UEFI الذي تتم قراءته بواسطة برنامج UEFI الثابت ثم تنفيذه. من المفترض أن تقوم التعليمة البرمجية التي تم تنفيذها بتهيئة وتكوين المكونات المادية التي تم استردادها منها، بحيث يمكن جعل المكونات المادية قابلة للاستخدام بواسطة باقي البرامج الثابتة. وهذه الإمكانية مطلوبة حتى تتمكن المكونات المادية المتخصصة التابعة لجهات خارجية من التحميل والتشغيل خلال مراحل بدء التشغيل الأولى—على سبيل المثال، لبدء التشغيل من صفائف RAID الخارجية.
لكن نظرًا لأن OROMs قابلة لإعادة الكتابة عمومًا، إذا استبدل أحد المهاجمين OROM الخاص بجهاز طرفي شرعي، فقد يتم تنفيذ تعليمات المهاجم البرمجية في وقت مبكر من عملية التمهيد ويكون بإمكانه العبث في بيئة التنفيذ وانتهاك سلامة البرامج التي يتم تحميلها لاحقًا. وبالمثل، إذا قدّم المهاجم أجهزته الضارة إلى النظام، فسيكون بإمكانه أيضًا تنفيذ تعليمات برمجية ضارة.
في macOS 10.12.3، تم تغيير سلوك أجهزة كمبيوتر Mac المباعة بعد 2011 إلى عدم تنفيذ OROMs افتراضيًا في الوقت الذي يتم فيه تمهيد الـ Mac، ما لم يتم الضغط على مجموعة مفاتيح خاصة. وتكون مجموعة المفاتيح هذه محمية ضد OROMs الضارة التي يتم إدخالها عن غير قصد في تسلسل تمهيد macOS. تم تغيير السلوك الافتراضي لأداة كلمة سر البرنامج الثابت أيضًا، بحيث عندما يقوم المستخدم بتعيين كلمة سر للبرنامج الثابت، لا يمكن تنفيذ OROMs حتى إذا تم الضغط على مجموعة المفاتيح. وذلك يؤدي إلى الحماية ضد أي مهاجم بحوزته الجهاز ماديًا يحاول عن قصد إدخال OROM ضار. بالنسبة للمستخدمين الذين ما زالوا بحاجة إلى تشغيل OROMs بينما لديهم مجموعة كلمات سر للبرامج الثابتة، يمكن تكوين خيار غير افتراضي باستخدام أداة سطر الأوامر firmwarepasswd
في macOS.
أمن OROM محدود الوصول
في macOS 10.15، تم تحديث برنامج UEFI الثابت بحيث يحتوي على آلية لإدخال OROMs في وضع الحماية ولتجريدها من امتيازاتها. عادةً ما ينفذ برنامج UEFI الثابت جميع التعليمات البرمجية، بما في ذلك OROMs، على مستوى الامتياز الأقصى لوحدة المعالجة المركزية، يُدعى الحلقة 0، ومساحة ذاكرة ظاهرية مشتركة واحدة لجميع التعليمات البرمجية والبيانات. تمثل الحلقة 0 مستوى الامتياز الذي يتم تشغيل kernel في macOS عليه، في حين أن مستوى الامتياز الأدنى، الحلقة 3، هو مكان تشغيل التطبيقات. إن وضع حماية OROM يجرّد OROMs من امتيازاتها عن طريق الاستفادة من فصل الذاكرة الظاهرية مثلما يفعل kernel، ثم تشغيل OROMs في الحلقة 3.
يعمل وضع الحماية أيضًا على إضافة مزيد من القيود المشددة على كل من الواجهات التي تستطيع OROMs الاتصال بها (فيما يشبه تصفية اتصالات النظام في kernels)، ونوع الجهاز الذي يستطيع OROM التسجيل باسمه (فيما يشبه وضع اعتماد التطبيقات). تكمن فائدة هذا التصميم في أن OROMs الضارة لم تعد قادرة على الكتابة مباشرةً في أي مكان داخل ذاكرة الحلقة 0. وبدلاً من ذلك تقتصر على واجهة وضع الحماية الضيقة جدًا والمحددة جيدًا. وتعمل هذه الواجهة المحدودة على تقليل الأجزاء المعرضة للهجوم بشكل كبير وتُجبر المهاجمين على الخروج أولاً من وضع الحماية وتصعيد الامتياز.