Zranitelnost

Z Wikipedie, otevřené encyklopedie

Zranitelnost (anglicky vulnerability) je v informatice označení pro programátorskou chybu, která v software 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ů, 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á.[2] 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,[3] 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í:

  1. 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
  2. zvýšení oprávnění lokálního uživatele – větší problém
    uživatel (proces) se může stát správcem
  3. 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:

  1. minimální odpad (low)
    zneužití je obtížné, nebo se jedná pouze o minimální dopad
  2. 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
  3. 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
  4. 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.[4] 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).

Reference

  1. 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
  2. http://nwoo.org/rservice.php?akce=tisk&cisloclanku=2013110079 - Šmírování NSA sráží USA business počítačových sítí
  3. http://www.pcworld.com/article/3020327/antivirus-software-could-make-your-company-more-vulnerable.html - Antivirus software could make your company more vulnerable
  4. https://threatpost.com/zero-days-have-staying-power/124190/ - ZERO DAYS HAVE STAYING POWER

Související články