přejít na obsah přejít na navigaci

Linux E X P R E S, Nepříjemná chyba v systemd

Nepříjemná chyba v systemd

Hrozba

Systémový démon systemd trpí nepříjemnou chybou, která umožňuje i běžnému uživateli vyvolat jeho zatuhnutí (které pak brání i čistému ukončení systému).


V systémovém démonu systemd je nepříjemná chyba, která umožňuje způsobit jeho zatuhnutí. K jejímu zneužití stačí jediný příkaz, může ho spustit i běžný, neprivilegovaný uživatel. Proces systemd (PID = 1) zůstane viset v systémovém volání pause a nelze tak nejen spouštět a zastavovat běžné démony (ani s nimi provádět jiné operace prostřednictvím systemd), ale například ani vyvolat čisté ukončení systému nebo jeho restart.

Chyba se do systemd dostala ve verzi 209, tedy před více než dvěma roky. Andrew Ayer, jenž o problému píše, si ohledně systemd nebere servítky – považuje jeho problémy za mnohem hlubší: „Systemd je vadný už v návrhu. Psaní bezchybného softwaru je extrémně obtížné. I dobří programátoři by do projektu o velikosti a složitosti systemd nevyhnutelně zanesli chyby. Ovšem dobří programátoři si uvědomují důležitost takového návrhu softwaru, který minimalizuje pravděpodobnost chyb nebo alespoň omezuje jejich dopady. Vývojáři systemd nic z toho nechápou, rozhodli se nacpat enormní množství nepotřebné složitosti do PID 1, který běží jako root a je napsán v paměťově nebezpečném jazyce.“

Nahoru

Příspěvky

Nepříjemná chyba v systemd
lzap 3. 10. 2016, 20:33:14
Odpovědět  Odkaz 
"Dobří vývojáři" zejména netweetují/neblogují o zero-day exploitech v click-bait článcích, to je nůž do zad sekuriťákům, kteří ten den zřejmě museli zůstat déle v práci, aby vše opatchovali (nejen v Red Hatu). A tito lidé nemají se systemd nic společného. Jak si všiml Kevin Fenzi, den před tím byl objeven vzdálený (!) exploit v ISC BINDu, neštěkl o tom ani pes a vše se v tichosti opravilo.

Jakkoli obecně lze souhlasit s přebujelostí kódu v Pid Eins, článek se v půlce zvrtne v typický hate text zabývající se networkd, resolverem a DHCP serverem. Autor by si měl uvědomit, že cílem těchto komponent není nahradit ISC služby, ale jsou určeny především pro kontejnerové prostředí, které je momentálně velmi aktuální a systemd tímto pomáhá připravit Linux na 21. století.

Quality assurance je pojem z komerční sféry, projekty typu Fedora mají testovací prostředky omezené - co se s stihne, to se stihne. Autor si ovšem měl především "otestovat" svůj exploit, který v původní verzi vůbec nefungoval. Ovšem to by se asi nevešel do jednoho "tweetu", že ano.

Ano, systemd není dokonalý, obsahuje chyby a ještě se jich hodně najde. Ale posouvá Linux zase o něco dál. Tyhlety výlevy moc nechápu.
Tomáš Crhonek Re: Nepříjemná chyba v systemd
Tomáš Crhonek 3. 10. 2016, 21:40:12
Odpovědět  Odkaz 
Zkoušel jsem to na aktuální verzi Debian Testing, systemd 231 a tam funguje původní verze (NOTIFY_SOCKET=/run/systemd/notify systemd-notify ""). I z diskuse pod daným článkem je patrné, že to někomu funguje takto a někomu jinému až ta verze s cyklem. Myslím ale, že to na věci nic nemění. (Kromě toho, že se ta delší verze už asi nevleze do twitteru.)

"Autor by si měl uvědomit, že cílem těchto komponent není nahradit ISC služby, ale jsou určeny především pro kontejnerové prostředí, které je momentálně velmi aktuální a systemd tímto pomáhá připravit Linux na 21. století."

A to znamená, že to má být méně bezpečné? Já systemd-resolved používám a přiznávám, že jsem byl zděšen tím, že by snad neměl být odolný proti útoku z roku 2008.
Re: Re: Nepříjemná chyba v systemd
lzap 3. 10. 2016, 22:23:43
Odpovědět  Odkaz 
Pokud nepotřebuješ LLMNR, tak je ti resolved k ničemu. Dnsmasq umí tak 100x víc věcí a je jistě stabilnější. Ve fedoře se už diskutovalo oddělení do samostatného balíku podobně jako u kontejnerových věcí, protože tam se v podstatě resolved ani nepoužívá (https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/message/MJQVNWG2NXP3PHBEXGRW2HDEIBZDIVHJ/) takže bych to zase neviděl tak fatálně. Je to prostě komponenta, která není hotová. Lidem leží v žaludku, že tam vůbec je, ale tak to holt v open-source chodí. Do šuplíku nikdo nic programovat nebude.
Tomáš Crhonek Re: Re: Re: Nepříjemná chyba v systemd
Tomáš Crhonek 3. 10. 2016, 22:39:13
Odpovědět  Odkaz 
Já to používám z vlastní vůle, jinak nasazuji bind jako lokální cachující resolver. Jak jsem psal už v nějakém článku, nemám rád duplicity, takže pokud už něco v systému je a vyhovuje, tak to použiji a neinstaluji nic dalšího. systemd-resolved mi dosud vyhovoval.

