Леннарт Поттеринг предложи нова архитектура за верифицирано зареждане на Linux

Ленарт Потеринг (Lennart Poettering) публикува предложение за модернизация на процеса на зареждане на Linux дистрибуции, насочено към решаване на съществуващите проблеми и опростяване на организацията на пълно валидирана зареждане, потвърдило достоверността на ядрото и основната системна среда. Необходимите за прилагане на новата архитектура промени вече са включени в кода на systemd и засягат такива компоненти като systemd-stub, systemd-measure, systemd-cryptenroll, systemd-cryptsetup, systemd-pcrphase и systemd-creds.

Предложените промени се състоят в създаването на единен универсален образ UKI (Unified Kernel Image), който обединява образа на ядрото на Linux, обработчик за зареждане на ядрото от UEFI (UEFI boot stub) и зареждана в памет системна среда initrd, използвана за първоначална инициализация на етапа преди монтирането на кореновата файлова система. Вместо образа на RAM-диска initrd в UKI може да бъде опакована и цялата система, което позволява създаването на напълно валидирани системни среди, зареждани в оперативната памет. UKI образът е оформен под формата на изпълним файл в PE формат, който може да бъде зареден не само с традиционни зареждачи, а и директно призован от UEFI фърмуера.

Възможността за призив от UEFI позволява използването на проверка на целостта и достоверността по цифрова подпись, обхващаща не само ядрото, но и съдържанието на initrd. В същото време, поддръжката на призива от традиционни зареждачи позволява запазването на такива функции като доставка на няколко версии на ядрото и автоматичен откат на работещото ядро в случай на проблеми с новото ядро след инсталирането на обновление.

В момента в повечето Linux дистрибуции в процеса на инициализация се използва верига "прошивка → заверена цифрово подписана Microsoft shim-прослойка → заверен цифрово подписан дистрибуционен зареждач GRUB → заверено цифрово подписано дистрибуционно ядро Linux → незаверено окружение initrd → коренова файлова система". Липсата на верификация на initrd в традиционните дистрибуции създава проблеми със сигурността, тъй като сред другото в това окружение се извършва извличането на ключове за декриптиране на кореновата файлова система.

Верификация на initrd образ не се поддържа, тъй като този файл се генерира локално на системата на потребителя и не може да бъде заверен с цифров подпис от дистрибуцията, което значително усложнява организацията на проверката при използване на режима SecureBoot (за да завери initrd, потребителят трябва да генерира собствени ключове и да ги зареди в UEFI фърмуера). Освен това, съществуващата организация на стартиране не позволява използването на информация от регистрите TPM PCR (Platform Configuration Register) за контрол на целостта на компонентите в пространството на потребителя, освен shim, grub и ядрото. Споменават се и проблеми, свързани с усложняването на актуализацията на зареждача и липсата на възможност за ограничаване на достъпа до ключовете в TPM за стари версии на ОС, станали неактуални след инсталирането на актуализации.

Основни цели на внедряване на нова архитектура на зареждане:

  • Осигуряване на напълно верифициран процес на зареждане, обхващащ всеки етап от фърмуера до пространството на потребителя и удостоверяващ достоверността и целостта на зарежданите компоненти.
  • Свързване на контролируеми ресурси с регистри TPM PCR, разделени по собственици.
  • Възможност за предварително изчисление на стойностите на PCR на базата на използваните по време на зареждане ядро, initrd, конфигурация и локален идентификатор на системата.
  • Защита от Rollback-атаки, свързани с връщане към предишна уязвима версия на системата.
  • Улесняване и повишаване на надеждността на актуализациите.
  • Поддръжка на актуализации на ОС, които не изискват повторно прилагане или локална подготовка на ресурси, защитени от TPM.
  • Готовност на системата за извършване на дистанционно удостоверяване за потвърждаване на коректността на зарежданата ОС и настройките.
  • Възможност за прикрепяне на конфиденциални данни към определени етапи на зареждане, например, извличане на ключове за шифроване за кореновата файлова система от TPM.
  • Осигуряване на безопасен, автоматичен и работещ без участието на потребителя процес на отключване на ключове за декодиране на диска с кореновия дял.
  • Използване на чипове, поддържащи спецификация TPM 2.0, с възможност за връщане към системи без TPM.

Източник: opennet.ru

Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри 🔥 Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри | ProHoster