Hlavní navigace

Sporná otázka bezpečnosti

12. 1. 2006
Doba čtení: 6 minut

Sdílet

Je Linux X krát (ne)bezpečnější než Windows? Je v jedné platformě více chyb než v jiné? Jsme nepřetržitě vystaveni rizikům útoků, nebo jde jen o strašení několika jednotlivců a firem podpořené novináři?

Loňský rok byl podle výzkumů zatím nejkritičtějším obdobím, pokud jde o výskyt závažných bezpečnostních mezer v používaném softwaru. Různých zpráv a analýz, které to dokazují a porovnávají z hlediska bezpečnosti různé platformy, existují řádově desítky. Jedna z nich, zpráva americké vládní agentury (US-CERT), hovoří o chybách v operačních systémech, mimo jiné ve Windows a v GNU/Linux.

Díky zmatení několika pojmů došlo k tomu, že jste si v uplynulých dnech mohli přečíst o tom, jak Linux je, případně není čtyřikrát nebezpečnější než Microsoft Windows. Ponechme stranou samotné přetahování se o otázku, zda něco je bezpečnější než něco jiného z hlediska počtu nalezených chyb. Nenechme se také unášet bojem, zda řešení vad v proprietárních systémech je efektivnější než v otevřených. To jsou určitě zajímavá témata k porovnání.

To, o co bych se rád pokusil, je něco jiného. Totiž pohled na samotnou podstatu zabezpečení počítačového softwaru. Co když je boj o „bezpečnostní mezery” ve skutečnosti jen pouhou iluzí? Co když bezpečnost jako taková, v dnešní době už víceméně průmyslové odvětví v rámci IT, ve skutečnosti představuje pouhou nafouknutou a neopodstatněnou bublinu? Bublinu, která živí armádu odborníků. Ač to může znít neuvěřitelně, je to možné. A obhájitelné argumenty.

Podstata rizik

Každá forma zpracování důležité informace vyžaduje nějakou podobu jejího zabezpečení. Toto zabezpečení musí být tím vyšší, čím větší je důležitost informace a čím více osob se k ní může přiblížit. Zatímco sazebník poplatků u pultu v bance stačí prostě položit, maximálně přikartovat špagátkem, peníze jsou bezpečně uloženy v sejfu. Cena informace představované penězi je zkrátka mnohem vyšší než cena sazebníku. Do banky chodí mnoho lidí, kteří se k sazebníku i k penězům přiblíží, ale asi nemá smysl dohadovat se, o co mají větší zájem.

Informace uložená v počítačovém systému je na tom velmi podobně. Některou je potřeba chránit před nenechavci více, jinou méně. Pokud je počítač součástí sítě, pak může být využitelný nejen pro uložení dat, ale také pro svou schopnost je zpracovávat. Stává se nejen nosičem cenné informace, nýbrž je sám hodnotou.

Když se bavíme o hackerských útocích, bavíme se vždy o pokusech o převzetí nebo zlikvidování informace, případně o využití kapitálu spojeného se schopností zpracovávat informaci a poskytovat ji jiným podobným systémům, přebírat ji od nich. Může to znít strašně složitě, ale předchozích několik řádků popisovalo, tak trochu v metajazyce, fungování počítačového systému a zájem potenciálních útočníků o něj. Kdyby byl počítač skříní na šanony, bylo by poměrně jednoduché ošetřit jej tak, aby se k nim žádný nepovolaný člověk nedostal. Protože má ale kromě jednoduchého zámku schopnost být využíván k mnoha jiným účelům, není takové zabezpečení jednoduché.

Tím, co podráží zabezpečení počítačů nohy, je jejich univerzalita. Schopnost provozovat různé, často velmi rozdílné programy je podmíněna schopností zpracovávat informaci mnoha různými způsoby. A rozlišit, který z nich je a který není napadením představuje neřešitelný oříšek. Právě zde se nachází podstata toho, co se většinou nazývá „bezpečnostní rizika”. A co je poslední dobou tak úspěšné.

Díra v díře

Málokterý program pro Windows nebo pro Linux je programem jednoduchým. I primitivní aplikace využívá mnoha různých aplikačních rozhraní, služeb mnoha nepůvodních komponent a operačního systému, externích knihoven. Aplikace, jak ji vidí uživatel, je možná jednoduchou kalkulačkou, ve skutečnosti ale jde o složitý propletenec mnoha funkcí a vztahů mezi nimi. Přesně popsat a sledovat tyto vztahy je nemožné i pro samotné autory programů a operačních systémů. Pokud navíc systém vidíme jako konglomerát knihoven, aplikací, ovladačů nebo částí jádra, pak tušíme, že složitost celku je nejspíše značná. Tato složitost ovšem není na škodu. Je podmínkou schopnosti napsat pro daný počítač a systém prakticky libovolný program. Je rámcem svobody autorů a možností uživatelů softwaru.

