reklama

Open-source je poprvé kvalitnější než proprietární software

Z analýz zdrojových kódů za rok 2013 vyplynulo, že Open-source programy obsahují méně chyb. Jak je to ale s celkovou bezpečností? Můžeme věřit svobodným vývojářům?

Poslední týdny se v médiích, včetně těch obecných skloňuje chyba Heartbleed. Kritická chyba, která se objevila v knihovně OpenSSL v březnu 2012 umožnovala vylákat ze serverů (i klientů) privátní šifrovací klíče, hesla i další bezpečnostní prvky. Po dva roky tak měli šikovní hackeři možnost poměrně jednoduše útočit na servery, které se tvářili zabezpečeně. Až v dubnu byla chyba CVE-2014-0160 v kódu OpenSSL opravena.

Zároveň s tím se opět zintenzivnila debata o tom, jaký typ softwaru je bezpečnější a kvalitnější. Je jím open-source, který může každý programátor otevřít, dlouhé měsíce kontrolovat a objevovat chyby, nebo proprietární „closed-source“, jež kontrolují sami společnosti vyvíjející software?

Open-source vs. Closed-source

Open-source, který u nás rádi nazýváme svobodným softwarem je specifický svou vlastností veřejného zdrojového kódu. Kdokoliv může tento kód vzít, doma si jej přepsat, znovu zkompilovat a používat svoji zkontrolovanou verzi. To stejné mohou udělat společnosti, které využijí GNU licencí a původní kód rozšíří o svůj díl a tento software dále distribuují.

Zastánci open-source rádi hovoří právě o oné kontrole stovkami či tisícovkami dobrovolníků, kteří by měli objevené chyby nahlašovat a zasadit se tím o bezpečnější software. To, v jaké míře takováto kontrola funguje, je na dlouhé filozofické debaty či spory mezi oběma tábory. Chyba Heartbleed však ukázala, že ani velké open-sourcové projekty, se nevyhnou kritickým chybám.

Naproti tomu proprietární software komunita jen tak „kontrolovat“ nemůže. Za jeho vývojem i odhalování chyb stojí vývojové a bezpečnostní týmy samotných společností, které program vyvíjí. U těch největších korporací, jakou je třeba Microsoft, prochází všechny změny v kódu několika instancemi kontrol, kdy je většina chyb odhalena.

Open-source software, který zde může být prezentován právě kryptografickou knihovnou OpenSSL, stojí a padá na oné dobrovolnosti. Vývojový tým OpenSSL čítá do dvaceti programátorů. Další rutina především s kontrolou kódu je ponechána komunitě.

Jen největší naiva by si mohl myslet, že předtím než Codemicon odhalil chybu v OpenSSL a pojmenoval ji podle mechanismu, který zneužívá, o ní nikdo nevěděl. Spekuluje se o tom, že chybu zneužívala NSA a nejeden bezpečnostní expert se nechal slyšet, že samotná NSA může za touto chybou stát.

Infikovat software s otevřeným zdrojovým kódem je logicky mnohem jednodušší než se dostat do vývojového týmu v některé z velkých korporací a tam nepozorovaně do kódu vložit nenápadnou kritickou chybu. V hierarchii open-sourcových vývojářů panují pro takové počínání mnohem přívětivější podmínky.

I proto se v poslední době hovoří o velkých změnách, které by mohly ve vývoji softwaru nastat. Audity, které by nahlížely do zdrojových kódů kritických projektů by mohly být jistější cestou, než současná „komunitní“ kontrola.

Co je kvalitnější

Bezpečnostní firma Coverity se zabývá analýzou zdrojových kódů a odhalování chyb. Ač vznikla jako agentura při ministerstvu obrany USA, nyní pracuje nezávisle. V únoru tohoto roku byla koupena americkým gigantem Synopsys.

Každý rok analyzuje stovky milionů řádků kódů jak softwaru s otevřeným kódem, tak proprietárních aplikací. Právě z těchto analýz vznikla statistika za rok 2013, v níž mohla být porovnána na solidním vzorku kvalita obou softwarových řešení.

Mezi otevřené projekty, které Coverity analyzuje a hlásí chyby, patří i NetBSD, FreeBSD, LibreOffice, Apache Hadoop či Linux. Celkem jich za rok 2013 bylo 741 s celkovým počtem 252 milionů řádků zdrojového kódu. Mezi proprietárním softwarem byl vzorek tvořen celkem 493 projekty s 684 mililony řádků kódu.

