Lennart Pottering egy új Linux ellenőrzött rendszerindítási architektúrát javasolt

Lennart Poettering közzétett egy javaslatot a Linux disztribúciók rendszerindítási folyamatának korszerűsítésére, amelynek célja a meglévő problémák megoldása és a teljes ellenőrzött rendszerindítás megszervezése, amely megerősíti a kernel és az alapul szolgáló rendszerkörnyezet megbízhatóságát. Az új architektúra megvalósításához szükséges változtatások már szerepelnek a systemd kódbázisban, és olyan összetevőket érintenek, mint a systemd-stub, systemd-measure, systemd-cryptenroll, systemd-cryptsetup, systemd-pcrphase és systemd-creds.

A javasolt változtatások egyetlen univerzális UKI (Unified Kernel Image) létrehozására irányulnak, amely egyesíti a Linux kernel képfájlt, a kernel UEFI-ből történő betöltésére szolgáló kezelőt (UEFI boot stub) és a memóriába betöltött initrd rendszerkörnyezetet. kezdeti inicializálás a gyökér FS csatlakoztatása előtti szakaszban. Az initrd RAM lemezkép helyett a teljes rendszer UKI-ba csomagolható, ami lehetővé teszi a RAM-ba betöltött, teljesen ellenőrzött rendszerkörnyezetek létrehozását. Az UKI képfájl PE formátumú végrehajtható fájlként készült, amely nem csak a hagyományos bootloaderekkel tölthető be, hanem közvetlenül is hívható az UEFI firmware-ből.

Az UEFI-ből történő hívás lehetősége lehetővé teszi a digitális aláírás integritás-ellenőrzését, amely nemcsak a kernelre, hanem az initrd tartalmára is kiterjed. Ugyanakkor a hagyományos rendszerbetöltők hívásainak támogatása lehetővé teszi az olyan szolgáltatások megtartását, mint a kernel több verziójának kézbesítése és az automatikus visszaállítás egy működő kernelhez, ha a frissítés telepítése után problémákat észlelnek az új kernellel.

Jelenleg a legtöbb Linux disztribúcióban az inicializálási folyamat a „firmware → digitálisan aláírt Microsoft alátétréteg → a disztribúció által digitálisan aláírt GRUB rendszerbetöltő → digitálisan aláírt Linux kernel → nem aláírt initrd környezet → gyökér FS” láncot használja. Az initrd ellenőrzés hiánya a hagyományos disztribúciókban biztonsági problémákat okoz, mivel többek között ebben a környezetben kerülnek lekérésre a gyökérfájlrendszer visszafejtéséhez szükséges kulcsok.

Az initrd képfájl ellenőrzése nem támogatott, mivel ez a fájl a felhasználó helyi rendszerén jön létre, és nem hitelesíthető a terjesztési készlet digitális aláírásával, ami nagymértékben megnehezíti az ellenőrzés megszervezését SecureBoot mód használatakor (az initrd ellenőrzéséhez a a felhasználónak létre kell hoznia saját kulcsait, és be kell töltenie az UEFI firmware-be). Ezenkívül a jelenlegi rendszerindítási szervezet nem teszi lehetővé a TPM PCR (Platform Configuration Register) regiszterekből származó információk felhasználását az alátét, grub és kernel kivételével a felhasználói terület összetevőinek integritásának ellenőrzésére. A meglévő problémák között említik még a rendszerbetöltő frissítésének bonyolultságát és azt, hogy nem lehet korlátozni a TPM-ben lévő kulcsokhoz való hozzáférést az operációs rendszer régebbi verzióinál, amelyek a frissítés telepítése után irrelevánssá váltak.

Az új betöltési architektúra bevezetésének fő céljai a következők:

  • Teljesen ellenőrzött rendszerindítási folyamat biztosítása, amely a firmware-től a felhasználói területig terjed, megerősítve a rendszerindítás alatt álló összetevők érvényességét és integritását.
  • Ellenőrzött erőforrások összekapcsolása TPM PCR-regiszterekkel, tulajdonos szerint elkülönítve.
  • Lehetőség a PCR értékek előzetes kiszámítására a rendszerindítás során használt kernel, initrd, konfiguráció és helyi rendszerazonosító alapján.
  • Védelem a rendszer egy korábbi sebezhető verziójára való visszaállítással kapcsolatos visszaállítási támadások ellen.
  • Egyszerűsítse és növelje a frissítések megbízhatóságát.
  • Olyan operációs rendszer-frissítések támogatása, amelyek nem igényelnek TPM-védett erőforrások újbóli alkalmazását vagy helyi kiépítését.
  • A rendszer készen áll a távoli hitelesítésre, amely megerősíti a betöltött operációs rendszer és a beállítások helyességét.
  • Érzékeny adatok csatolásának képessége bizonyos rendszerindítási szakaszokhoz, például a gyökérfájlrendszer titkosítási kulcsainak kinyerése a TPM-ből.
  • Biztonságos, automatikus és felhasználómentes folyamat biztosítása a kulcsok feloldásához a gyökérpartíciós meghajtók visszafejtéséhez.
  • A TPM 2.0 specifikációt támogató chipek használata, a TPM nélküli rendszerekre való visszaállítás lehetőségével.

Forrás: opennet.ru

Hozzászólás