Existuje jen několik málo konceptů bezpečnostních mezer, ale bezpočet jejich výskytů v praxi. Notoricky známou je chyba způsobená přetečením nebo podtečením datového zásobníku. Vedle ní stojí neautorizované zavolání vnitřní funkce programu způsobené například opomenutím programátora nebo shodou okolností danou tím, že ve složitém systému, který je nepřehledný, došlo k vzájemnému společnému působení několika různých faktorů. Do této skupiny chyb můžeme řadit rovněž nekorektní fungování komunikačního protokolu nebo situaci, kdy dojde k neočekávané odezvě periferie. Všechny tyto „chyby” mají společné dvě věci. Především mohou být využity k narušení bezpečnosti uložené informace a pracovního kapitálu počítače. A za druhé, vzhledem k tomu, že jejich existence je podmíněna určitým konkrétním stavem velmi složitého prostředí, se velmi špatně odhadují. Prostředí (systému) se přitom mění s každým zásahem do něj a ta „pravá” konstelace pro vznik bezpečnostní mezery může vzniknout, poněkud paradoxně, například také snahou o zalepení jiné. Poněkud nadneseně, bezpečnostní mezera může být podmíněna jinou bezpečnostní mezerou.

Kolik je těch chyb?

Otázka „Kolik je bezpečnostních mezer?” se může zdát stejně tak hloupá jako aktuální. Číselná odpověď na ni takřka jistě neexistuje. Nabídnu ale odpověď, která se jeví logicky správná. Je jich tolik, kolik jich jsme schopni najít. Vzhledem k výše uvedenému je tedy možné, že „chyby” nebo „mezery” nejsou ničím jiným než přesně popsaným stavem složitého systému, který umožňuje obejít jeho zabezpečení. Někdy to může být jednodušší, jindy složitější. Podmínky, které musí být naplněny, jsou jednou vzácné, jindy běžné, ale v zásadě jde vždy o totéž.

Oprava konkrétní chyby a „zalepení” mezery je přitom vysoce iluzorním počinem. Proč? Protože její aplikací vzniká pouze jiný stav téhož systému. A tento jiný stav může být využit pro nalezení jiné nedokonalosti. Její existence přitom nemá zhola nic společného se schopnostmi programátorů nebo dokonalostí vyladění systému. Je dána prostě jeho složitostí a multifunkčností. Stav, ve kterém je možné dostat se k informacím, je systému vlastní, mezera tedy nepochází z toho, že by někdo něco opomenul, že by udělal chybu. Ona je faktem, který se objektivizuje v okamžiku, kdy je objeven. Pokud je předchozí pravda, počet chyb je neomezený a nekonečný, ať si autoři softwaru dělají, co chtějí.

Lovci mršin

Předchozí konstrukce může mnohým připadat nefér. Ale zamysleme se. Pokud by na ni bylo zbla pravdy, pak kde vznikají bezpečnostní mezery? V dílnách tvůrců softwaru? U Microsoftu, nebo třeba Novellu? Ve vývojových komunitách, u testerů? Nikoli. Prostředí pro ně je dáno stejnými zákony, které umožňují PC, aby na něm fungoval Linux, stejně jako Windows. Ale to je jen prostředí. Chyby vznikají tam, kde se hledají. A tam, kde se publikují. Čili například u firem, jako je Secunia. A také na serverech zabývajících se IT.

UX DAy - tip 2

Profesionální lovci zranitelností je vlastně vytvářejí tím, že hledají vhodné stavy systémů. Nutí tak jejich tvůrce lepit své zdánlivé chyby, za které ale ve velké většině případů vůbec nemohou. A je lhostejno, jde-li o Linux či Windows. Jediná chyba je totiž na jejich straně – v jejich aktivitě. Nejsou nic jiného než jacísi profesionální lovci mršin mající jistotu, že svou práci dobře prodají. Ve skutečnosti však zabezpečení více škodí než prospívají. Jejich činnost vede k tomu, že popisy reálných mezer jsou k dispozici rádoby hackerům, dobrodruhům nebo dokonce zločincům, kteří by je sami odhalit nedokázali, ale umí šikovně využít práce „těch hodných”.

Tak Windows, nebo Linux?

Je to jedno. Bezpečný operační systém, nebo vůbec bezpečný software neexistuje. Osobně se domnívám, že porovnání založené na počtu objevených mezer je naprosto irelevantní a o reálné úrovni zabezpečení nevypovídá vůbec nic. Předchozím textem jsem chtěl poukázat na nesmyslnost počínání hledačů chyb. Domnívám se, že skutečných omylů tvůrců programů je v současném softwaru, přinejmenším v tom nejpoužívanějším, velice málo. Chyby ve skutečnosti nejsou chybami, navíc tvoří určitou část nátury IT. Nelze se jich zcela zbavit, ale je možné jimi pěkně dlouho otravovat uživatelům, a nejen jim, život. Otázka zní, zda to stojí za to.

Je to tak?

  • Ano, mnoho chyb je vykonstruovaných
    20 %
  • Částečně souhlasím
    56 %
  • Ne, systémy a software jsou jako cedník
    24 %

Byl pro vás článek přínosný?

Autor článku

Autor je odborný publicista, sociolog a vysokoškolský učitel, zabývá se technologiemi, veřejnou, politickou a mediální komunikací.