إنتل x86 جذر الثقة: فقدان الثقة



الصورة: shutterstock

هنا تأتي اللحظة التي كان معظم مهندسي أنظمة Intel ومهندسيها وخبراء الأمن يخشون أكثر من غيرها: تم العثور على خطأ في منطقة الذاكرة غير الصالحة (ROM) الخاصة بمحرك Intel Converged Security and Management Engine ، وهذا الخطأ يلقي بظلال من الشك على كل جهود الشركة لخلق جذر الثقة وأساس الأمان على منصاتها.

والنقطة هنا ليست حتى أنه لا يمكن إصلاح أخطاء البرامج الثابتة (البرامج الثابتة) ، والتي تكون "سلكية" في الذاكرة الداخلية للقناع ROM للمعالجات الدقيقة ومجموعة الشرائح ، ولكن بالأحرى أن الخطأ الموجود يدمر سلسلة الثقة للمنصة بأكملها ككل ، مما يسمح اختراق قاعدة الأجهزة الخاصة به.

وجد خبراء التقنيات الإيجابية خطأ في الأجهزة في أجهزة Intel ، بالإضافة إلى خطأ في برنامج Intel CSME الثابت ، والذي يتجلى في مرحلة مبكرة جدًا من هذا النظام الفرعي ، في تمهيد التشغيل (ROM ROM). من المعروف أن Intel CSME هي التي توفر المصادقة الأولية لنظام قائم على رقائق Intel ، وتحميل وفحص جميع البرامج الثابتة للمنصات الحديثة. على سبيل المثال ، يضمن Intel CSME ، بالتفاعل مع الرمز الصغير لوحدة المعالجة المركزية ، صحة برنامج UEFI BIOS الثابت عبر تقنية BootGuard. بالإضافة إلى ذلك ، تقوم Intel CSME بتنزيل البرامج الثابتة لوحدة التحكم في إدارة الطاقة والتحقق منها ، والتي تتحكم في مصدر الجهد لكل وحدة أجهزة في رقائق Intel.

ولكن الأهم من ذلك ، أن Intel CSME هي المسؤولة عن قاعدة التشفير لتقنيات حماية الأجهزة التي طورتها Intel وتستخدم في كل مكان ، مثل DRM و fTPM و Intel Identity Protection. يطبق برنامج Intel CSME الثابت نظام اعتماد عن بُعد للأنظمة الموثوقة التي تسمى EPID (معرف الخصوصية المحسّن) ، والذي يسمح لك بتحديد كل مثيل محدد لنظام حوسبة (كمبيوتر) بشكل فريد ومجهول ، والعثور على العديد من التطبيقات المفيدة ، مثل حماية المحتوى الرقمي ، وضمان أمان المعاملات المالية ، التصديق على إنترنت الأشياء. بالإضافة إلى ذلك ، تحتوي البرامج الثابتة Intel CSME على وحدة برامج TPM تسمح لك باستخدامها لتخزين مفاتيح التشفير بدون شريحة TPM إضافية ، وهي بعيدة عن كل جهاز كمبيوتر.

وقد حاولت إنتل جعل جذر الثقة آمنًا قدر الإمكان. تم تصميم نظام الأمان لمنصات Intel بطريقة تجعل حتى خطأ تنفيذ التعليمات البرمجية التعسفي في أي من وحدات البرامج الثابتة Intel CSME لا يحمل خطر فقدان مفتاح جذر الأمان (المعروف أيضًا باسم Chipset Key) ، ولكنه يعرض الوظائف المحددة التي تكون الوحدة الضعيفة مسؤولة عنها عندما يتيح لك ذلك تخفيف المخاطر بسهولة عن طريق تغيير مفاتيح التشفير باستخدام آلية رقم الإصدار الآمن لـ SVN. تم توضيح ذلك بوضوح في عام 2017 ، عندما تم العثور على خطأ في تنفيذ التعليمات البرمجية التعسفية في وحدة البرامج الثابتة BringUP (bup) ، الموصوفة في Intel SA-00086. ثم قامت Intel ببساطة بتنفيذ عملية التجديد الرئيسية عن طريق زيادة SVN ، وبالتالي تجنبت بسهولة خطر اختراق التقنيات المستندة إلى EPID.

ولكن لسوء الحظ ، لا توجد أنظمة أمان مثالية ، ومثل أي نظام آخر ، فإن بنية Intel الأمنية لها كعب أخيل - تمهيد ROM. يسمح لك خطأ في ROM في المراحل الأولى من التنفيذ حقًا بالتحكم في عملية قراءة مفتاح مجموعة الشرائح وإنشاء جميع مفاتيح التشفير الأخرى. يتم استخدام أحد هذه المفاتيح لتشفير صفيف بيانات Integrity Control Value Blob (ICVB). باستخدام هذا المفتاح ، يمكنك تزوير رمز أي من وحدات البرامج الثابتة Intel CSME - ولن يتمكن نظام المصادقة من التعرف على المزيف. هذا بمثابة تسريب المفتاح الخاص للتوقيع الرقمي للبرامج الثابتة من Intel CSME ، ولكن بالنسبة لهذا النظام الأساسي المحدد.

