Linux je jedním z fenoménů současnosti. Jistě lze konstatovat, že se jedná o vlajkovou loď open-source i svobodného softwaru. Ačkoliv stojí před ohromnou konkurencí, míra jeho užívání stále roste. Z původně studentského projektu Linuse Torvaldse, podpořeného projektem GNU Richarda Stallmana, vznikl operační systém, který nejenže dospěl a uchytil se v mnoha oblastech, ale v některých oblastech (servery a superpočítače) dokonce předehnal konkurenci a dosáhl největšího tržního podílu.
Existuje však řada oblastí, kam Linux proniká spíše obtížněji, třeba do oblasti soukromých (domácích) počítačů, firemních pracovních stanic nebo do oblasti školních počítačů. Jedním z důvodů, proč tomu tak je, je obava z neznámého a související obava z dopadu na bezpečnost. O bezpečnosti Linuxu i open source koluje řada mýtů a chybných domněnek. V tomto článku se je pokusím vyvrátit a ukázat, že z pohledu počítačové bezpečnosti na tom Linux rozhodně není hůře než jiné systémy, ba dokonce naopak – Linux i open source mají řadu vlastností, které mohou bezpečnost podpořit a zvýšit.
Bezpečnost
Pokud máme mluvit o bezpečnosti, je třeba si ujasnit, co to vlastně je. Všichni patrně intuitivně vnímáme bezpečnost jako ochranu před nějakými hrozbami. Z definic počítačové bezpečnosti v mé mysli utkvěly dvě, které jsou podle mého názoru vhodné k zamyšlení. První definice říká, že bezpečnost je proces, který sestává ze čtyř fází – analýza, jejímž výstupem je sada bezpečnostních opatření, které jsou v druhé fázi uvedeny do praxe. Poté nastává třetí fáze, a sice hlídání a kontrola. Poslední fází je změna, která vede opět na začátek a celý proces se opakuje.
Druhá definice říká, že bezpečnost je kompromis. K dosažení určité hladiny bezpečnosti je vždy třeba něco obětovat, ať už je to čas, nebo vynaložené prostředky. Tato pojetí bezpečnosti se uplatňují zejména v oblasti organizací, byť jsou v jisté intuitivní podobě využívána i jednotlivci a v úplně jiných souvislostech než jen v oblasti počítačové bezpečnosti.
Bezpečnost je kompromis. K dosažení určité hladiny bezpečnosti je vždy třeba něco obětovat, ať už je to čas, nebo vynaložené prostředky.
Poslední důležitá informace je, že neexistuje absolutní bezpečnost. Ať se snažíte jakkoliv, nikdy nemůžete něco zabezpečit stoprocentně. Vždy bude existovat určité, byť třeba jen velmi malé riziko.
Bezpečnost operačního systému
Ať už se jedná o bezpečnost informačního systému, nebo jediného počítače, nelze pominout roli operačního systému jako softwarového „srdce“ počítače. Jeho bezpečnost sice není to jediné, co je třeba zajistit (přinejmenším je třeba zvážit také bezpečnost používaných aplikací, zejména síťových aplikací), ale i tak je nesmírně důležitá, ba přímo klíčová.
Linux je v dnešní době nejpoužívanějším open-source operačním systémem. Je nasazován na osobních počítačích, serverech, superpočítačích, ale také třeba mobilních telefonech. Bezpečnost Linuxu bývá i jedním z důvodů jeho nasazování v kritických informačních systémech. Příkladem může být londýnská burza (PDF), která provedla migraci na Linux ze systému založeného na Microsoft Windows, přičemž jedním z udávaných důvodů byla i bezpečnost.
Při posuzování bezpečnosti Linuxu je třeba na ni nahlížet ze dvou pohledů, a sice z pohledu na Linux jako takový, tedy jeho technologické charakteristiky, a z pohledu na Linux jako open source (nebo svobodný software, chcete-li).
Bezpečnost open-source softwaru
Řada mýtů o bezpečnosti Linuxu pochází z mýtů o bezpečnosti open source. Čím je vlastně charakterizován open source? Mj. dostupností zdrojového kódu, tedy člověkem čitelné podoby počítačového programu. Není to samozřejmě ani zdaleka jediné kritérium, ale v případě posouzení bezpečnosti je podstatné.
Výsledkem je, že prakticky kdokoliv může nahlížet do zdrojového kódu open-source softwaru. Někteří se na základě toho začali domnívat, že to oslabuje bezpečnost takového softwaru a že má v této oblasti proprietární software, který zdrojový kód tají, podstatnou výhodu. Praxe však ukazuje, že je to skutečně pouze mýtus, který nemá s realitou příliš společného. Open source dokonce přináší z hlediska bezpečnosti i jisté výhody.
Samotné utajování zdrojového kódu prokazatelně nezabraňuje útočníkům nacházet a zneužívat bezpečnostní chyby, což potvrdí přehled bezpečnostních problémů nalezených u libovolného proprietárního softwaru, třeba u Windows 7.
Eric Raymond, zakladatel hnutí open source, sepsal esej nazvanou The Cathedral and the Bazaar (Katedrála a bazar), ve které zmiňuje podstatný fakt, a sice, že do zdrojového kódu open-source softwaru může nahlížet jak potenciální útočník, tak značné množství vývojářů, ať již příležitostných, či stálých. Čím více takových „očí“, tím více chyb se podaří objevit a opravit.
Z toho také vyplývá, že případnou chybu může opravit kdokoliv – není třeba čekat na to, až se výrobce rozhodne problém řešit. V praxi linuxových distribucí existuje dokonce více úrovní vývojářů, kteří se starají o bezpečnost systému i aplikací. První úroveň tvoří samotní vývojáři daného softwaru, druhou úrovní jsou tvůrci distribucí, kteří tento software začleňují do svých repozitářů. Obě úrovně řeší bezpečnostní problémy.
Je jasné, že ne každý open-source projekt má značné množství vývojářů a uživatelů. O menší projekty se zajímá méně lidí, vyvíjí je méně lidí, takže i méně lidí prochází zdrojový kód. Na stranu druhou, takový software bude zase podstatně méně atraktivní pro útočníky (méně uživatelů = méně potenciálních obětí). Stejně tak je třeba zmínit, že velké open-source projekty jako linuxové jádro, webový server Apache, nejpoužívanější linuxové distribuce apod. mají síly vyčleněné speciálně pro řešení bezpečnostních problémů (bezpečnostní týmy, hlášení o bezpečnostních problémech atd.).
Poměrně zajímavý výzkum v této oblasti provedla společnost Veracode. Ten prokázal několik věcí. Za prvé, open-source software má srovnatelnou úroveň bezpečnosti s proprietárním softwarem. Za druhé, chyby jsou u open-source softwaru opravovány rychleji než v případě proprietárního softwaru. To je velmi důležité, neboť doba od ohlášení chyby po dobu dostupnosti opravy je z hlediska bezpečnosti klíčová – čím kratší, tím menší riziko, že se v tomto časovém okně útočníkovi podaří zjištěnou chybu využít.
A konečně za třetí – open source má výrazně méně potenciálních zadních vrátek než proprietární či outsourcovaný software. To ostatně dává smysl už z výše uvedeného, neboť je-li zdrojový kód otevřený, vidí jej více nezávislých očí, a proto je výrazně obtížnější do něj propašovat případná zadní vrátka. U proprietárního softwaru je to podstatně jednodušší, neboť zdrojový kód vidí a má pod kontrolou jediný subjekt na trhu.
Stanfordská univerzita provedla čtyřletý výzkum jádra Linuxu a zjistila, že zkoumaná verze obsahovala 985 chyb v celkem 5,7 milionech řádků zdrojového kódu, což představuje 0,17 chyby na tisíc řádků kódu, zatímco u proprietárního softwaru byl univerzitou Carnegie Mellon zjištěn průměr 20–30 chyb na tisíc řádků kódu.
Tato čísla alespoň řádově potvrzuje i studie open-source softwaru od Coverity (PDF), která zkoumala celkem 32 populárních open-source projektů (např. Linux, Apache, PHP, Mozilla Firefox, MySQL, PostgreSQL atd.) a zjistila průměrnou hodnotu 0,434 chyby na tisíc řádků kódu.
Bezpečnost Linuxu
Druhým pohledem na Linux z hlediska bezpečnosti je pohled na samotné vlastnosti Linuxu, na to, jak je postaven, jak se spravuje, ale také jak vlastně vypadá svět Linuxu.
Systém bez antiviru
Asi první zvláštní zjištění uživatelů přecházejících z Microsoft Windows na Linux je absence antivirového softwaru. I když pro Linux existuje řada antivirů, týkají se zejména oblasti serverů, tedy filtrování elektronické pošty. Malware (obecně škodlivý software) pro Linux sice existuje, ale téměř se nešíří (výjimkou je oblast serverů; stává se, že dlouho neaktualizované nebo vyloženě špatně nastavené servery umožní útočníkům průnik).
Domácí uživatel se nemá čeho bát, zejména pokud svůj systém aktualizuje. Je samozřejmě třeba dodat, že velkou část dnešních útoků tvoří sociální inženýrství, které se vhodně sestavenými zprávami snaží od uživatele vyloudit různé informace, jako např. přihlašovací údaje k bankovním službám apod. – před těmito hrozbami uživatele ochrání pouze zdravý rozum v kombinaci se zdravou úrovní podezřívavosti.
Heterogenní prostředí
Často se uvádí, že absence malwaru na Linuxu je záležitostí jeho nízkého tržního podílu, alespoň na desktopech. Ačkoliv toto určitě jistou roli hraje, Linux má řadu zajímavých vlastností, které jeho bezpečnost podporují.
První z nich je heterogenní prostředí. Linux není jeden konkrétní systém, existuje řada linuxových distribucí, kterých je celkem přes tři stovky. I když mainstream tvoří jen několik, i těch několik představuje rozmanité prostředí, což je podpořeno na jedné straně krátkým vývojovým cyklem (šest měsíců u řady distribucí) a na straně druhé variabilitou softwaru v rámci distribucí – vezměte si jen otázku výběru grafického prostředí, kterých má Linux celou řadu. Totéž platí pro prohlížeče, poštovní klienty, webové servery atd.
Nejpopulárnější distribucí současnosti je Ubuntu. I v rámci Ubuntu existuje různorodost v podobě „subdistribucí“, tedy na Ubuntu založených „odnoží“. Do této skupiny patří např. Kubuntu, Xubuntu, Edubuntu a řada dalších. Liší se výchozím grafickým prostředím a softwarem, který je přiložen na instalačním médiu a instaluje se spolu s distribucí. Všechny tyto projekty využívají repozitáře Ubuntu, tj. nejedná se o samostatné distribuce, ale přesto dramaticky ovlivňují strukturu instalovaných aplikací.
Sestavit za takových okolností malware pro Linux je nesmírně obtížné, protože mezi jednotlivými uživateli mohou být obrovské rozdíly v použitém softwaru a použitých verzích daného softwaru. V případě majoritního systému je situace pro útočníky nepoměrně příznivější – existuje několik málo verzí systému, které obsahují určitou strukturu výchozích aplikací.
Unixové základy, právo ke spuštění
Jako operační systém vychází Linux z Unixu, systému s dlouhou tradicí a architekturou, která přináší některé bezpečnostní výhody. Narážím zde zejména na práci se spustitelným kódem. V systémech Windows je spustitelnost nějakého souboru dána jeho názvem (přesněji řečeno příponou). V Linuxu je třeba programu explicitně přiřadit právo ke spuštění. To pomáhá zabránit nechtěnému spuštění rizikového kódu.
Centralizovaná správa softwaru
Centralizovaná správa softwaru představuje jednu ze silných bezpečnostních výhod Linuxu. V případě jiných systémů se software získává a instaluje obvykle z cizích zdrojů (třetí strany), často se stáhne kdo ví odkud a kdo ví s jakým malwarem.
V Linuxu je software spravován centrálně, přes správce balíčků. Dostupný software je zpřístupněn a udržován výrobcem distribuce v tzv. repozitářích. Jednotlivé balíčky jsou digitálně podepsány a správce balíčků si podpisy ověřuje před tím, než software nainstaluje.
Centralizovaná správa softwaru tak efektivně pomáhá zabránit případnému infikování systému při instalaci softwaru z neznámého zdroje. Zde je také třeba zmínit, že na rozdíl od jiných systémů obsahují repozitáře linuxových distribucí nepřeberné množství softwaru, které pokrývá drtivou většinu softwaru dostupného pro Linux. Jen pro představu, distribuce Debian obsahuje celkem více než 29 tisíc balíčků.
Distribuce se starají o bezpečnostní aktualizace, a to veškerého softwaru z repozitářů. I to pomáhá zvýšit úroveň bezpečnosti, neboť se nestává, že by v systému zůstával software, který není aktualizovaný. V případě jiných systémů se o to často musí postarat každá aplikace sama za sebe (s výjimkou aplikací pocházejících od výrobce systému, ale těch bývá velmi málo).
Bezpečnostní rozšíření
Pro Linux existuje řada rozšiřujících bezpečnostních mechanismů, které pomáhají zejména v oblasti serverů zajišťovat bezpečnost systému i síťových aplikací. Patří sem projekty jako SELinux (vyvinula NSA), grsecurity, AppArmor či TOMOYO. Tyto projekty nalézají uplatnění při nasazení Linuxu v korporátním prostředí a prostředí, kde bezpečnost hraje klíčovou roli. Zajímavou práci (PDF) na téma bezpečnostní infrastruktura v podnikovém prostředí vydal Hewlett-Packard.
Pozor na lidský faktor
Už z povahy věci je Linux software jako každý jiný, tj. software obsahující chyby. Bezpečnost vždy stojí a padá s lidmi, kteří se na její tvorbě i podpoře podílejí. Neexistuje tedy nic jako „bezpečný operační systém“. Systém není bezpečný sám o sobě, vždy závisí na konkrétním použití a na uživateli.
Přesto, bezpečnost open-source softwaru je přinejmenším srovnatelná, ne-li lepší v porovnání s proprietárními řešeními. Linux obsahuje řadu vlastností, které k jeho bezpečnosti přispívají a činí tak proces jeho zabezpečení jednodušší v porovnání s jinými systémy.
Článek vyšel ve druhém čísle magazínu Open source & praxe.