Děr v brnění většiny podnikových webů je mnoho – včetně znovu se objevujících děr v OpenSSL, PHP či WordPressu. Příčinou je do značné míry kombinace rozsáhlých úprav společně s nedostatkem testování a opravování zranitelností ve srovnání s tímtéž u dlouho existujícího komerčního softwaru operačních systémů.
„Primární příčinou pro trvalé a opakující se zranitelnosti webů (a webových aplikací) je podstata těchto technologií, která sahá od rozsáhlých úprav až po kompletní vývoj vlastními silami,“ popisuje David J. Venable, certifikovaný bezpečnostní profesionál (CISSP) a šéf společnosti Masergy Communications, který dříve pracoval pro agenturu NSA.
Výsledkem jsou do značné míry neotestované weby a aplikace, které neprocházejí stejně přísným důkladným testováním jako většina komerčního softwaru, jako jsou například operační systémy či různé serverové balíky.
Ve skutečnosti se objeví ve webech a webových aplikacích více zranitelností než kdekoliv jinde v podniku. Tyto bezpečnostní díry se vyskytují ve webech PHP, v softwaru třetích stran i v interně vyvinutém softwaru, v kódu a instalacích WordPressu stejně jako v implementacích a technologiích OpenSSL, SSO (jednotné přihlašování), SQL a LDAP.
Weby PHP, které používají software třetích stran, mají vlastní zranitelnosti v důsledku toho, že jde o vývoj aplikací třetími stranami mimo vliv postiženého podniku.
„Můžete si navrhnout svůj web tak, že je veškerý vámi vytvořený kód naprosto bezpečný, ale potom pokud pro cokoli použijete software třetích stran, zdědíte všechny zranitelnosti, které v něm mohou existovat,“ varuje Joe Sremack, šéf společnosti Berkeley Research Group.
WordPress je rostoucí problém, protože weby, které stavějí malé až středně velké podniky, ho stále častěji integrují společně s jeho nesčetnými moduly plug-in vyžadujícími neustálé aktualizace.
„Firmy chtějí funkčnost WordPressu, ale s ním bohužel přichází také riziko,“ varuje Sremack.
OpenSSL má problémy neustále. Jak lidé implementují do této technologie další vylepšení, vytváří to nové zranitelnosti, které mohou útočníci objevit a zneužít.
Útočníci stále zneužívají nové a staré zranitelnosti OpenSSL v rámci velkých průlomů, které nastávají několikrát ročně. Mnohé zdánlivě nové díry ale byly ve skutečnosti staré, které dosud nikdo nezjistil, vysvětluje Sremack.
I když programátor vytvoří jinak zabezpečený web, dělá to na základě zranitelností, o kterých ví, nikoli těch, na něž ještě nikdo nepřišel. V reálném životě se vždy objeví nějaké nové zranitelnosti.
Zranitelnosti prostřednictvím injektáže jsou stále běžné a útočníci se přizpůsobili, tak aby je mohli využívat při rostoucí popularitě jednotného přihlašování.
„Jednotné přihlašování je velmi populární v hotelích, kde si lidé kontrolují své účty a získané body. Nové techniky injektáže LDAP útočí na zranitelnosti a předávají parametry do kódu s cílem zmocnit se webových relací,“ vysvětluje Sremack.
Dalším vektorem útoku na weby jsou místní a vzdálené inkluze souborů. „Kód webové stránky může volat soubory buď na lokálním serveru, nebo na vzdáleném veřejném serveru.
Použitím injektážní techniky mohou útočníci způsobit, že web zobrazí informace ze souboru hesel či seznam uživatelských jmen na webovém serveru nebo mohou spustit jimi požadovaný kód,“ popisuje Sremack. Volání kódu z webu je také způsob, jak se útočník může dostat dovnitř.
Opravy děr
„Podniky musejí dodržovat osvědčené bezpečnostní postupy, jako jsou například ty od projektu Owasp (Open Web Application Security Project), a to od úplného počátku vývojového procesu,“ tvrdí Venable.
Veškeré testování včetně posudku webových aplikací, penetračních testů a statické analýzy by mělo nastat před produkcí, po jakékoliv změně kódu a alespoň jednou ročně, prohlašuje Venable.
Podle něj by se měly weby a webové aplikace chránit pomocí webových aplikačních firewallů (WAF) a systémů IDS (systémy detekce narušení) a používat nepřetržitě (24 x 7) pracující monitorovací tým, aby se zjistily a odrazily útoky v reálném čase.
„Během vývoje zapojte tým zabezpečení do vykonávání pravidelných testů dotyčného kódu a funkcí,“ radí Sremack. Pokud podnik aktualizuje současný web, použijte bezpečnostní tým k otestování a zajistěte, aby přidané funkce nepřipojily zranitelnosti.
Vývojové týmy by také měly spouštět kontroly a testy, aby tak izolovaly zranitelnosti a odstranily je.
„Raději, než abyste něco v oblasti zabezpečení vyvíjeli, testujte pomocí stejných nástrojů, jako jsou Grabber, W3AF a Zed Attack Proxy, které používají útočníci k prolomení webových stránek,“ radí Sremack.
Kdokoliv, dokonce i s malou znalostí zabezpečení nebo bezpečnostních nástrojů, může tyto aplikace použít, a získat tak přehled o webových zranitelnostech na základě výsledků zmíněných testů. Podniky však časem budou muset přidělit k této činnosti nějaký vhodný personál.
„Vývojáři by se měli zabývat tím, jak vytvářet a spravovat webové relace, zejména jak kontrolovat všechny vstupy, které relace předávají přes web, ať už prostřednictvím URL nebo přes vstupní pole,“ tvrdí Sremack, „a potom kontrolovat kód třetích stran, zda neobsahuje nějakou zranitelnost, a sledovat, jestli jejich dodavatel neoznámil existenci nějakého záškodnického kódu.“
Jaká jsou doporučení?
Čím je web větší a jeho funkčnost a viditelnost vyšší a čím více se používá software třetích stran, tím nákladnější bude i proces redukce obsažených zranitelností...
Tento příspěvek vyšel v Security Worldu 3/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í.