Zranitelnost
Zranitelnost (anglicky vulnerability) je v informatice označení pro programátorskou chybu, která v software nebo v hardware způsobuje bezpečnostní problém. Je-li v programu přítomna chyba způsobující zranitelnost, označuje se její uskutečnitelné využití jako exploit. Útočník využívá zranitelnost pro ovládnutí počítače nebo jiný prospěch (instaluje internetového robota, počítačový virus a podobně).
Příčiny
Příčin zranitelnosti je několik. Jejich pravděpodobnost výskytu roste s růstem komplexnosti (novosti) hardware a software. Takzvaná „smart“ zařízení tak bývají zranitelná (Hyppönenův zákon). S časem roste tak i počet útoků, které cílí především na běžný software.[1] Také úmyslná politika výrobců (vulnerability-by-design), preferujících funkcionalitu (default permit) a automatické funkce (například ukládání a spouštění kódu bez povolení uživatelem) před bezpečností (default deny), způsobuje nekontrolovatelné šíření malware a vzdálený přístup k zařízení a osobním údajům (HTTP cookie). Zadní vrátka mohou být také úmyslná. Lidský faktor (například spouštění software s přílišnými právy či slabá uživatelská hesla) je také značným zdrojem zranitelnosti. Tedy obecně komfort z hlediska programátorského či uživatelského vede i k usnadnění zneužití. Tomu má například bránit Trusted Computing, chránící hardware před útoky i před uživatelem samotným.
Protiopatření
Někdy zvané pouze jako „opatření“ je pojem, který se používá v řízení rizik pro označení čehokoliv, co je navrženo pro zajištění větší bezpečnosti (snížení hrozby a zranitelnosti), tedy snížení rizika. Protiopatření se dělají na základě analýzy rizik.
Audity
Pro minimalizování zranitelnosti se provádějí audity, tzn. ověřuje se bezpečnost daných kódů, vhodné je i využít Linusův zákon. Jedná se o velmi komplikovanou záležitost, protože čím rozsáhlejší projekt auditujeme, tím více se to stává nemožné. Audity mají význam zejména na malých částech zdrojového kódu, jinak se provádí jenom jako čistě formální záležitost. Stačí doložit funkčnost softwaru, přesně tak, jak si představuje auditor.
Problém v ověřování nastává v případě, že je třeba provést audit u uzavřeného kódu (typicky komerčního), do kterého není přístup. Provádí se certifikace systému podle specifikace, většinou čistě formální záležitost. Existují systémy, kde se certifikace provádějí pečlivě. Takový nejrozšířenějším systémem je OpenVMS využíván především ke komerčním účelům, kde je více správců, čímž se zajišťuje bezpečnost. Penetrační testy se typicky nedělají, ale získávají větší oblibu.
Audit funkce a nastavení systému zajišťuje, že přidělená oprávnění musí být vždy minimální nutná. Pro splnění bezpečnostních požadavků systému je důležité zaznamenávat a analyzovat jeho činnost. Proto musíme vše logovat a výsledné logy archivovat, aby šla následně provést forenzní analýza. Protože pokud dojde k problému či chybě, je nutné najít původce tohoto nedopatření, a proto je nejlepší logy posílat na vedlejší počítač, kde jsou v případě cracknutí hlavního počítače zachovány.
Webové aplikace si správci webů mohou nechat zdarma ověřit službou Skener webu (skener zranitelností webů), kterou provozuje správce české domény CZ.NIC, z.s.p.o.
Nastavení systému
Využívá se metody minimálního oprávnění, kdy se každému kódu nastaví jen oprávnění, která potřebuje na svou funkci. Například internetový prohlížeč nepotřebuje oprávnění správce. Bohužel nelze jednoznačně určit, jaká jsou minimální oprávnění pro daný kód, proto se omezují z větší části pouze nejdůležitější oprávnění, např. administrátor.
Dlouhodobá analýza
Daný kód se uvede do činnosti a po určitou dobu se sleduje jeho chování – chyby či slabá místa. Zjištěné informace se dále využívají pro nápravu.
Aktualizace
Částečnou ochranou proti zranitelnosti je i průběžná instalace aktualizací. Pro následnou detekci zneužití zranitelnosti se využívají antivirové programy. Ty ale mohou zvýšit zranitelnost,[2] protože mj. zvyšují výše uvedenou komplexnost.
Klasifikace zranitelností
Celosvětově není sjednocena, každý softwarový dům si hodnotí podle svého, tak aby mu to vyhovovalo. Firmy Red Hat a Microsoft používají po dohodě stejné názvy.
Obecně se zranitelnost klasifikuje do třech úrovní:
- ohrožení na úrovni uživatele – nejmenší riziko
- chyby v programech (poškození dat, krádež citlivých údajů), například pokud nám někdo ukradne e-mailové adresy a začne na ně rozesílat spamy
- zvýšení oprávnění lokálního uživatele – větší problém
- uživatel (proces) se může stát správcem
- vzdálený přístup do systému – největší riziko
- přístup neautorizovaného uživatele do systému přes síť
- útočník se nejprve nemusí stát lokálním uživatelem, aby získal potřebná oprávnění ke vstupu do systému
Red Hat a Microsoft Windows
Tyto dvě významné firmy rozlišují ještě další 4 úrovně, na kterých se společně dohodli:
- minimální dopad (low)
- zneužití je obtížné, nebo se jedná pouze o minimální dopad
- průměrné (moderate)
- zneužití se zmírněno implicitním nastavením, obtížností, auditováním (záznamem operací)
- k problému může dojít, ale jsme schopni ho včas detekovat a postarat se o včasný zásah
- důležité (important)
- ohrožení uživatelských dat nebo systémových prostředků
- například nám někdo nainstaluje do počítače malware, který začne rozesílat spam
- kritické (critical)
- ohrožení síťovým červem bez účasti uživatele
- vzdálený útok, kdy se do počítače dostaneme zvenku
V podrobnějším popisu Red Hat zjistíme, že v tomto ohledu je tato firma na sebe velmi tvrdá. Naplnění těchto jednotlivých bodů je velmi různé a můžeme vidět, že věci, které Microsoft vidí jako low jsou u Red Hat posuzovány jako moderate.
Databáze zranitelností
CVE (Common Vulnerabilities and Exposures)
CVE spravuje společnost MITRE Corporation. Databáze pocházející z Ameriky a dostávají se sem identifikátory problémů i o operačních systémech.
CERT (Computer Emergency Response Team)
CERT pracuje pod hlavičkou univerzity Carnegie Mellon v USA. Zabývá se pouze bezpečnostními problémy Internetu. Každý stát, který se chce zviditelnit, disponuje svojí vlastní organizací, která poté spolupracuje s americkou univerzitou.
Zveřejnění zranitelnosti
Úplně neodstraňuje riziko hrozby, ale alespoň částečně omezuje.
Úplné zveřejnění
Jedná se o úplné odhalení bezpečnostního problému. Zdrojový kód exploitu je zcela k dispozici, aby si jej mohli všichni vyzkoušet. Zpravidla se do exploitu zanášejí netriviální chyby a po stažení z internetu nefunguje, až do provedení malých oprav, kdy se vše opět stává funkční. Tento způsob ověří, že víme o co se jedná a je to také ochrana proti script kiddie. Protože lidé, kteří něco stáhnout z internetu, se hned tváří jako hackeři, protože ve skutečnosti nevědí, že jsou crackeři. Je tu velké riziko pro koncové uživatele, protože zveřejněním exploitu se dá zneužít.
Zveřejnění citlivým způsobem
Snaha informovat vývojáře takovým způsobem, aby mohli reagovat na daný problém a v co nejkratší možném čase ho opravit, otestovat a uvolnit aktualizaci. Tato doba se vývojářům udává v rámci dnů, týdnů, či měsíců v závislosti na závažnosti problému.
Existují uzavřené skupiny lidí s dobrou pověstí, které mají k dispozici databázi chyb. Ovšem to neznamená, že by nikdo z nich nemohl vynést ven nějakou důvěryhodnou informaci a tím umožnit tajným službám některých států její zneužití. Proto je snaha zkrátit tuto dobu pro vývojáře co nejvíce, jedná se o způsob omezení, ale nedokáže úplně odstranit riziko zneužití.
Využití zranitelnosti
Zranitelnost běžně přetrvává několik let.[3] Využít zranitelnost dokáže speciální program, tzv. Exploit. Exploit má vždy náskok před aktualizacemi, což bývá největší problém. Většinou se exploit vyskytuje ve formě skriptu pro masivní útok (necílený útok, hledání zranitelného počítače a následná snaha o elevaci).
Příklady
Roku 2018 byly zveřejněny údaje o mikroprocesorových zranitelnostech Meltdown a Spectre využívajících spekulativní provádění.
Reference
- https://www.kaspersky.com/about/press-releases/2017_era-of-exploits-number-of-attacks--using-software-vulnerabilities-on-the-rise - Era of exploits: number of attacks using software vulnerabilities on the rise
- http://www.pcworld.com/article/3020327/antivirus-software-could-make-your-company-more-vulnerable.html - Antivirus software could make your company more vulnerable
- https://threatpost.com/zero-days-have-staying-power/124190/ - ZERO DAYS HAVE STAYING POWER