0

Když jde o bezpečnost, je lepší open-source nebo proprietární software?

V USA existuje bezpečnostní firma Coverity, která má blízko k ministerstvu obrany, i když vystupuje jako nezávislá firma. Náplní práce téhle firmy je mj. sestavování něčeho jako „statistik bezpečnosti software“. Dělají to tak, že vezmou zdrojové kódy mnoha programů a projedou je automatickým analyzátorem, který odhalí programátorské chyby a nedostatky. Letos z této jejich práce vznikla mj. statistika, porovnávající bezpečnost proprietárního a open-source SW.

Open-source? Proprietární SW? Co to je?

Existují dva  hlavní přístupy k vývoji SW.

  • Open-source: Zdrojové kódy i celá analýza a dokumentace vývoje jsou veřejně k dispozici na internetu a kolem tohoto zdroje informací se vytváří dobrovolná skupina vývojářů, která postupně vyvíjí resp. rozvíjí příslušný produkt. Zdrojové kódy jsou tak analyzovány a doplňovány lidmi z různých koutů světa, kteří mají o danou problematiku zájem. Také, díky veřejné dostupnosti zdrojových kódů, existuje spousta lidí, kteří práci dobrovolných vývojářů kontrolují a upozorňují na chyby.
  • Proprietární nebo také closed-source software: Vzniká pro nás standardnější cestou, kdy softwarová firma zaměstná programátory a tito potom za zavřenými dveřmi vyvíjejí příslušný produkt. Zdrojové kódy jsou v tomto případě zásadně neveřejné, protože představují vlastně ono dílo resp. majetek zaměstnavatele, za jehož vytvoření programátorům platí jejich mzdu a který následně prodává zákazníkům.

Z letošní statistiky firmy Coverity vyplývá, že na jimi zkoumaném vzorku v roce 2013 bylo méně chyb v open.source softwaru.

Znamená to, že open-source je bezpečnější? Má tahle informace vůbec nějakou vypovídací hodnotu?

Řekl bych, že moc velkou vypovídací hodnotu tato statistika nemá a že ji Coverity dělá spíš tak nějak pro to, aby vykázali činnost a zasloužili si svou mzdu. Proč si to myslím?

  • Vzorek programů, který pro analýzu použili, je poměrně malý. Z oblasti open-source obsahuje spíše menší projekty. Tedy už vypovídací hodnota vzorku dat je přinejmenším diskutabilní.
  • Automatická analýza zdrojového kódu odhaluje spíše formální nedostatky a programátorské překlepy. Bezpečnostní chyby však bývají většinou způsobeny chybou analýzy a návrhu řešení.

Předpokládám, že v různých médiích bude hodně komentářů statistiky od Coverity, ale pro mně je její vypovídací hodnota z výše uvedených důvodů blízká nule, bohužel.

A jaký je můj názor na otázku, položenou v nadpisu? Vidím to takhle:

  • Kvalita a bezpečnost vyvíjeného softwaru závisí především na profesionalitě programátorského týmu, úrovni jeho vedení a důrazu, jaký je kladen na kontrolu výsledků. A je jedno, jestli je tým tvořen open-source komunitou nebo zaměstnanci softwarové firmy.
  • Pokud programátoři udělají ve vývoji chybu nebo třeba záměrně nechají „zadní vrátka“, je při open-source přístupu o dost větší pravděpodobnost, že se na to přijde.
  • Je dost příkladů z praxe, kdy v proprietárním a drahém softwaru renomovaných firem byly nalezeny naprosto zásadní bezpečnostní díry, protože se holt šetřily náklady ve vývoji.
  • V poslední době je ale také dost případů, kdy byla zjištěna infiltrace agentů nebo jiných darebáků do open-source týmu za účelem vnesení bezpečnostní díry, kterou by potom „investor“ onoho darebáka mohl využívat.

Suma sumárum: Přes všechna pro a proti věřím, co se bezpečnosti týče, více open-source produktům. A nejsem rozhodně sám, stačí si přečíst blogy a komentáře adminů velkých firem. Ono totiž udělat nějakou lumpárnu při open-source vývoji je něco, jako loupež za bílého dne a pod dohledem policejních kamer. A pokud bezpečnostní díra vznikne pouze chybou programátora nebo kontrolního týmu? Jsem si jistý, že pak jsou si všechny metody rovny, protože chyby děláme všichni.

 

 

 

Filip Zubík

Filip Zubík