Friday, March 19, 2010

Bezpečnost - srovnání OSS vs. komerční software

Bezpečnost je dnes jedním z hlavních kritérií při výběru softwaru. Jako základní rys kvality programu je ovlivňována v celém životním cyklu konkrétního programu. Úroveň bezpečnosti tedy závísí na přístupu k vývoji, množství lidí, kteří jsou do něj zapojeni a v neposlední řadě znalostech a zkušenostech všech zúčastněných. Zřejmě největší nebezpečí z hlediska bezpečnosti hrozí již při samotném vývoji aplikace. Vývojář může vnést do softwaru chybu, ať už záměrně nebo omylem, která může při použití nenávratně poškodit důvěryhodnost výrobce.
Bezpečnostní chyby mohou být do programu zaneseny ovšem i v pozdějších fázích. Například při distribuci pomocí nepříliš důvěrodných komunikačních kanálů jako je e-mail nebo při samotné instalalaci. Poté již závisí především na tom, jak důkladně byl otestován a jak rychle stíhá výrobce na vzniklé problémy reagovat.

Co je bezpečnost software

Obecně se dá říci, že bezpečný sotware je takový, který dělá přesně to, co od něj uživatelé čekají, tzn., že nevykonává žádné jiné činnosti a chová se podle očekávání uživatele i v případě napadení.
To, že každý software obsahuje minimálně jednu chybu, je již považováno za axiom.
Bezpečný software by měl obsahovat co nejméně bezpečnostních chyb, které by mohly být případně zneužity. V této souvislosti se často hovoří o důvěryhodnosti softwaru, která také zahrnuje jeho bezpečné a předvídatelné chování.
V neposlední řadě je klíčová schopnost útok přežit. To v ideálním případě znamená, že uživatel pokus o útok vůbec nepozná, v tom horším alepoň rychlé zotavení se z útoku s co nejmenším dopadem.

Jak ji měřit?

Dnes je poměrně populární srovnávat u různých programů počty chyb případně počty aktulizací softwaru. Menší zřetel je již dán na „kritičnost“ chyb a zejména rychlost jejich odstranění. Přitom z nejrůznějších analýz vyplývá, že neúspěšnější útoky byly zaměřeny na využití známých, neopravených chyb v softwaru, připadně nedostatečným zabezpečím při jeho konfiguraci.

Proč komerční software?

U softwaru s otevřeným zdrojovým je bezpečnost obecně vnímána spíše negativně. Zejména mezi firemními uživateli je zakořeněná představa, že open source, který často bývá i zdarma, může svojí kvalitou jen těžko konkurovat komerčnímu softwaru. Navíc je pro mnohé poměrně nepříjemná představa, že za případné chyby nenese nikdo konkrétní odpovědnost.
OSS navíc často využívá jiné knihovny s otevřeným zdrojovým kódem, a tak se může poměrně snadno stát, že jedna chyba je „roznešena“ do mnoha různých aplikací a systémů. To se stalo například v OpenSSl, kde jedna ovlivnila miliony uživatelů používající nejrůznější aplikace, např. webový server Apache, SSH pro vzdálený přístup, IPsec Virtuální Privátní sítě či operační systémy Debian a Ubuntu.
V neposlední řadě řadě bývá často pro použití komerčního softwaru právě jeho uzavřenost. Otevřený zdrojový kód si může potenciální útočník snadno prostudovat (není-li dokonce jeho autorem) a najít v něm potenciální slabiny.

Proč Open Source?

