Následné zneužití počítačů je pak, jak ukazují studie antivirových dodavatelů, dobře obchodovatelnou komoditou na černém trhu. Naštěstí se dá těmto hrozbám bránit pravidelným skenováním a odstraňováním zranitelností.
Ohrožení se přitom týká zařízení bez ohledu na to, zda je jeho uživatelem banka, velká mezinárodní společnost nebo malá firma. Přestože se mnoho výrobců snaží množství zneužitelných chyb vlastních systémů snižovat, celkově se jejich počet zvyšuje. Základní přehled o aktuálních bezpečnostních zranitelnostech poskytují veřejné portály, jako jsou například osvdb.org nebo nvd.nist.gov.
V současné době je zranitelností, které jsou aktuálně celosvětově zneužitelné, více než 70 tisíc. I dnes je na internetu mnoho produktů, které obsahují chyby i několik let staré a v mnoha případech dokonce opakovaně zneužité. Měsíčně se navíc objevuje více než 400 nových, a to u všech typů systémů a aplikací, u nichž hrozí plošné zneužití z internetu. Uživatel, který nemá přehled, jak jsou jeho systémy zranitelné, se může snadno stát obětí, protože neví, proti čemu se má vlastně bránit a jaká má provádět protiopatření. Velmi často se dokonce stává, že se o zneužití dozví až poté, kdy nemůže dělat nic jiného než řešit následky.
Nabízí se tedy otázka, jak získat přehled o zranitelnostech vlastního systému a jak je účinně odstranit. Pro tyto účely se zpravidla používají bezpečnostní skenery zranitelností. Ty pracují na obdobných principech jako technologie, které využívají útočníci – lze tedy předpokládat, že chyby, jež odhalí oprávněný uživatel, budou stejné, jaké může mít k dispozici hacker v případě pokusu o zneužití.
Princip skenerů zranitelností
Základem skeneru zpravidla bývá obvykle jádro, které má za úkol vyhledávat otevřené TCP a UDP porty, kterými se snaží komunikovat a identifikovat systémy, aplikace a služby, jejichž prostřednictvím komunikují. Následně se snaží testovat konkrétní zranitelnost.
Technologie, na jejímž základě se identifikují porty, služby a chyby, se u různých skenovacích jader liší. Rozdíly jsou patrné například u těch, které jsou určeny k plošnému zkoumání, a systémů, jež jsou naopak vhodné pro „manuální“ kontrolu vybraných systémů.
U plošných skenerů se test zpravidla provádí méně než deset minut. U specializovaných systémů zase může test jednoho zařízení trvat i několik dní. Odhalení konkrétní zranitelnosti je přitom založeno na porovnávání signatur, které jsou do příslušné databáze vkládány obdobně, jako je tomu například u antiviru nebo IPS (Intrusion Prevention System). Rozdílem je to, že zdrojem pro tvorbu těchto signatur jsou hlavně veřejné zdroje publikující zranitelnosti (bezpečnostní databáze, výrobci systémů, portály atd.).
Skenery zranitelností mohou obvykle pracovat v režimu destruktivním a nedestruktivním. Testy v prvně jmenovaném modu se zpravidla používají pro „manuální“ a hloubkové zkoumání vybraných zařízení a provádějí se výhradně za asistence IT oddělení. Při těchto kontrolách může dojít například k mazání či přepisování dat, k odstavení systému nebo dokonce k takovému narušení systému, kdy je nutné systém uvést do výchozího nastavení. Na druhou stranu bývá tato forma poměrně přesná a používá se jako výchozí podklad pro takzvané penetrační testy. Pro vyhledávání zranitelností se však mnohem častěji realizuje nedestruktivní systém, který zpravidla nijak neohrožuje testované zařízení.
Skenery zranitelností pokrývají většinu dnes používaných platforem v prostředí internetu (jde třeba o platformy Cisco, Linux, Microsoft atd.) a stejně tak i služeb (například Apache, IIS, Postfix, MS Exchange apod.) a zařízení (mimo jiné servery, firewally, routery, VOIP brány, modemy atd.).
Detekci zranitelností ale mohou ztížit některé technologie, které používají například systémy IPS/IDS či firewally. V případě, že detekují řešení, jež hledá chyby, mohou způsobit zkreslení výsledků příslušného testu. Často například také zapříčiňují prodlužování odezvy testovaného zařízení a prodlužují testování dokonce až na desítky hodin.
Specifickou kategorií jsou pak skenery zranitelností webových aplikací. U nich totiž nelze při tvorbě signatur vycházet z veřejně publikovaných chyb. Zde platí: „Co aplikace (programátor), to jiná variace možných problémů“. Proto je většina skenerů zaměřena spíše na obecné chyby, jako jsou například některé „XSS“ a „SQL injection“. Výsledky takových testů mají ale spíše orientační informační hodnotu. Pro podrobnější zkoumání je vhodnější zvolit některou z „manuálních“ metod, například na bázi systému OWASP.
Obecně je ale kvalita těchto kontrolních řešení na velmi dobré úrovni. Uživatel tak může získat obdobný přehled o zranitelnostech, jaký může získat útočník.
Detekce vlastních chyb
Další informací, která má pro uživatele velký význam, je hodnocení chyb objevených přímo v jeho zařízení. K tomuto účelu se zpravidla používá CVSS (systém pro bodování zranitelností). Výsledek je reprezentován pomocí skóre, které je složeno z hodnocení hlavních kritérií (směr přístupu, složitost přístupu, autentizace, dopad na důvěryhodnost, dopad na integritu a dopad na dostupnost). Hodnoticím parametrem je tedy číslo v rozmezí 0–10, které udává závažnost detekované zranitelnosti (rozmezí 0,0–3,9 představuje nízkou hrozbu, 4,0–6,9 je střední riziko a konečně 7,0–10,0 značí vysoké ohrožení).
Na základě určené závažnosti má uživatel možnost zvolit prioritu řešení. To pomáhá i při rozhodnutích, kdy zranitelnost není natolik závažná a náklady na její odstranění by byly stejné nebo větší než případný dopad zneužití. V takových případech je vhodné chybu prohlásit za akceptovatelnou a další opatření už dál neřešit.
Dalšími velmi cennými informacemi bývají doporučení, jak detekovanou zranitelnost odstranit, i s případnými odkazy na externí návody, které detailně popisují konkrétní řešení. U složitějších systémů se stává, že nelze postupovat podle obecných doporučení, a je nutné se obrátit přímo na výrobce příslušného produktu a konzultovat s ním postup, který vede k odstranění chyby.
Uživatel má také možnost využívat podrobné popisy zranitelností, odkazy na oficiální zdroje, kde může o odpovídajících chybách nalézt maximum informací. Ty bývají také standardní součástí výstupu ze skenerů zranitelností.
Závěrem
Obecně lze doporučit spíše pravidelné periodické vyhledávání zranitelností než jednorázový test. Ten totiž nepokryje nové chyby, časté aktualizace systémů (každá z nich může obsahovat další problémy) a rekonfigurace (ty se také často podílejí na vzniku nebezpečného stavu).
Pro pravidelné kontroly se dnes používají systémy pro vyhledávání a správu zranitelností. Pomocí nich si uživatel může naplánovat pravidelné zhodnocení a také se nemusí aktivně zabývat samotným testováním. Zařízení jsou kontrolována automaticky a o každé nově objevené zranitelnosti je okamžitě informován příslušný správce či uživatel. Tyto systémy rovněž zpravidla umožňují sledovat čas mezi objevením chyby a jejím odstraněním.
Přestože jde o efektivní způsob preventivní ochrany všech uživatelů internetu, povědomí o něm mezi lidmi je stále poměrně nízké. Správa zranitelností bývá mimo jiné i součástí mnoha mezinárodních doporučení a norem, které se zabývají bezpečností informačních technologií. Dnes už dokonce není výjimkou ani to, že některé státy mají přímo v zákoně zakotvenou povinnost monitorovat zranitelnosti zařízení používaných ve státní správě.
Autor pracuje jako technický ředitel Eset Network Services.