V systému Systemd byla objevena nová chyba zabezpečení

systemd

Byla nalezena chyba zabezpečení v systemd, která je již popsána v (CVE-2019-6454), co umožňuje blokovat proces inicializace řízení (PID1) při odesílání speciálně vytvořené zprávy neprivilegovanému uživateli přes D-Bus.

L Vývojáři Red Hat také nevylučují možnost použití této chyby zabezpečení k organizaci spuštění kódu s oprávněními uživatele root., ale konečná možnost takového útoku dosud nebyla stanovena.

O společnosti systemd

Pro ty, kteří neznají Systemd To ti můžu říct toto je linuxový inicializační systém a správce služeb který zahrnuje funkce, jako je spuštění démona na vyžádání, údržba automatického připojení a připojení, podpora snímků a sledování procesů pomocí řídicích skupin Linux.

Systemd poskytuje démona registru a další nástroje a nástroje, které vám pomohou s běžnými úkoly správy systému. Lennart Poettering a Kay Sievers napsali SystemD, inspirovaný macOS launchd a Upstart, s cílem vytvořit moderní a dynamický systém.

Systemd poskytuje zejména agresivní možnosti paralelizace a logiku řízení služeb založenou na závislostech, což umožňuje paralelní spuštění služeb a vede k rychlejším časům spuštění. Tyto dva aspekty byly přítomny v Upstart, ale vylepšeny systemd.

Systemd je výchozí zaváděcí systém pro hlavní distribuce Linuxu, ale je zpětně kompatibilní se spouštěcími skripty SysV.

SysVinit je inicializační systém, který předchází systemd a ke spuštění služby používá zjednodušený přístup. Systemd nejenže spravuje inicializaci systému, ale také poskytuje alternativy k dalším známým nástrojům, jako jsou cron a syslog.

O nové zranitelnosti systému

Manipulací s velikostí zprávy odeslané prostřednictvím D-Bus, útočník může pohybovat ukazatelem nad limity paměti přidělené zásobníku, obejde ochranu „strážné stránky zásobníku“, která je založena na nahrazení stránky paměti na okraji, která volá výjimku (chyba stránky).

Úspěšný útok je demonstrován na Ubuntu 18.10 s systemd 239 a na CentOS 7.6 s systemd 219.

Jako řešení lze použít kompilaci v GCC s volbou „-fstack-clash-protection“, která se standardně používá ve Fedoře 28 a 29.

Je třeba poznamenat, že v roce 2014 autor knihovny systému MUSL upozornil mezi hlavními architektonickými problémy systému na nadměrnou inflaci obslužného programu PID1 a zpochybnil proveditelnost implementace rozhraní PID1 kontroleru úrovně pro Link to the Bus, protože se jedná o vážný vektor pro útoky a může nepříznivě ovlivnit spolehlivost celého systému

Podle výzkumníka v oblasti bezpečnosti, který odhalil zranitelnost, změna ukazatele zásobníku je možná pouze pro nepoužívané stránky paměti (nepřiřazeno), které neumožňuje organizovat provádění kódu v kontextu procesu PID1, ale umožňuje útočníkovi zahájit zámek PID1 s následným přechodem linuxového jádra do stavu paniky (v případě selhání PID regulátoru 1, celý systém zablokuje).

V systemd je nainstalován obslužný program signálu, který se pokouší zachytit chyby procesu PID1 (porucha segmentace) a spustí shell pro zotavení.

Ale protože jsou během útoku vyvolány stránky duplikované (nepřidělené) paměti, jádro nemůže zavolat tuto obslužnou rutinu signálu a pouze ukončí proces pomocí PID 1, což zase dělá Je nemožné pokračovat v práci a přejít do stavu „paniky“, který vyžaduje restart systému.

Problém již existuje

Jako každý již popsaný a nahlášený bezpečnostní problém nelze jeho zveřejnění provést, dokud nebude problém vyřešen a aktualizace oprav zranitelnosti pro SUSE / openSUSE, Fedora již byly vydány, také pro Ubuntu a částečně pro Debian (Pouze Debian Stretch).
I když problém zůstává neopravený v RHEL.