Klepněte pro větší obrázek
Počty zkontrolovaných  řádků kódu a chyb v nich objevených

V tabulce si můžete prohlédnout jak informace o zkoumaných projektech včetně průměrné velikosti zdrojových kódů, tak výsledky. Nejpodstatnějším číslem je poslední řádek – počet objevených chyb na tisíc řádků kódu. Z výsledků tedy vyplývá, že 100 000 řádků open-sourcového programu obsahuje průměrně 59 chyb, kdežto u proprietárního softwaru je to 72 chyb. Tímto výsledkem skončila roční analýza poprvé. Do roku 2012 podle Coverity vždy platilo, že proprietární software obsahoval menší množství chyb.

Pokud patříte mezi C/C++ vývojáře, můžete se podívat i na nejčastější typy chyb, které se v kódu nejčastěji objevují.

Klepněte pro větší obrázek
Typy chyb, které se v kódu nejčastěji vyskytují

Coverity podrobuje pravidelným kontrolám i linuxové jádro. Do výsledků za rok 2013 byla zahrnuta analýza kernelu s označením 3.12. Obsahovala přes 8,5 mil. řádků zdrojového kódu, v nichž bylo nalezeno 3 299 chyb. Jak se vyvíjel počet chyb v jádře linuxu se můžete podívat v tabulce:

Klepněte pro větší obrázek
Takto je na tom s bezpečností Linux

Coverity nám statistikou za rok 2013 potvrdilo, že open-source může mít kvalitnější zdrojový kód s menším počtem chyb. O nalezených problémech v kódu se však ve většině případů nedá mluvit jako o bezpečnostních chybách. Z tabulky výše vyplývá, že jde o programátorské chyby jako jsou neinicializované proměnné nebo špatná práce s pamětí.

Heartbleed nám naopak ukázalo, že open-source v případě kritických bezpečnostních řešení nemusí být nejlepší volbou. OpenSSL patří k nejpoužívanějším šifrovacím knihovnám a až následující měsíce či roky nám ukáží, zda tomu tak bude i nadále nebo se vývoj open-source ubere novým směrem.

Témata článku: Programování, Linux, Bezpečnost, Open source, Screen

79 komentářů

Nejnovější komentáře

  • Tomáš Pavlík 30. 4. 2014 11:53:44
    Proboha, pane autore, nesmyslnější název článku jste vymyslet...
  • Michal Breškovec 23. 4. 2014 16:41:59
    Možná bych upřesnil malé matení pojmů v článku. Open Source není totéž co...
  • Petr Galansky 21. 4. 2014 23:47:52
    Media mají i vzdělávat. Článek je dobrý bulvár, pobavil jsem se. Psát...
reklama
Určitě si přečtěte

Facebook o nás ví vše. Díky dobře skrytému vyhledávači se to dozví i ostatní

Facebook o nás ví vše. Díky dobře skrytému vyhledávači se to dozví i ostatní

** Facebook o nás ví vše, protože mu to sami řekneme ** V jeho nitru se skrývá mocný vyhledávač ** Mohou jej zneužít stalkeři, sociální inženýři a další nezbedníci

16.  2.  2017 | Jakub Čížek | 76

Vybíráte herní periferii nebo hardware? Pak zapomeňte na nálepku Gaming

Vybíráte herní periferii nebo hardware? Pak zapomeňte na nálepku Gaming

** Herní hardware se od toho běžného často liší jen vzhledem ** Při výběru stále nezapomínejte na základní parametry ** Poradíme jak vybrat herní hardware i periferie

20.  2.  2017 | Stanislav Janů | 34

Pojďme programovat elektroniku: Žádný bastlíř se neobejde bez armády švábů

Pojďme programovat elektroniku: Žádný bastlíř se neobejde bez armády švábů

** Každý bastlíř se po čase neobjede bez armády švábů ** Dnes si některé z nich vyzkoušíme ** Třeba zázračný posuvný registr

19.  2.  2017 | Jakub Čížek | 37

10 nejhorších produktů v historii Microsoftu

10 nejhorších produktů v historii Microsoftu

20.  2.  2017 | Karel Javůrek | 127


Aktuální číslo časopisu Computer

Stavba 3D tiskárny

Výbava domácí elektrodílničky

Budoucnost 5G sítí

Velké testy microSD karet a vodních chladičů

Přehled mobilních tarifů

reklama
reklama