في الوقت الحالي ، يتم تخفيف الوضع مع EPID من خلال حقيقة أن مفتاح Chipset يتم تخزينه داخل النظام الأساسي (في ذاكرة OTP الخاصة ، ذاكرة قابلة للبرمجة لمرة واحدة) في شكل مشفر ولتعريض EPID بشكل كامل ، من الضروري أيضًا استخراج مفتاح الجهاز الذي يتم تخزين مفتاح Chipset عليه ، والذي يتم تشفيره في تخزين SKS خاص (تخزين المفتاح الآمن). لكن هذا المفتاح ليس فريدًا للمنصة ، ولكنه مفتاح للجيل بأكمله من شرائح Intel. وبما أن الخطأ الذي تم العثور عليه في ROM يسمح لك باعتراض تنفيذ التعليمات البرمجية حتى قفل آلية إنشاء مفتاح الأجهزة في SKS ، ولا يمكن إصلاح الخطأ في ROM نفسه ، نعتقد أن هذه ليست سوى مسألة وقت - عندما يتم استخراج هذا المفتاح. ثم تأتي الفوضى الكاملة: سيتم تزوير تعريف الأجهزة ، وسيتم استخراج المحتوى الرقمي ، وسيتم فك تشفير المعلومات المشفرة من الوسائط الدائمة.
لذا ، وجد خبراء التقنيات الإيجابية خطأً في ذاكرة القراءة فقط Intel CSME في جميع شرائح Intel التي تم إصدارها حاليًا و SoC باستثناء Ice Point (الجيل العاشر من المعالجات). يسمح لك هذا الخطأ باستخراج مفتاح مجموعة الشرائح ، بالإضافة إلى معالجة جزء من مفتاح الجهاز وعملية تكوينه ، مع عدم السماح ، في الوقت الحالي ، بالحصول مباشرة على مكونات الأجهزة (السلكية في SKS). علاوة على ذلك ، يسمح لك هذا الخطأ في ROM بتنظيم تنفيذ التعليمات البرمجية التعسفية عند مستوى الامتياز الصفري لـ Intel CSME.

بمزيد من التفصيل ، سنصف التفاصيل الفنية في ورقة بيضاء كاملة مخصصة لهذا الخطأ ، والتي نخطط لنشرها بعد ذلك بقليل. وتجدر الإشارة إلى أنه بعد اتصال المتخصصين لدينا بشركة Intel PSIRT لتقديم تقرير حول هذا الخطأ ، أبلغت شركة Intel أن الخطأ كان معروفًا بالفعل ( CVE-2019-0090) تدرك Intel أنه من المستحيل إصلاح خطأ في ROM في المعدات التي تم إصدارها بالفعل ، وبالتالي فهي ببساطة تمنع جميع الطرق الممكنة لتشغيلها. يعمل تصحيح CVE-2019-0090 على تصحيح واحد فقط من نواقل الهجوم المحتملة - من خلال محور المستشعر المدمج (مركز المستشعرات المتكامل ، ISH). نعتقد أن هناك العديد من الطرق المحتملة لاستغلال هذه الثغرة الأمنية في ROM. قد يتطلب بعضها الوصول المحلي ، وبعضها المادي. لفتح حجاب السرية قليلاً ، دعنا نقول بضع كلمات عن الثغرة نفسها:

  1. , boot ROM: IOMMU MISA (Minute IA System Agent), SRAM ( ) Intel CSME DMA-, . , , .
  2. Intel CSME boot ROM (page directory), IOMMU. , , SRAM DMA- (DMA CSME, ) SRAM Intel CSME.
  3. تتم إعادة تعيين معلمات MISA IOMMU عند تنفيذ إعادة الضبط لـ Intel CSME ، والتي تبدأ بعد إعادة التعيين التنفيذ مرة أخرى من التمهيد ROM.

وبالتالي ، يمكن لأي جهاز نظام أساسي يمكنه إجراء معاملات DMA في الذاكرة الثابتة Intel CSME وفي نفس الوقت إعادة تشغيل Intel CSME (أو مجرد انتظار حتى يستيقظ Intel CSME) يمكنه تعديل جداول النظام لصفحات Intel CSME وبالتالي تنفيذ اعتراض.

نشرها مارك إيرمولوف ، كبير المتخصصين في تقنيات أنظمة التشغيل والأجهزة ، التقنيات الإيجابية.

All Articles