O tom ale ten komentář vůbec nebyl, ten byl o chybách v resolved. Přijde ti normální, že někdo v roce 2015-16 vytvoří software ohrozitelný chybou z roku 2008? Mě osobně to normální nepřijde.
Re: Re: Re: Re: Nepříjemná chyba v systemd
lzap 3. 10. 2016, 23:36:39
Odpovědět  Odkaz 
Tak to používáš špatně, chybu bych hledal ve špatné komunikaci upstreamu vůči uživatelům i distribucím o tom, k čemu vlastně ty programy mají sloužit. Systemd-resolved byl stvořen jako společník pro networkd, ten byl stvořen hlavně pro container sféru a embedded. Izolované (virtuální sítě, datová centra) a žádné kavárenské WiFi (**). Na lokální kešování je dnsmasq nebo jiný software, používáš kladivo a chceš šroubovák.

A vlastně je to dobře, zkoušíš nové věci, jsi early adopter. Ale pochop, že nikdo nebude bránit lidem, aby posílali patche na další featury jako bylo kešování, IPv6, DNSSEC (**). A ty se proboha ptáš, proč tam někdo přidal tu a tu napadnutelnost? Je to přece normální proces open source komunity - postupné zlepšování.

>Přijde ti normální, že někdo v roce 2015-16 vytvoří software ohrozitelný chybou z roku 2008?

Takhle ale systemd-resolved nevznikl (**). Ani zpočátku nešel používat tak, jako ho máš nakonfigurovaný ty. Někdo časem přijde a opraví to. Ale to není podstatné, je vidět že se zase chytáš každé věty, kterou jsem napsal, takže už jen stručně:

Normální mi zejména nepřijde, aby člověk využije 0day exploit ke zvyditelnění svých názorů.

Legenda:

(**) - lze vyčíst z gitu systemd
Tomáš Crhonek Re: Re: Re: Re: Re: Nepříjemná chyba v systemd
Tomáš Crhonek 4. 10. 2016, 09:07:47
Odpovědět  Odkaz 
"žádné kavárenské WiFi"

Huh? Proč mluvíš o wifi? Já to používám v kombinaci s nspawn, networkd. Jak jsem psal v článku z února, považuji je za dobré a užitečné nástroje a nspawn používám denně.

"A ty se proboha ptáš, proč tam někdo přidal tu a tu napadnutelnost?"

Ne Lukáši. Vysvětlím. Do problematiky zranitelností DNS až tak nevidím, ale třeba znám dobře (snad) problematiku kolem PKI a šifrování. No a úplně jednoduše, pokud by mi dneska někdo představil nový program používající MD5 a DES, tak s ním vyrazím dveře a diskuse skončila. Proč? Protože je evidentní, že ten člověk nemá min. 20let aktuální informace. Dobře, můžu mu dát druhou šanci, ale jestli přijde s SHA1 a RC4, tak už mu střelím ránu z milosti, ať se na tomto světě dál netrápí.

Jiný příklad je třeba sql injection. Nechápu, jak to může být v roce 2016 stále aktuální problém. Prostě nechápu, protože jednoduché, elegantní řešení je tady už také minimálně 15 let a je navíc preferované všemi db connectory (které znám).

Tedy, pokud někdo přijde s nápadem "napíšeme dns resolver", tak automaticky očekávám, že ten člověk ví co dělá na úrovni poznání v roce 2015 (nebo kdy s tím přišel). Proboha, bavíme se o zranitelnosti z roku 2008!
Lukáš Jelínek Re: Re: Re: Re: Re: Re: Nepříjemná chyba v systemd
Lukáš Jelínek 4. 10. 2016, 10:59:33
Odpovědět  Odkaz 
"Jiný příklad je třeba sql injection. Nechápu, jak to může být v roce 2016 stále aktuální problém. Prostě nechápu, protože jednoduché, elegantní řešení je tady už také minimálně 15 let a je navíc preferované všemi db connectory (které znám)."

By ses divil :-) Na přelomu roku jsem předělával software, který si jeden "expert" nechal docela draze zaplatit od města a v něm přímo lepil SQL kód dohromady s parametry předávanými v URL. O dalších zásadních prohřešcích, kterých byl ten software plný, ani mluvit nebudu. Aneb proč používat frameworky, které vše pohodlně a bezpečně řeší, když si člověk může rozkopírovávat svůj geniálně nebezpečný kód ;-)
Re: Nepříjemná chyba v systemd
Pavel Šimerda 3. 10. 2016, 23:04:53
Odpovědět  Odkaz 
„Autor by si měl uvědomit, že cílem těchto komponent není nahradit ISC služby, ale jsou určeny především pro kontejnerové prostředí, které je momentálně velmi aktuální a systemd tímto pomáhá připravit Linux na 21. století.“

Jistě. Protože nic jiného nikdy v kontejnerech nefungovalo a už vůbec to dávno nepoužíváme. Takováhle kritika autora je naprosto k smíchu. To jedenadvacáté století tomu dodává korunu.
Re: Re: Nepříjemná chyba v systemd
lzap 3. 10. 2016, 23:43:39
Odpovědět  Odkaz 
Existence jednoho softwaru neznamená, že všichni padnou na kolena a přestanou se snažit o jakoukoliv implementaci. Pro upřesnění já networkd ani resolved nepoužívám a ani se na to v nejbližší době nechystám.

Odpovědět

Nejsou podporovány žádné značky, komentáře jsou jen čistě textové. Více o diskuzích a pravidlech najdete v nápovědě.
Diskuzi můžete sledovat pomocí RSS kanálu rss



 
 

Top články z OpenOffice.cz