Portál AbcLinuxu, 6. května 2025 09:27
To je nesmyslná spekulace přitažená za vlasy. Bez Linuxu by se prostě rozvíjela jiná svobodná platforma. Třeba by Sun Microsystems prosperoval, nezničil by ho Oracle a měli bychom dnes všude Solaris. Nikdo by už ani náznakem neuvažoval o nějakém Ext4, který vůbec neumí checksumy, snapshoty či redundanci a replikaci dat i metadat. Nikoho by nenapadlo, že by snad kernel nepodporoval barvení stránek — kdepak, u moderního systému přece musí být barvení stránek samozřejmostí, no ne? Nebo by třeba zvítězilo nějaké mikrokernelové řešení. Minix? GNU Hurd? A pak je tu poměrně velká rodina BSD systémů s celou škálou na výběr, od znamenitých kousků (FreeBSD) až po odpad se zabezpečením ze 70. let a s Giant Lockem v kernelu (OpenBSD). Něco z toho by zcela jistě úlohu Linuxu převzalo. Jmenovalo by se to jinak, fungovalo by to možná nakonec (trochu) jinak, ale jedna věc je jistá: Technologický pokrok se nedá zastavit.
odpad se zabezpečením ze 70. let a s Giant Lockem v kerneluJiste, protoze kdyz ma nekdo jine priority, musi urcite produkovat odpad. Jako ja chapu, ze vetsina lidi bez vahani zahodi stabilitu, bezpecnost i citelnost kodu, aby ziskali par % vykonu a skvele nove featury, ale nemyslim si, ze je timto zpusobem vhodne vyvijet kritickou infrastrukturu. A co se tyce 70. let, tehdy bylo zabezpeceni postavene na omezeni privilegii. Kdyz utocnici zacali privilegia obchazet exploitovanim chyb v kodu, prvnim logickym krokem bylo psat kvalitnejsi kod a az pozdeji se zacaly vymyslet zpusoby, jak utocnikovi zabranit zneuzit chybu v kodu - napriklad randomizovanim adresniho prostoru (ASLR). Prvni implementace ASLR je z roku 2001. A napriklad ten "znamenity kousek" FreeBSD stale v upstreamu implementaci ASLR nema a jeho bezpecnost je stale postavena hlavne na omezovani privilegii. Nastesti se to nekteri lidi snazi zmenit, a vyvojari se vetsinou snazi spolupracovat misto toho, aby svoje systemy navzajem nazyvali odpadem.
OpenBSD žádné jasné priority nemá, kromě ješitnosti tedy. (Ne že by si to někteří členové komunity neuvědomovali.)
Pravda je, že randomizace adresního prostoru není ze 70. let, nicméně OpenBSD není ani náhodou jediná platforma, která něco takového používá. Není to tedy „výhoda OpenBSD“. Zásadní problém tkví v nepřítomnosti RBAC. Není tam žádná obdoba SELinuxu (nebo alespoň jednoduššího pfexec
ze Solarisu), což dobře zabezpečený systém nepřipomíná ani vzdáleně. OpenBSD místo toho dokola opakuje mantru, že je potřeba především udržet útočníky mimo systém a že když už jsou uvnitř, je vše ztraceno a RBAC nepomůže. No pěkně děkuji, tak takový systém bych nechtěl. Tohle je poměrně zhoubná filozofie. Služby běžící na systému mají obrovskou trusted code base. Navzdory vychloubačným kecům o údajném auditování software, kterými OpenBSD „omlouvá“ zásadní nedostatek software a roky zastaralé verze, se nedá nijak zaručit, že žádný z mnoha desítek síťových démonů nebude napadnutelný. Izolace démonů v chroot kontejnerech je jediná zastaralá možnost, kterou OpenBSD má. To s sebou nese jedině potíže. (DHCP server v jednom kontejneru nemůže příliš snadno aktualizovat DNS server v jiném kontejneru.) Když už k útoku dojde, není ani možné přesně analyzovat, o co se útok pokusil. SELinux je řešení o řád pokročilejší, které u každého démona zvlášť stanoví, kam přesně smí přistupovat, a při pokusu porušit tato omezení dostane správce systému možnost situaci prověřit a buď přístup povolit, je-li ve skutečnosti legitimní, nebo se problémem zabývat podrobněji.
ASLR a omezování privilegií jsou téměř ortogonální záležitosti. Proto je nesmysl srovnávat systémy stylem „nemá A a jeho bezpečnost je postavená na B“. Systém by měl mít oba bezpečnostní prvky. Linux je pochopitelně má. FreeBSD (téměř) taky, byť cesta do mainstreamu může ještě chvíli trvat.
Giant Lock v kernelu není „pár % výkonu“. Je to zásadní problém. Je to něco z minulého století, co může velký SMP systém výkonově ochromit pod úroveň jednoprocesoru. Na dnešním multiprocesoru je OpenBSD nepoužitelné, co se výkonu týká. Dnes je multiprocesor i malý síťový router. Bez paralelismu uvnitř kernelu se systém těžko objede. Koneckonců, cokoliv paralelního je na OpenBSD těžký problém, není-li to striktně v user-space. A ono to v user-space není, kdykoliv jde o síťový provoz, o filesystémy a tak podobně. Zatímco FreeBSD už dávno podporuje ZFS jako kořenový i bootovací filesystém, pokusy portovat ZFS a jiné moderní filesystémy na OpenBSD se zatím nesetkaly s úspěchem. (Existují přinejmenším dva, ale oba narážejí na nutnost přepsat polovinu kernelu.) Nejvtipnější je odpověď na ZFS v OpenBSD FAQ. Prý ZFS v OpenBSD nebude, dokud nebude pod přijatelnou licencí. No ovšem, jak jinak! Není tam kupodivu ani slovo o tom, že skutečným problémem je předpotopní kernel OpenBSD. ZFS není kompatibilní ani s Linuxem, ani s FreeBSD, co se týká licence. Přesto oba systémy ZFS podporují a člověk si může ZFS nainstalovat jako oddělený balíček, který v oficiálních zdrojových kódech a v repository zkrátka není. Žádná tragédie. Jen OpenBSD ZFS nepodporuje a ve svých FAQ raději neříká, proč vlastně.
Když se vrátím k původnímu tématu: Kdyby nevznikl Linux, jistě by ho nahradila jiná svobodná technologie, ale OpenBSD by to asi nebylo. To leda že by nevznikl multiprocesor. Pak by OpenBSD mělo šanci.
Giant Lock v kernelu není „pár % výkonu“. Je to zásadní problém.
Ono to bylo pár procent výkonu v době, kdy se BKL objevil v Linuxu, a je to pár procent výkonu dodnes na systémech, kde procesorů není moc a moc si (v jádře) nekonkurují. A teď se na to můžeme podívat buď optikou OpenBSD "na systémech, kde se OpenBSD používá, to není podstatný problém" nebo optikou ostatních "tento design omezuje použitelnost OpenBSD jen na systémy, kde to nevadí". Linux už se oproti tomu dávno běžně používá i na systémech, kde si fungování s jedním univerzálním zámkem nikdo radši ani nepředstavuje a kde i fine grained zámky mohou být příliš omezující (proto se pořád něco přepisuje na RCU nebo ještě víc lockless implementace).
Kdyby nevznikl Linux, jistě by ho nahradila jiná svobodná technologie, ale OpenBSD by to asi nebylo. To leda že by nevznikl multiprocesor. Pak by OpenBSD mělo šanci.
Kdyby byla reálná poptávka po nasazení OpenBSD na víceprocesorových systémech, dost možná by tu koncepci opustili i v OpenBSD. Spíš bych viděl problém v osobě Theo de Raadta. Linus je sice taky ješitný (kdo ne) a dokáže být občas i otravný diktátor, ale především je pragmatik. Takže mu nedělá problém vykašlat se na vznešené ideje nebo na vlastní ješitnost a přijmout řešení, které sice není křišťálově čisté nebo se mu původně moc nelíbilo, ukáže-li se, že to v praxi Linuxu prospěje. To je podle mne hlavní důvod, proč se z mnoha open source unixových systémů (nejvíc) prosadil právě Linux. Teoretici sice mohou psát sáhodlouhá pojednání, jaký je Linux bastl a jak je minix, Hurd, Plan 9 nebo nějaký jiný systém, o kterém jsem ani já neslyšel, v tom či onom ohledu navržen mnohem čistěji a lépe, ale v praxi se uživatelé (a tím nemyslím jen jednotlivce, ale i velké firmy) rozhodují podle úplně jiných kritérií.
To je podle mne hlavní důvod, proč se z mnoha open source unixových systémů (nejvíc) prosadil právě Linux.Hlavnim duvodem je pravdepodobne nechvalne znamy soudni spor, kde AT&T tvrdilo, ze BSD obsahuje kod puvodniho unixu. Soud sice rozhodl, ze tam zadny kod AT&T neni, ale je logicke, ze zatimco spor probihal, tak hodne lidi, co chtelo svobodny unix, slo radeji delat na Linuxu.
Pravda je, že randomizace adresního prostoru není ze 70. let, nicméně OpenBSD není ani náhodou jediná platforma, která něco takového používá. Není to tedy „výhoda OpenBSD“.Ja jsem netvrdil, ze je to jedinna platforma, ktera ASLR pouziva. Nicmene treba ASLR v Linuxu je slabsi.
Zásadní problém tkví v nepřítomnosti RBAC. Není tam žádná obdoba SELinuxu (nebo alespoň jednoduššího pfexec ze Solarisu), což dobře zabezpečený systém nepřipomíná ani vzdáleně. OpenBSD místo toho dokola opakuje mantru, že je potřeba především udržet útočníky mimo systém a že když už jsou uvnitř, je vše ztraceno a RBAC nepomůže. No pěkně děkuji, tak takový systém bych nechtěl.A nekdo jiny by zase nechtel system, kde maintainer patch jenom zbezne proletne, otestuje, mergne a pak uz ho nikdo zkoumat nebude. Je to proste jiny pristup k problematice.
Tohle je poměrně zhoubná filozofie. Služby běžící na systému mají obrovskou trusted code base. Navzdory vychloubačným kecům o údajném auditování software, kterými OpenBSD „omlouvá“ zásadní nedostatek software a roky zastaralé verze, se nedá nijak zaručit, že žádný z mnoha desítek síťových démonů nebude napadnutelný.A proto krome veci jako ASLR zacali lidi z OpenBSD, frustrovani z existujicich demonu, nahrazovat nektere demony vlastnimi.
Když už k útoku dojde, není ani možné přesně analyzovat, o co se útok pokusil. SELinux je řešení o řád pokročilejší, které u každého démona zvlášť stanoví, kam přesně smí přistupovat, a při pokusu porušit tato omezení dostane správce systému možnost situaci prověřit a buď přístup povolit, je-li ve skutečnosti legitimní, nebo se problémem zabývat podrobněji.Nebo proste utocnik po prevzeti kontroly nad procesem exploitne jeden z mnoha bugu v obrovskem neauditovanem jadre.
FreeBSD (téměř) taky, byť cesta do mainstreamu může ještě chvíli trvat.Jo, a nekteri lidi taky pracuji na SMP v kernelu OpenBSD. Blby vykon mi pripada smutny, absence ASLR mi pripada jako pruser. A je mozne, ze ty to mas obracene, a presto nebudu zadny system co pouzivas oznacovat za odpad
Na dnešním multiprocesoru je OpenBSD nepoužitelné, co se výkonu týká.A presto existuji lide, kteri ho pouzivaji. Maji totiz jine priority a pozadavky. A o to tady jde.
Nejvtipnější je je odpověď na ZFS v OpenBSD FAQ. Prý ZFS v OpenBSD nebude, dokud nebude pod přijatelnou licencí. No ovšem, jak jinak! Není tam kupodivu ani slovo o tom, že skutečným problémem je předpotopní kernel OpenBSD. ZFS není kompatibilní ani s Linuxem, ani s FreeBSD, co se týká licence. Přesto oba systémy ZFS podporují a člověk si může ZFS nainstalovat jako oddělený balíček, který v oficiálních zdrojových kódech a v repository zkrátka není.Samozrejme ze to neni jenom o licenci, ale taky o odlisnem pristupu k vyvoji a relativne male poptavce po ZFS na OpenBSD. I kdyby to bylo pod BSD licenci a byla by po tom obrovska poptavka, vyvojari OpenBSD proste jen tak neprijmou tunu ciziho kodu - nekdo by ho musel cely prostudovat a dost mozna i cely prekopat, protoze oni to s tou kvaitou opravdu mysli vazne. Snaha mit citelny kod a minimalni software bez tuny super-featur pripada vetsine lidi asi jako nejaky vtip, ale ono to prinasi realne vysledky. Staci se podivat na pomer zranitelnosti u OpenSSL a LibreSSL.
Když se vrátím k původnímu tématu: Kdyby nevznikl Linux, jistě by ho nahradila jiná svobodná technologie, ale OpenBSD by to asi nebylo.Ja netvrdim, ze by ho nahradilo OpenBSD, protoze chapu, ze bezny uzivatel ma jine pozadavky. Ja jenom nechapu proc nedokazes prijmout, ze ma nekdo jiny odborny nazor. Tvrdit "tenhle pristup k problemu je jedinny spravny" je naivni. Jiny pristup ma proste jine vyhody a nevyhody, kazdy ma jine priority a jiny use-case a podle toho si muze vybrat projekt, ktery mu vyhovuje.
Nesprávnu konfiguráciu systému systému nezachráni nejaký Selinux.
Neviem či pomôže akékoľvek zabezpečenie proti wizard hackerovy.
Byl by vůbec Solaris otevřenej, kdyby Sun nebyl ve sračkách svojí neschopností konkurovat Linuxu?Samozřejmě že nebyl. Jenže to je pro většinu mlaďochů tak dávná minulost, že o ní nic neví. Většina z nich v té době znala maximálně MS Win, protože o Solaris měli možnost leda tak škrtnout někde na terminálu v nějaké knihovně, nebo korporačce. To Novell byl mnohem populárnější - a kde je dnes..
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.