
إثبات المفهوم لمحرك إدارة إنتل عبر JTAG
جميع المعلومات مقدمة للأغراض التعليمية فقط. اتبع هذه التعليمات على مسؤوليتك الخاصة. لا يتحمل المؤلفون ولا جهة عملهم أي مسؤولية عن أي ضرر مباشر أو تبعي أو خسارة تنشأ عن أي شخص أو منظمة يتصرف أو يمتنع عن التصرف بناءً على المعلومات الواردة في هذه الصفحة.
مقدمة
البرمجيات المطلوبة
توليد الحمولة
توليد رمز الفتح
تحضير صورة SPI Flash
دمج الملفات في صورة البرنامج الثابت
تعطيل توقيع OEM
بناء صورة البرنامج الثابت
إقلاع المعالج الرئيسي
كتابة الصورة إلى SPI Flash
تحضير كبل تصحيح USB
ترقيع ملفات إعداد OpenIPC
فك تشفير ملفات إعداد OpenIPC
إضافة نواة LMT إلى الإعداد
ضبط متغير البيئة IPC_PATH
إجراء فحص أولي لتشغيل JTAG
عرض مسلك ME للمعالج
إيقاف الأنوية
تصحيح ME: بداية سريعة
قراءة ذاكرة عشوائية
قراءة ROM
لماذا TXE؟
قائمة المنصات المختبرة
المؤلفون
الترخيص
تسمح الثغرة INTEL-SA-00086 بتفعيل JTAG لنواة Intel Management Engine. قمنا بتطوير [JTAG PoC][8] الخاص بنا لمنصة Gigabyte Brix GP-BPCE-3350C. على الرغم من أننا نوصي الباحثين الطموحين باستخدام نفس المنصة، إلا أن منصات الشركات المصنعة الأخرى المزودة بمجموعة شرائح Intel Apollo Lake يجب أن تدعم إثبات المفهوم أيضًا (لإصدار TXE 3.0.1.1107).
تتضمن الثغرة INTEL-SA-00086 تجاوز سعة المخزن المؤقت عند معالجة ملف مخزّن على MFS ([نظام ملفات ME الداخلي][6]). المسار الكامل للملف هو /home/bup/ct. ستحتاج إلى دمجه في برنامج ME الثابت باستخدام Intel Flash Image Tool (FIT)، وهي إحدى أدوات إنتل النظامية المقدمة من إنتل إلى الشركات المصنعة للأجهزة القائمة على مجموعات شرائح Intel PCH. فيما يلي بنية الدليل الجذر لحزمة أدوات إنتل النظامية:

