Mnoho společností produkujících komerční software a interních podnikových vývojářů chrlí aplikace, které jsou ze své podstaty nezabezpečené v důsledku překotného a často nekontrolovaného použití komponent open source.
Ještě horší je, že tito tvůrci softwaru nedokážou v důsledku špatných postupů práce s inventářem kódu říci, a to i kdyby chtěli, které jejich aplikace jsou ovlivněné známou chybou komponenty.
Minulý rok stáhly velké softwarové a finanční společnosti průměrně 240 757 komponent z jednoho z největších veřejných open source repozitářů Java komponent. Více než 15 tisíc těchto komponent, jinak také 7,5 procenta, mělo známé zranitelnosti, uvádí společnost Sonatype, která zmíněný repozitář spravuje.
Sonatype provozuje hostingovou infrastrukturu tohoto repozitáře, který je známý jako Central Repository, ale nehlídá to, co se dostává dovnitř a ven. To spadá pod odpovědnost komunity open source vývojářů, kteří do něj přispívají komponentami – každý odpovídá za své vlastní výtvory.
Central Repository je výchozím repozitářem pro Apache Maven, SBT a další vývojářské nástroje softwarové platformy jazyka Java.
Samostatná analýza nejlepších 100 komponent stažených v minulém roce 29 velkými společnostmi poskytujícími finanční služby či technologie ukázala, že tyto firmy používaly v průměru 27 různých verzí jednotlivých komponent.
To znamená, že většina z nich používala ve svých aplikacích zastaralé, méně funkční a potenciálně zranitelné verze komponent, uvedla společnost Sonatype ve své zprávě o stavu řetězce dodavatelů softwaru.
V jednom případě stáhli vývojáři pracující pro společnost nabízející finanční služby v průběhu roku 51 z 58 verzí dostupných pro aplikační framework Spring.
Zlá organizace práce
To vše ukazuje na špatný způsob práce s inventářem softwaru ve většině společností, které vyvíjejí aplikace pro vlastní potřebu nebo pro ostatní. Tento problém přitom není nový, ale zjištění společnosti Sonatype naznačují, že se to zhoršuje s tím, jak roste úroveň a rychlost používání open source komponent.
V roce 2014 použilo Central Repository více než 100 tisíc organizací a došlo k obsloužení 17,2 miliardy požadavků na stažení, což je o třetinu více než v předchozím roce. Tento repozitář hostí 217 tisíc komponent, které dohromady tvoří více než 830 tisíc verzí.
Existuje disciplína dodavatelského řetězce, jak by měly společnosti z různých oborů pracovat se zdroji svých komponent a sledovat místo jejich použití. Obor vývoje softwaru ji však dosud nepřijal, upozorňuje Joshua Corman, technologický ředitel firmy Sonatype.
Společnosti vyvíjející software si užívaly luxusu, že se o to dlouhou dobu nemusely starat, ale jejich zvýšená závislost na kódu třetích stran v kombinaci s nárůstem cílených aktivit útočníků vytvořily významné riziko pro software a infrastruktury, na kterých všichni závisíme, poznamenává Corman.
Sonatype zjistila, že více než šest procent žádostí o stažení z Central Repository bylo v roce 2014 u verzí komponent, které obsahovaly známé zranitelnosti. Přezkoumání více než 1 500 aplikací ukázalo, že v době jejich vývoje a vydání měla každá z nich průměrně 24 vážných či dokonce kritických nedostatků zděděných z použitých komponent.
A situace se zhoršuje, protože mnoho komponent má dílčí komponenty od třetích stran. Když tedy vývojáři importují konkrétní komponentu do svých aplikací, automaticky tím přidají všechny její závislosti, které mohou mít své vlastní chyby.
Jakmile si zranitelnost najde cestu do aplikace přes závislost komponent, je vysoká pravděpodobnost, že tam zůstane velmi dlouho, možná navždy.
V analýze z minulého roku společnost Sonatype zjistila, že vývojáři komponent open source opravili chyby v jejich přímé závislosti jen ve 41 procentech případů, a to přestože byla střední doba ponechaná na opravu 390 dní.
Cesta k nápravě
Dobrou zprávou je, že softwarový průmysl nemusí znovu vynalézat kolo a může si půjčit metody dodavatelského řetězce z jiných oborů. Klíčem je však automatizace, protože je nemožné, aby firmy ručně kontrolovaly komponenty používané svými vývojáři. Navíc je nutné vynucovat zásady bezpečného používání podle úrovně užívání kódu třetích stran.
Existují specializované produkty, které je možné používat k vytváření inventáře materiálu tvořícího software. Tyto produkty mohou omezit, jaké konkrétní verze komponent smějí vývojáři v organizaci používat a od jakých konkrétních dodavatelů, protože někteří jsou co do opravy zranitelností svých komponent lepší než jiní...
Tento příspěvek vyšel v Security Worldu 4/2015.Oproti této on-line verzi je výrazně obsáhlejší a přináší další poznatky a tipy, které lze využít při praktické implementaci u vás ve firmě.
Časopis (starší čísla i předplatné těch nadcházejících) si můžete objednat na adrese našeho vydavatelství.