V systéme Systemd bola objavená nová chyba zabezpečenia

systemd

Zraniteľnosť bola nájdená v systéme systemd, ktorý je už popísaný v (CVE-2019 6454,), čo umožňuje spôsobiť blokovanie procesu inicializácie riadenia (PID1) pri odosielaní špeciálne vytvorenej správy neprivilegovanému používateľovi cez D-Bus.

undefined Vývojári Red Hat tiež nevylučujú možnosť použitia tejto chyby zabezpečenia na organizáciu vykonávania kódu s oprávneniami root., ale konečná možnosť takéhoto útoku ešte nebola stanovená.

O spoločnosti systemd

Pre tých, ktorí nepoznajú Systemd To ti mozem povedat toto je inicializačný systém a manažér služieb linuxu ktorá obsahuje funkcie, ako je spustenie démona na požiadanie, údržba automatického pripojenia a pripojenia, podpora snímok a sledovanie procesov pomocou riadiacich skupín Linux.

systemd poskytuje démona registra a ďalšie nástroje a pomôcky na pomoc s bežnými úlohami správy systému. Lennart Poettering a Kay Sievers napísali SystemD inšpirované programami macOS launchd a Upstart s cieľom vytvoriť moderný a dynamický systém.

Systemd poskytuje najmä agresívne možnosti paralelizácie a logiku riadenia služieb založenú na závislosti, čo umožňuje paralelné spustenie služieb a vedie k rýchlejším časom spustenia. Tieto dva aspekty boli prítomné v programe Upstart, ale vylepšené o systemd.

Systemd je predvolený bootovací systém pre hlavné distribúcie Linuxu, ale je spätne kompatibilný so spúšťacími skriptmi SysV.

SysVinit je inicializačný systém, ktorý predchádza systemd a na spustenie služby používa zjednodušený prístup. Systemd nielenže riadi inicializáciu systému, ale poskytuje aj alternatívy k iným známym pomocným programom, ako sú cron a syslog.

O novej zraniteľnosti systému

Manipuláciou s veľkosťou správy odosielanej cez D-Bus, útočník môže posunúť ukazovateľ za hranice pamäte vyhradenej pre zásobník, obchádza ochranu „ochrannej stránky zásobníka“, ktorá je založená na zámene stránky pamäte na okraji, ktorá volá výnimku (chyba stránky).

Úspešný útok je demonštrovaný na Ubuntu 18.10 s systemd 239 a na CentOS 7.6 s systemd 219.

Ako riešenie môžete použiť kompiláciu v GCC s voľbou „-fstack-clash-protection“, ktorá sa štandardne používa vo Fedore 28 a 29.

Je potrebné poznamenať, že v roku 2014 autor knižnice systému MUSL poukázal medzi hlavnými architektonickými problémami systému na nadmernú infláciu obslužného programu PID1 a spochybnil uskutočniteľnosť implementácie API ovládača úrovne PID1 pre Link with the Bus, pretože je to vážny vektor pre útoky a môže nepriaznivo ovplyvniť spoľahlivosť celého systému

Tvrdí to bezpečnostný výskumník, ktorý odhalila zraniteľnosť, zmena ukazovateľa zásobníka je možná iba pre nevyužité stránky pamäte (nepriradené), ktoré neumožňuje organizovať vykonávanie kódu v kontexte procesu PID1, ale umožňuje útočníkovi iniciovať zámok PID1 s následným prechodom linuxového jadra do stavu „paniky“ (v prípade PID radiča) 1 zlyhanie, zablokuje sa celý systém).

V systemd je nainštalovaný obslužný program signálu, ktorý sa snaží zachytiť chyby procesu PID1 (porucha segmentácie) a spustí shell na zotavenie.

Ale keďže sa počas útoku uskutoční volanie na neduplikované (nepridelené) stránky pamäte, jadro nemôže volať tento obslužný program signálu a iba ukončí proces pomocou PID 1, čo zase Nie je možné pokračovať v práci a prejsť na „panický“ stav, takže je potrebný reštart systému.

Problém už existuje

Ako každý už popísaný a nahlásený bezpečnostný problém, jeho zverejnenie nemožno vykonať, kým nebude problém vyriešený a aktualizácie opráv zraniteľnosti pre SUSE / openSUSE, Fedora už boli vydané, tiež pre Ubuntu a čiastočne pre Debian (Iba Debian Stretch).
Aj keď problém zostáva v RHEL neopravený.