Právě otevřenost kódu hraje z hlediska bezpečnosti spíše ve prospěch OOS. Potenciální chybu sice může najít i útočník, nicméně obvykle na straně vývojářů či uživatelů ji obvykle hledá mnohem větší skupina lidí, a je proto i větší šance, že ji najde dříve a snáze opraví. To platí zejména u programů s širokou uživatleskou základnou. Dnes se tedy považuje za spíše výhodnější, že jsou informace dostupné všem, i když mezi nimi mohou být i potenciální útočníci.
Důležitým problémem komerčního softwaru jsou také backdoory, které útočníkovi umožňují obejít běžnou autentizaci při vstupu do systému nebo programu a zároveň tento přístup skrýt před běžnou kontrolou. Existují případy, kdy v uzavřeném software byla „zadní vrátka“ skryta i několik let, zatímco podobný pokus byl například v roce 2003 jádru linuxu téměř ihned odhalen. Identická situace nezřídka nastává i v případě trojských koní, které uživateli skrývají (obvykle pro něj ne právě přívětivou) funkcionalitu.
Dalším důvodem, proč by měl být OSS bezpečnější, je motivace. Vývojáři open source jsou pod kódem přímo „podepsáni“ a mají tak větší motivaci snažit se sami odhalit vlastní chyby. S tím souvisí také asi nejdůležitější výhoda OSS oproti komerčnímu software, kterou je obvykle výrazně kratší reakční doba, se kterou jsou tyto chyby odstraněny. To není navíc závislé pouze na vůli jedné společnosti, ale v případě nutnosti ji může opravit interní zaměstnanec firmy, případně není díky otevřenému kódu problém si na tuto práci někoho objednat.

A vítězem se stává...

Ještě před vynesením obecného verdiktu se pokusím vše ilustrovat na kontrétním příkladě. K tomu byly využity internetové prohlížeče, protože jako na „bránu do internetu“ jsou na ně kladeny vysoké bezpečnostní nároky a také jako v jednom z mála typů aplikačního software zde má open source poměrně silného zástupce.

Internet Explorer vs. Mozilla Firefox

Internet Explorer se stal již nespočetnětněkrát obětí, či spíše prostředkem k nejrůznějším útokům, od spyware, adware a virů zejména díky využítí bezpečnostních chyb či nedostatků v architektuře. Často přitom stačilo pouze navštívit „infikovanou stránku“, aby se software sám nainstaloval.
Počty chyb v jednotlivých se dosti liší podle společností, které tento výzkum provádějí. Například podle společnosti Secunia obsahuje šestá verze Exploreru 24 neopravených bezpečnostných děr, sedmá 11 a osmá 4, přičemž nemalá část z nich jepovažována za kritické. Celkový počet neopatchovaných chyb podle serveru SecurityFocus čítá u IE6 úctyhodných 396, u IE7 22 a u zatím poslední osmé verze 22.
Zejména u verze 6 jsou tato čísla poměrně zarážející, zejména vezmeme-li v úvahu, že teprve před několika dny byla (k radosti mnohých vývojářů) ukončena ze strany Microsoftu její oficiální podpora, a tudíž je možné považovat tato čísla za konečná. Bez zajímavosti také nejsou nejstarší neopravené chyby, které v podstatě kopírují data vydání jednotlivých verzí, u IE6 je to přes 10 let, u poslední verze potom téměř rok.

I na adresu Firefoxu se poměrně často snáší kritika týkající se jeho bezpečnosti. Podle poskytovatelů bezpečnostního software se v tomto ohledu pohybuje v podobných relacích jako Internet Explorer. To je způsobeno hlavně díky jeho vysoké modularitě, kdy se při instalaci doplňků vnášejí do firefoxu další chyby.
Hlavní rozdíl však spočívá v rychlosti a hlavně důslednosti ostraňování. Zatímco u Microsoftu uživatelé často lamentují nad dobou mezi odhalením chyby a jejím odstaněním (pokud k němu vůbec dojde), u Firefoxu se se tato doba pohybuje obvykle v řádu dní až týdnu, u kritických často do 48 hodin. Je až s podivem, že k březnu tohoto roku byla neopravená chyba ve stabilních verzích Firefoxu je pouze jedna, jejíž „stáří“ se aktuálně pohybuje okolo 14 dní, a dá se proto předpokládat, že bude v nejbližších dnech odstraněna.

No comments:

Post a Comment