النسخة الروسية من هذه المقالة.تتبع البرامج الثابتة للوحات الأم للكمبيوتر الشخصي مواصفات
UEFI منذ عام 2010. في عام 2013 ، ظهرت تقنية جديدة تسمى Secure Boot ، تهدف إلى منع تثبيت مجموعات
الأقراص وتشغيلها. يمنع التمهيد الآمن تنفيذ تعليمات برمجية غير موقعة أو غير موثوق بها (برامج .efi ومحمل إقلاع نظام التشغيل والبرامج الثابتة الإضافية للأجهزة مثل بطاقة الفيديو ومحول الشبكة OPROMs).
يمكن تعطيل التمهيد الآمن على أي لوحة بيع بالتجزئة ، ولكن الشرط الإلزامي لتغيير حالته هو وجود مادي للمستخدم على الكمبيوتر. من الضروري إدخال إعدادات UEFI عند قيام الكمبيوتر بالتمهيد ، وعندها فقط يمكن تغيير إعدادات التمهيد الآمن.
تتضمن معظم اللوحات الرئيسية مفاتيح Microsoft فقط على أنها موثوقة ، مما يفرض على موردي البرامج القابلة للتمهيد مطالبة Microsoft بالتوقيع على محمل الإقلاع الخاص بهم. تتضمن هذه العملية إجراء تدقيق الكود ومبررًا للحاجة إلى توقيع ملفهم باستخدام مفتاح موثوق عالميًا إذا كانوا يريدون أن يعمل القرص أو USB في وضع التمهيد الآمن دون إضافة مفتاحهم على كل كمبيوتر يدويًا.
يجب على توزيعات Linux وبرامج Hypervisors وأقراص تمهيد مكافحة الفيروسات ومؤلفي برامج استعادة الكمبيوتر التوقيع على محمل الإقلاع في Microsoft.
كنت أرغب في إنشاء محرك أقراص فلاش USB قابل للتشغيل مع العديد من برامج استرداد الكمبيوتر التي يمكن تشغيلها دون تعطيل التمهيد الآمن. دعونا نرى كيف يمكن تحقيق ذلك.
وقع محمل الإقلاع من محمل الإقلاع
لذلك ، للتمهيد Linux مع تمكين Secure Boot ، فإنك تحتاج إلى أداة تحميل bootloaded. لا تسمح Microsoft بتوقيع البرامج المرخصة بموجب GPLv3 بسبب قاعدة ترخيص تقييد
tivoization ، وبالتالي
لا يمكن توقيع GRUB .
لمعالجة هذه المشكلة ، أصدرت Linux Foundation
PreLoader و Matthew Garrett
صنعتا shim - محمل الإقلاع الصغير الذي يتحقق من توقيع أو تجزئة ملف واحد وتنفيذه. لا يستخدم PreLoader و shim مخزن شهادات
UEFI db ، ولكن يحتوي على قاعدة بيانات للتجزئة المسموح بها (PreLoader) أو الشهادات (shim) داخل الملف القابل للتنفيذ.
يسمح لك كلا البرنامجين ، بالإضافة إلى تنفيذ الملفات الموثوقة تلقائيًا ، بتشغيل أي برامج غير موثوق بها مسبقًا في وضع التمهيد الآمن ، ولكنهما يتطلبان وجود المستخدم الفعلي. عند تنفيذها لأول مرة ، تحتاج إلى تحديد شهادة لإضافتها أو الملف المراد تجزئته في الواجهة الرسومية ، وبعد ذلك تتم إضافة البيانات إلى متغير NVRAM خاص على اللوحة الأم والتي لا يمكن الوصول إليها من نظام التشغيل المحمّل . تصبح الملفات موثوقة فقط لهذه اللوادر المسبقة ، وليس لـ Secure Boot بشكل عام ، ولا يزال يتعذر تحميلها بدون PreLoader أو shim.
البرنامج غير موثوق التمهيد الأول مع الرقائق.تستخدم جميع توزيعات Linux الشائعة الحديثة shim بسبب دعم الشهادات ، مما يجعل من السهل تقديم تحديثات لمحمل الإقلاع الرئيسي دون الحاجة إلى تفاعل المستخدم. بشكل عام ، يتم استخدام shim لتشغيل GRUB2 - محمل الإقلاع الأكثر شعبية في Linux.
GRUB2
لمنع إساءة استخدام أداة تحميل التشغيل الموقّعة بنوايا خبيثة ، أنشأ Red Hat تصحيحات لـ GRUB2 تحظر الوظائف "الخطيرة" عند تمكين Secure Boot: insmod / rmmod ، appleloader ، linux (يحل محله linuxefi) ، و multiboot ، و xnu ، و memrw ، و iorw. الوحدة النمطية لـ chainloader ، التي تقوم بتحميل ملفات .efi التعسفية ، قد قدمت محمل .efi (PE) الداخلي الخاص بها دون استخدام وظائف UEFI LoadImage / StartImage ، وكذلك رمز التحقق من صحة الملفات المحملة عبر shim ، من أجل الحفاظ على القدرة على تحميل الملفات الموثوقة من قبل shim ولكن غير موثوق بها من حيث UEFI. ليس من الواضح تمامًا سبب تفضيل هذه الطريقة - تتيح UEFI إمكانية إعادة تعريف (التحقق) لوظائف التحقق من UEFI ، وهذه هي الطريقة التي يعمل بها PreLoader ، والواقع أن
ميزة shim موجودة ولكن يتم تعطيلها افتراضيًا.
على أي حال ، فإن استخدام GRUB الموقع من بعض توزيعات Linux لا يناسب احتياجاتنا. هناك طريقتان لإنشاء محرك أقراص محمول عام قابل للتمهيد لا يتطلب إضافة مفاتيح كل ملف قابل للتنفيذ إلى الملفات الموثوقة:
- استخدام GRUB المعدلة مع محمل EFI داخلي ، بدون قيود توقيع رقمي أو قيود على الوحدة ؛
- استخدم برنامج التحميل المسبق المخصص (الثاني) الذي يقوم بربط وظائف تصحيح ملفات UEFI (EFI_SECURITY_ARCH_PROTOCOL.FileAuthenticationState، EFI_SECURITY2_ARCH_PROTOCOL.FileAuthentication)
الطريقة الثانية هي الأفضل حيث يمكن للبرامج المنفذة تحميل وبدء برنامج آخر ، على سبيل المثال ، يمكن لـ UEFI shell تنفيذ أي برنامج. لا توفر الطريقة الأولى ذلك ، مما يسمح لـ GRUB فقط بتنفيذ الملفات التعسفية. دعونا
نقوم بتعديل PreLoader عن طريق إزالة جميع الميزات غير الضرورية ورمز التحقق من التصحيح للسماح بكل شيء.
بنية القرص هي كما يلي:
______ ______ ______ ╱│ │ ╱│ │ ╱│ │ /_│ │ → /_│ │ → /_│ │ │ │ → │ │ → │ │ │ EFI │ → │ EFI │ → │ EFI │ │_______│ │_______│ │_______│ BOOTX64.efi grubx64.efi grubx64_real.efi (shim) (FileAuthentication (GRUB2) override) ↓↓↓ ↑ ↑ ______ ↑ ╱│ │ ║ /_│ │ ║ │ │ ═══════════╝ │ EFI │ │_______│ MokManager.efi (Key enrolling tool)
هذه هي الطريقة التي تم بها صنع
قرص Super UEFIinSecureBoot .
Super UEFIinSecureBoot Disk هي صورة قابلة للتمهيد مع محمل الإقلاع GRUB2 مصمم ليتم استخدامه كقاعدة لاسترداد محركات أقراص USB المحمولة.
الميزة الرئيسية: القرص يعمل بكامل طاقته مع تنشيط وضع التمهيد الآمن لـ UEFI. يمكنه تشغيل أي نظام تشغيل أو ملف .efi ، حتى مع توقيع غير موثوق أو غير صالح أو مفقود.
يمكن استخدام القرص لتشغيل توزيعات Live Linux المختلفة ، بيئة WinPE ، تمهيد الشبكة ، دون تعطيل وضع Secure Boot في إعدادات UEFI ، والتي قد تكون مناسبة لأداء صيانة أجهزة الكمبيوتر الشخصية لشخص آخر وأجهزة الكمبيوتر المحمولة للشركات ، على سبيل المثال ، مع إعدادات UEFI كلمة مرور
تحتوي الصورة على 3 مكونات: أداة تحميل محمولة من Fedora (موقعة باستخدام مفتاح Microsoft المثبت مسبقًا في معظم اللوحات الرئيسية وأجهزة الكمبيوتر المحمولة) ، وتعديل Linux Foundation PreLoader (تعطيل التحقق من صحة التوقيع الرقمي للملفات المنفذة) ، ومحمل GRUB2 المعدل.
عند التمهيد الأول ، من الضروري تحديد الشهادة باستخدام MokManager (يبدأ تلقائيًا) ، وبعد ذلك سيعمل كل شيء تمامًا مثل تعطيل التمهيد الآمن - يقوم GRUB بتحميل أي ملف .efi غير موقّع أو نواة Linux ، يمكن لبرامج EFI المنفذة تحميل أي ملفات تنفيذية أخرى غير موثوق بها أو السائقين.
لإظهار وظائف القرص ، تحتوي الصورة على Super Grub Disk (مجموعة من البرامج النصية للبحث عن نظام التشغيل وتنفيذه حتى لو تم كسر أداة تحميل التشغيل) ، GRUB Live ISO Multiboot (مجموعة من البرامج النصية لتحميل Linux Linux distros مباشرة من ملف ISO) ، One File Linux (النواة و initrd في ملف واحد ، لاستعادة النظام) والعديد من أدوات UEFI المساعدة.
القرص متوافق أيضًا مع UEFI بدون Secure Boot ومع أجهزة الكمبيوتر الأقدم مع BIOS.
محمل الإقلاع الموقّع
كنت أتساءل هل من الممكن تجاوز تسجيل مفتاح التمهيد الأول من خلال الرقائق. هل يمكن أن يكون هناك بعض أداة تحميل التشغيل الموقعة التي تسمح لك بعمل أكثر مما توقعه المؤلفون؟
كما اتضح - هناك مثل هذه رافعات. يتم استخدام واحد منهم في
قرص تمهيد برنامج مكافحة الفيروسات
Kaspersky Rescue Disk 18 . يتيح لك GRUB من القرص تحميل الوحدات (أمر insmod) ، والوحدة النمطية في GRUB هي مجرد رمز قابل للتنفيذ. المحمل المسبق على القرص مخصص.
بالطبع ، لا يمكنك فقط استخدام GRUB من القرص لتحميل رمز غير موثوق به. من الضروري تعديل وحدة تحميل سلسلة بحيث لا تستخدم GRUB دالات UEFI LoadImage / StartImage ، ولكن بدلاً من ذلك ، يقوم ملف .efi بالتحميل الذاتي في الذاكرة ، ويقوم بإجراء النقل ، ويعثر على نقطة الإدخال وينتقل إليها. لحسن الحظ ، توجد جميع الكودات الضرورية تقريبًا في
مستودع Red Hat GRUB Secure Boot ، المشكلة الوحيدة - محلل رأس
PE مفقود. يحصل GRUB على تحليل رأس من shim ، استجابةً لاستدعاء دالة عبر بروتوكول خاص. يمكن إصلاح ذلك بسهولة عن طريق نقل الكود المناسب من shim أو PreLoader إلى GRUB.
هذه هي الطريقة التي تم بها إنشاء قرص
صامت UEFIinSecureBoot. تبدو بنية القرص النهائية كما يلي:
______ ______ ______ ╱│ │ ╱│ │ ╱│ │ /_│ │ /_│ │ → /_│ │ │ │ │ │ → │ │ │ EFI │ │ EFI │ → │ EFI │ │_______│ │_______│ │_______│ BOOTX64.efi grubx64.efi grubx64_real.efi (Kaspersky (FileAuthentication (GRUB2) Loader) override) ↓↓↓ ↑ ↑ ______ ↑ ╱│ │ ║ /_│ │ ║ │ │ ═══════════╝ │ EFI │ │_______│ fde_ld.efi + custom chain.mod (Kaspersky GRUB2)
النهاية
لقد أثبتنا في هذه المقالة وجود عدد غير كافٍ من أجهزة تحميل التشغيل الموثوقة الموقعة بواسطة مفتاح Microsoft ، مما يتيح تشغيل التعليمات البرمجية غير الموثوق بها في وضع التشغيل الآمن.
باستخدام ملفات Kaspersky Rescue Disk الموقعة ، حققنا التمهيد الصامت لأي ملفات .efi غير موثوق بها مع تمكين التمهيد الآمن ، دون الحاجة إلى إضافة شهادة إلى UEFI db أو shim MOK.
يمكن استخدام هذه الملفات من أجل الأعمال الصالحة (للتشغيل من محركات أقراص USB المحمولة) وللأشياء الشريرة (لتثبيت مجموعات التمهيد دون موافقة مالك الكمبيوتر).
أفترض أن شهادة توقيع محمل الإقلاع من Kaspersky لن تدوم طويلًا ، وستتم إضافتها إلى
قائمة إبطال شهادات UEFI العالمية ، والتي سيتم تثبيتها على أجهزة الكمبيوتر التي تعمل بنظام Windows 10 عبر Windows Update ، مع كسر Kaspersky Rescue Disk 18 و Silent UEFIinSecureBoot Disk. دعونا نرى كيف سيحدث هذا قريبا.
تنزيل Super UEFIinSecureBoot Disk:
https://github.com/ValdikSS/Super-UEFIinSecureBoot-Diskتنزيل Silent UEFIinSecureBoot Disk (
شبكة مركز ZeroNet
Git ):
http://127.0.0.1:43110/1KVD7PxZVke1iq4DKb4LNwuiHS4UzEAdAv/حول ZeroNetZeroNet هو نظام قوي للغاية لمواقع وخدمات الويب الديناميكية الموزعة اللامركزية. يبدأ المستخدم تنزيل بيانات موقع الويب وبذرها عند زيارته ، وفقًا لمبدأ BitTorrent. ولكن على عكس الأنظمة الأخرى المماثلة ، تسمح ZeroNet بإنشاء مدونات كاملة تضم التعليقات والمنتديات واستضافات الفيديو ومواقع wiki والمحادثات والبريد الإلكتروني والبوابة.
تقوم ZeroNet بتقسيم بيانات موقع الويب من رمز موقع الويب: يتم تخزين البيانات في ملفات .json ودمجها في قواعد بيانات sqlite مع مخطط محدد ، مما يسمح بتنفيذ ميزات الانحناء الذهني: البحث المحلي في جميع مواقع الويب المفتوحة بمعنى ميلي ثانية ، كل موقع حقيقي وقت التحديث مثل دفق RSS.
يوفر ZeroNet نظام مصادقة قياسيًا يشبه دعم OAuth و NAT و Tor.
يعمل النظام بسرعة كبيرة ، وسهل الاستخدام ، ويحتوي على واجهة مستخدم حديثة مع ميزات صغيرة ولكنها مريحة مثل التبديل العالمي لليوم / النهار لجميع المواقع.
أعتقد أن ZeroNet يتم الاستخفاف به وتحميل الإصدار الصامت من القرص إلى ZeroNet Git فقط ، لجذب مستخدمين جدد.