A Linux 5.4-es kernel javításokat kapott a rendszermag belső részeinek gyökér hozzáférésének korlátozására

Linus Torvalds elfogadott A Linux 5.4-es kernel közelgő kiadásában egy javításkészlet található "zárlatot”, javasolt David Howells (Red Hat) és Matthew Garrett (Matthew garrett, a Google-nál működik), hogy korlátozza a root felhasználók hozzáférését a kernelhez. A zárolással kapcsolatos funkciók egy opcionálisan betöltött LSM modulban találhatók (Linux biztonsági modul), amely gátat helyez az UID 0 és a kernel közé, korlátozva bizonyos alacsony szintű funkciókat.

Ha egy támadó root jogokkal hajtja végre a kódot, akkor végrehajthatja a kódját a kernel szintjén, például úgy, hogy lecseréli a kernelt a kexec használatával, vagy a /dev/kmem fájl olvasási/írási memóriájával. Az ilyen tevékenység legnyilvánvalóbb következménye lehet kerülőút UEFI Secure Boot vagy kernel szinten tárolt érzékeny adatok lekérése.

Kezdetben a gyökérkorlátozási funkciókat az ellenőrzött rendszerindítás védelmének megerősítésével összefüggésben fejlesztették ki, és a disztribúciók már jó ideje harmadik féltől származó javításokat használnak az UEFI Secure Boot megkerülésének blokkolására. Ugyanakkor az ilyen korlátozások nem szerepeltek a kernel fő összetételében, mivel nézeteltérések végrehajtásukban és a meglévő rendszerek megzavarásától való félelemben. A „lockdown” modul elnyelte a disztribúciókban már használt foltokat, amelyeket újraterveztek egy külön alrendszer formájában, amely nem volt kötve az UEFI Secure Boothoz.

A zárolási mód korlátozza a hozzáférést a /dev/mem, /dev/kmem, /dev/port, /proc/kcore, debugfs, kprobes hibakeresési mód, mmiotrace, tracefs, BPF, PCMCIA CIS (Card Information Structure), egyes ACPI interfészekhez és CPU-hoz Az MSR-regiszterek, a kexec_file és a kexec_load hívások blokkolva vannak, az alvó üzemmód tiltva, a DMA-használat PCI-eszközökhöz korlátozott, az ACPI-kód importálása EFI-változókból tilos,
Az I/O portokkal végzett manipuláció nem megengedett, beleértve a soros port megszakítási számának és I/O portjának megváltoztatását.

Alapértelmezés szerint a lockdown modul nem aktív, akkor épül fel, ha a SECURITY_LOCKDOWN_LSM opciót a kconfig-ban adják meg, és a kernel "lockdown=" paraméterével, a "/sys/kernel/security/lockdown" vezérlőfájllal vagy az összeállítási beállításokkal aktiválják. LOCK_DOWN_KERNEL_FORCE_*, amely felveheti az "integritás" és a "bizalmasság" értékeit. Az első esetben blokkolják azokat a funkciókat, amelyek lehetővé teszik a futó kernel felhasználói területről történő módosítását, a második esetben pedig azok a funkciók, amelyekkel érzékeny információkat lehet kinyerni a kernelből.

Fontos megjegyezni, hogy a zárolás csak korlátozza a rendszermaghoz való normál hozzáférést, de nem véd a sebezhetőségek kihasználása miatti módosításoktól. A futó kernel változásainak blokkolása, amikor az Openwall projekt exploitokat használ fejlődik külön modul LKRG (Linux Kernel Runtime Guard).

Forrás: opennet.ru

Hozzászólás