Pozitiva a negativa využívání open-source softwaru

Dramatický nárůst nasazení free a open-source softwaru jednou provždy změnil svět informačních technologií. První open-source projekty byly výsledkem práce informačních technologů, vznikaly na akademické půdě a ve výzkumných laboratořích. Dnes je software vytvářen pro masovou veřejnost a ta má také přístup k jeho zdrojovým kódům. Stejně jako se stále rozšiřuje cílová skupina, pro kterou je open source určen, zvyšují se i požadavky na základní vlastnosti takového softwaru – bezpečnost a spolehlivost. Bezpečnost a spolehlivost spolu přitom úzce souvisí. Spolehlivý software je takový, který dělá přesně to, co od něj požadujeme, a takový software musí být bezpečný.

Kdybychom porovnávali open-source a proprietární (closed-source) software, bylo by nasnadě se ptát: „Je jeden bezpečnější a spolehlivější než ten druhý?“ Právě touto otázkou se již v minulosti zabývaly četné studie. Argumenty těchto studií se většinou zaměřují na dvě klíčové vlastnosti: dostupnost zdrojového kódu a množství softwarových chyb.

V roce 2002 publikovala instituce AdTI (Alexis de Tocqueville Institution) studii, ve které došla k závěru, že vládní agentury by neměly používat software pod licencí GNU GPL, neboť by to mohlo znamenat ohrožení národní bezpečnosti. Základem pro toto kontroverzní zjištění byl předpoklad, že veřejně dostupný kód přitahuje crackery, kteří jej pak studují a po odhalení nedostatků vytvářejí trojské koně. Studie tak dospěla k závěru, že dostupnost zdrojového kódu představuje vždy silnou bezpečnostní hrozbu.

Toto tvrzení má ale několik nedostatků. Pokud by bylo pravdivé, znamenalo by to, že všechny proprietární systémy jsou bezpečnější než jejich open-source protějšky. Tento přístup je označován jako „security through obscurity“, tedy bezpečnost skrze utajení. Nicméně dostupná statistická data pravdivosti tohoto tvrzení příliš nenasvědčují. Naopak, moderní pojetí tohoto problému říká, že utajení zdrojového kódu nepředstavuje co do bezpečnosti výraznou přidanou hodnotu. Lidé, kteří se budou snažit najít bezpečnostní díru v určitém systému, nepotřebují jeho kód (běžnou praxí je například posílat systému neočekávaná data a monitorovat, jaké na ně vrací odpovědi). Přesto samozřejmě existují případy, kdy přístup ke zdrojovému kódu pomohl k nabourání do systému. Robert T. Morris, profesor na Massachusettském technologickém institutu, byl v roce 1988 vůbec prvním tvůrcem počítačového viru na světě. Nakazil zhruba 10 procent počítačů připojených k internetu a znalost zdrojového kódu zde hrála důležitou úlohu.

Ať už bude debata o open-source, nebo closed-source softwaru, každý z nich bude vždy mít své chyby. Míru bezpečnosti tak bude značně určovat jejich počet. Podle výzkumu, který dělal Institut softwarového inženýrství v Pittsburghu (The Carnegie Mellon Software Engineering Institute), připadá u zkušeného programátora na každých 100 řádků, které napíše, jedna chyba, přičemž v průběhu vývojového cyklu se pak 99 procent těchto chyb opraví. Distribuce Red Hat Linux 7.1 obsahuje asi 30 miliónů řádků kódu (LOC), Microsoft Windows XP pak asi 40 miliónů řádků kódu. Podle bezpečnostního analytika Martina Mačoka se v obou oblastech vývoje, uzavřeném i otevřeném, vyskytují stejně vzdělaní vývojáři. Na Red Hat Linux tak připadá zhruba 30 tisíc a na Windows XP 40 tisíc případných bezpečnostních děr.

Vzhledem k tomu, že není v lidských silách vytvořit bezchybný software, je důležitým ukazatelem bezpečnosti rychlost, s jakou lze tyto chyby opravit. Tato reakční doba je u otevřených řešení rychlejší – často se může jednat o otázku několika hodin. U proprietárních systémů je běžné, že je více záplat agregováno a uvolňováno v delším časovém horizontu v podobě balíčku. U open-source softwaru si navíc můžeme případnou chybu opravit sami, nebo si na její opravení najmout třetí stranu. U proprietárního softwaru tato možnost zaniká.

Častým argumentem pro volbu open-source řešení je finanční hledisko. Z pohledu vývojáře je open-source vývoj levnější. Např. vývoj Windows Vista stál 6 miliard dolarů, naproti tomu vývoj Red Hat Enterprise Serveru 5 stál několik stovek milionů dolarů. Z pohledu uživatele to tak jednoznačné není. Pořízení open-source software pro něj může být levnější i nemusí. Způsob prodeje open-source software je totiž odlišný. Neprodává se samotný software, ale doprovodné služby – bezpečnostní podpora, certifikace, školení a jiné. Každá firma si tak musí spočítat, které řešení se jí vyplatí.

Nespornou výhodou open-source je, že vývojář nemusí řešit problém, který už vyřešil někdo jiný. Steven Weber, profesor na Kalifornské univerzitě v Berkeley, v tomto směru radí:

„Minimize how many times you have to reinvent the wheel. A good programmer is lazy like a fox.“

Vývojář by se tak měl vždy snažit co nejvíce využít kód z rozsáhlých repositářů. Ovšem jak jinak než s ohledem na licenční podmínky, pod kterými byl kód zveřejněn.