أدوات Intel ME (TXE, SPS) النظامية غير مخصصة للمستخدمين النهائيين — لذلك لا يمكنك العثور عليها على موقع إنتل الرسمي. ومع ذلك، تنشر بعض الشركات المصنعة هذه الأدوات كجزء من تحديثات البرمجيات إلى جانب برامج التشغيل. لذا، لدمج إثبات المفهوم الخاص بنا، ستحتاج إلى Intel TXE System Tools الإصدار 3.x، والذي يمكن العثور عليه عبر الإنترنت.
تحتاج إلى تثبيت Intel System Studio، ويمكن تنزيل نسخة تجريبية منه من موقع إنتل. في تجاربنا، استخدمنا Intel System Studio 2018.
يستهدف إثبات المفهوم برنامج Intel TXE الثابت الإصدار 3.0.1.1107. تحتوي صورة SPI Flash الخاصة بـ Gigabyte GB-BPCE-3350C الإصدار F5 على إصدار البرنامج الثابت المطلوب.
جميع نصوصنا مكتوبة بلغة Python. نوصي باستخدام Python 2.7 كما تتطلب النصوص حزمة pycrypto. لتثبيت pycrypto، نفّذ الأمر التالي:
pip install pycrypto
هذه الأداة ضرورية فقط إذا كنت بحاجة إلى إقلاع المعالج (CPU).
البنية التحتية لواجهة المستخدم البشرية EFI (HII) هي آلية خاصة لإنشاء واجهة مستخدم في UEFI، بالإضافة إلى معالجة وإدارة مدخلات المستخدم. يحدد EFI HII القيم الافتراضية لجميع الخيارات، بما فيها المخفية. بمجرد العثور على الخيار المتعلق بـ DCI، يمكن تفعيله للإعداد الافتراضي، ويمكن تمكين DCI عبر استعادة إعدادات المصنع للـ BIOS. لإقلاع المعالج الرئيسي، ستحتاج إلى AMI BIOS Configuration Program الإصدار 5.xx، والذي يمكن العثور عليه أيضًا عبر الإنترنت.
شغّل السكربت me_exp_bxtp.py:
me_exp_bxtp.py -f <file_name>
يقوم السكربت بتوليد البيانات اللازمة وتصديرها إلى الملف المحدد (حدد إما مسار الملف الكامل أو، داخل الدليل الحالي، اسمًا ببساطة، ct.bin افتراضيًا). سيُستخدم هذا الملف لاحقًا بواسطة FIT.
شغّل السكربت me_utok_bxtp.py:
me_utok_bxtp.py -f <file_name>
يقوم السكربت بتوليد البيانات اللازمة وتصديرها إلى الملف المحدد (حدد إما مسار الملف الكامل أو، داخل الدليل الحالي، اسمًا ببساطة، utok.bin افتراضيًا). سيُستخدم هذا الملف لاحقًا بواسطة FIT.
تخطَّ هذه الخطوة إذا لم تكن بحاجة إلى إقلاع المعالج (CPU).
لتفعيل خيار DCI Enable، شغّل أداة AMIBCP واستخدمها لفتح صورة البرنامج الثابت SPI المرفقة مع منصتك. بالنسبة إلى Gigabyte Brix GP-BPCE-3350C، افتح الملف الذي تم تنزيله من رابط Gigabyte المشار إليه أعلاه (مسار ملف الصورة في الأرشيف: F5/image.bin).

الآن نحتاج إلى تمكين خيار HDCIEN في تبويب Setup Configuration.
لدمج الملفين ct.bin و utok.bin، شغّل أداة FIT (fit.exe) واستخدمها لفتح صورة البرنامج الثابت SPI.

إذا كنت تستخدم منصة أجهزة أخرى ولا تملك وصولًا إلى TXE 3.0.1.1107، يمكنك تنزيل صورة SPI Flash الخاصة بـ Gigabyte GB-BPCE-3350C الإصدار F5 واستخراج قسم TXE عبر FIT. يستخرج FIT أقسامًا مختلفة من صورة SPI الكلية (وصف SPI، برنامج UEFI/BIOS الثابت، برنامج Intel ME الثابت، ورمز الفتح Unlock Token) عند فتح الصورة، ويحفظها في المجلد *"image_name"/Decomp *.

لذا يمكنك العثور على الملف الذي يحتوي برنامج Intel TXE الثابت المطلوب في المسار /Decomp/TXE Region.bin
بعد ذلك، في FIT، افتح صورة SPI الخاصة بمنصتك المحددة واستبدل الملف الذي يحتوي برنامج Intel TXE الثابت بالإصدار الذي حصلت عليه من صورة GB Brix 3350c ("Intel(R) TXE Binary File" في تبويب Flash Layout):

الآن نحتاج إلى تحديد الملفات التي ولّدناها لـ /home/bup/ct و Unlock Token في FIT. في تبويب Debug في FIT، يمكنك تحديد Trace Hub Binary وUnlock Token لدمجهما في البرنامج الثابت. يجب أن تكون هذه هي الملفات التي ولّدناها بالفعل.

ببساطة قم بإزالة حقل OEM Public Key Hash من FIT:

قم ببناء الصورة عن طريق تحديد Build Image في قائمة Build.

تجاهل الرسالة المتعلقة بإعدادات BootGuard (انقر "Yes"):
