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: Bezpečnost, Linux, Programování, 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...
Určitě si přečtěte

Operační systém běžným počítačům nedal Bill Gates, ale Gary Kildall

Operační systém běžným počítačům nedal Bill Gates, ale Gary Kildall

** Gary Kildall pochopil, že levné výpočetní čipy mohou posloužit jako univerzální počítače pro všechny ** Připravil pro ně proto první operační systém ** Později mu systém vyfoukl Microsoft a nazval ho MS DOS

23.  4.  2017 | Pavel Tronner | 56

Umělá inteligence je sice v plenkách, už teď ale přestáváme rozumět, jak vlastně funguje. To je problém

Umělá inteligence je sice v plenkách, už teď ale přestáváme rozumět, jak vlastně funguje. To je problém

** Už je to tady, lidé přestávají chápat počítače ** Systémy neuronových sítí začínají pracovat tak, že ani jejich tvůrci přesně neví, co se uvnitř děje ** Do budoucna to může být závažný problém

24.  4.  2017 | Jakub Čížek | 112

Před 35 lety měl premiéru legendární počítač ZX Spectrum. Připomeňte si „Gumáka“

Před 35 lety měl premiéru legendární počítač ZX Spectrum. Připomeňte si „Gumáka“

** Slavný osmibitový počítač Sinclair ZX Spectrum byl uveden právě před 35 lety ** Připomeňte si tento průkopnický počítač v tematických článcích ** Podívejte se, jak funguje dnes

23.  4.  2017 | Pavel Tronner | 13

Správný počítač má alespoň dva monitory. Anebo je to jinak?

Správný počítač má alespoň dva monitory. Anebo je to jinak?

** David si nedokáže představit práci bez dvou a více monitorů ** Kubovi naopak stačí jeden a ve více displejích se ztrácí ** Jaký přístup je lepší?

23.  4.  2017 | Jakub Čížek | 59

Brněnské soudy daly stop Uberu. Je to dobře, nebo krok zpět?

Brněnské soudy daly stop Uberu. Je to dobře, nebo krok zpět?

** Před několika měsíci začal Uber nabízet své služby i v Brně ** Nyní ale narazil, soudům se to totiž nelíbí ** Má sdílená ekonomika dostat zelenou?

22.  4.  2017 | Jakub Čížek | 28


Aktuální číslo časopisu Computer

Supertéma: moderní cestování

Kdy opravdu přijdou nové baterie?

Velké testy: 6 herních notebooků a 8 volantů

Recenze: AMD Ryzen řady 5