O kritických zranitelnostech komerčních aplikací

Software je všude. I tam, kde by ho člověk nečekal. A málokdo z nás ví, jak většina z programů, které denně využíváme vlastně funguje. Je na ně spolehnutí i v oblasti bezpečnosti?

Některé organizace jsou ve své digitalizaci dál, jiné se teprve na tuto cestu v blízké budoucnosti vydají. Snad každý podnik ale využívá ke svému chodu nějaký druh softwaru. Může jít o složitou platformu, komplexní řešení, ale také třeba jen o nainstalovaný program na firemním notebooku, nebo třeba aplikaci v chytrém telefonu.

Software je všude. I tam, kde by ho člověk nečekal. A málokdo z nás ví, jak většina z programů, které denně využíváme, vlastně pracuje. Sdílíme pomocí nich soubory, komunikujeme, řešíme pomocí nich poštu osobní i pracovní. Co se ale v řádcích kódu těchto aplikací skrývá a jestli jsou bezpečné, to se můžeme jen domnívat.

Na skrytá nebezpečí a nedokonalosti v komerčně běžně dostupném softwaru si posvítila nedávná studie společnosti Osterman Research. Ta zjistila, že mnohé zranitelnosti běžných programů se nacházejí v samém jádře jejich programového kódu a zůstávají nám uživatelům skryté. A dokonce že mnozí vývojáři těchto programů o zranitelnostech vědí.

Výsledky studie jsou opravdu alarmující. Podle analýzy obsahovaly všechny testované komerční aplikace a programy bezpečnostní chyby. A co hůř, nejméně 85 % z nich obsahovalo alespoň jednu zranitelnost, kterou dotázaní bezpečnostní experti označili za „kritickou“. Výzkum se zaměřil na nejzranitelnější nástroje: webové prohlížeče, e-mailové klienty, komunikátory a platformy pro sdílení souborů. Zranitelnosti byly zjištěny u všech typů aplikací a softwarových produktů, a to jak placených, tak i dostupných zdarma.

Problém je v samém jádru softwaru

Nejvíce pochybení našli experti v kódech programů, které uživatelům dovolují si je personalizovat, tedy přizpůsobit. Typicky jde o webové prohlížeče, které si můžeme vizuálně upravit pomocí různých motivů, nebo přidat funkce skrze pluginy. Dalo by se nyní říct, že problém způsobuje příliš otevřená architektura těchto programů, ale to není úplně pravda. Kritické zranitelnosti se totiž našly i v programech s uzavřenou architekturou. Tedy i v těch, které si nainstalujete přes bezpečné obchody, jako je Google Play nebo App Store od Applu, a problémy jsou i v linuxových programech.

Ptáte se, jak je to možné? Důvodem je postup vývojářů už při samotném psaní programového kódu. Vývojáři si běžně usnadňují práci tím, že místo psaní vlastního programového jádra použijí část kódu nebo funkce z jinak zdarma šiřitelného softwaru (open-source). Tuto část kódu potom přizpůsobí pro účely své aplikace. Třebaže je tato část kódu kompatibilní s jeho zbytkem (a přidává například potřebnou funkcionalitu), v mnoha případech zcela „nedosedá“ na zbytek kódu a nechává určitý prostor pro zneužití – vytváří zranitelnost.

Co uživatel nevidí, to ho nepálí

Tato běžná praktika zrychluje vývoj softwaru a sama o sobě není problémem. Jenomže analýza také odhalila, že naprostá většina těchto zranitelností nemůže být pro vývojáře aplikací neznámá. Zranitelnosti se nacházejí v samých základech programového kódu aplikací a často je open-source kód použitý bez jakýchkoliv bezpečnostních úprav. Vývojáři, kteří takový kód použijí, si problém od první chvíle musejí zcela jistě uvědomovat. Protože je ale tato zranitelnost v samotném jádru kódu, její pozdější odstranění by vyžadovalo přepsat celý programový kód.

Experti zprávu končí jednoznačným a pragmatickým doporučením. Uživatelé by se neměli spoléhat na bezpečnost svých aplikací a programů, ale využívat efektivní a aktivní ochrany. Antivirus je samozřejmostí, ochrana firewallu také, ať už jsou to nástroje komerční, nebo zdarma. Jakákoliv ochrana je stále lepší než důvěra v bezpečnost programů, do jejichž algoritmů a kódů jako běžní uživatelé nevidíme.