fb
IT Systems 4/2019 IT Security 22. 5. 2019 10:00

Modelování rizik zranitelností s CVSS

CVSSCo si představíte, když se řekne kritická zranitelnost? Co si představíte, když se řekne závažná zranitelnost? Představí si váš kolega to samé? Odpověď na takové otázky bude bez nějakého pevného měřítka jistě značně subjektivní. Ať už se jedná o zranitelnosti ve vlastním produktu nebo nástrojích a systémech používaných v rámci organizace, dříve či později nastane moment, kdy bude nutné se s riziky vyplývajícími ze zranitelností nějakým způsobem vypořádat. V takovém okamžiku by se nám jednotné měřítko pro hodnocení těchto rizik opravdu hodilo, neboť by nám umožnilo snáze určit, s jakou prioritou se kterému riziku věnovat. Půjdeme-li s touto myšlenkou ještě o krok dál, úplně nejpohodlnější by bylo mít jedno univerzální měřítko či rámec hodnocení rizika používané všemi zainteresovanými osobami a organizacemi, ve kterém by se pak rizika spojená se zranitelnostmi snáze komunikovala.

Otevřený standard pro skóring zranitelností

Právě toho se snaží docílit otevřený standard CVSS (Common Vulnerability Scoring System), který je v současné době také tím nejrozšířenějším. Byl vytvořen neziskovou organizací FIRST (Forum of Incident Response and Security Teams) sídlící ve Spojených státech, respektive jejich pracovní skupinou CVSS SIG (Special Interest Group), kterou tvoří zástupci nejrůznějších sektorů od bankovnictví po informační technologie, veřejného sektoru a akademické sféry. Nutno dodat, že na zlepšování standardu skupina stále pracuje a na webových stránkách (www.first.org/cvss/workitems) lze najít doposud schválené připomínky, které mají potenciál být začleněny do příštích verzí standardu. Ten je momentálně ve verzi 3.0.

Samotné hodnocení závažnosti zranitelnosti se v rámci CVSS skládá ze tří skupin metrik: základní (base), časové (temporal) a okolnostní (environmental). Základní metrika zohledňuje vlastní charakteristiky zranitelnosti, které jsou neměnné v čase a nezávislé na okolnostech či prostředí, a je kombinací dvou podskupin -– metrikou zneužitelnosti a dopadovou metrikou. Časová metrika upravuje výslednou závažnost zranitelnosti z pohledu času.

Například je-li volně dostupný exploit pro danou zranitelnost nebo naopak je-li zranitelnost popsána pouze v teoretické rovině. Stejně tak dostupnost oficiálních nebo jiných workaroundů či oprav. A patří sem také důvěra v samotnou existenci zranitelnosti. Poslední je metrika, která upravuje výsledné skóre podle okolností či prostředí. Tedy například zohlednění významnosti systému obsahujícího zranitelnost v rámci organizace.

Základní metrika

Základní metrika vymezuje dvě podkategorie: zneužitelnost a dopad. Rozdělení na tyto dvě podskupiny umožňuje v hodnocení zohlednit rozdílnost komponenty, která zranitelnost obsahuje (typicky nějaký program), a komponenty, na kterou zneužití takové zranitelnosti může mít dopad (například síťové zařízení, databáze, aj.). U zneužitelnosti se rozhoduje o následujících charakteristikách:

  • Attack Vector (AV) -– vektor útoku („kudy“ může k útoku dojít)
  • Attack Complexity (AC) -– složitost a spolehlivost provedení útoku (některé útoky mohou záviset na náhodě, resp. určitém nepředvídatelném stavu, ve kterém se systém může nacházet a který zabrání úspěšnému napadení)
  • Privileges Required (PR) -– nutná oprávnění ve zranitelném systému k provedení útoku
  • User Interaction (UI) -– nutnost uživatelské akce (např. spuštění programu, navštívení stránky)

Dále rozhodujeme o dopadu na data či systém podle známého trojúhelníku CIA:

  • Confidentiality (C) -– dopad na důvěrnost dat, tedy zda-li úspěšným útokem může dojít k získání důvěrných dat (nezávisle na jejich důležitosti -– to se zohledňuje až metrikou konkrétních okolností/prostředí) a v jakém rozsahu, zda-li částečně nebo úplně; v počítačovém žargonu to můžeme vyjádřit slovy, že útočník získá „read“ oprávnění
  • Integrity (I) -– dopad na integritu vyjadřuje, v jakém rozsahu hrozí nebezpečí poškození nebo upravení dat; žargonem bychom mohli opět vyjádřit, že útočník získal „write“ oprávnění
  • Availability (A) -– dopad na dostupnost, zpravidla výsledek útoku typu Denial of Service, který může vyřadit zasaženou komponentu (systém, zařízení, aj.) z provozu

Speciální a důležitou charakteristikou základní metriky je takzvaný autorizační prostor (Authorization Scope) nebo pouze zkráceně Scope (S). Autorizačním prostorem se rozumí kolekce uživatelských práv definovaná určitou autoritou (např. operačním systémem). Tato charakteristika vyjadřuje, zda-li lze zneužitím zranitelnosti ovlivnit zdroje, které jsou v jiném autorizačním prostoru. Jako příklad můžeme uvést zranitelnost, kterou lze využít k úniku z virtualizovaného operačního systému a umožní mazání souborů na hostitelském systému. Zde dochází ke změně z jednoho autorizačního prostoru (virtuálního operačního systému) do jiného (hostitelský operační systém).

Takto máme kompletně připravenou základní metriku rizika zranitelnosti, jejímž výsledkem je vypočítáno skóre od 0 do 10. Závažnost můžeme vyjádřit také slovně podle následujících intervalů:


Kromě skóre je výsledkem také takzvaný vektorový řetězec (Vector String), který zkráceně vyjadřuje ohodnocení jednotlivých charakteristik a je z něj možné zjistit, jak bylo výsledné skóre vypočítáno.
Na internetu je k nalezení řada kalkulaček (www.first.org/cvss/calculator/3.0), které vás nechají vyplnit pohodlně jednotlivé charakteristiky, spočítají výsledné skóre a vygenerují vektorový řetězec. To můžeme vidět na obrázku 1, kde je příklad skóringu zranitelnosti CVE-2017-0145 přezdíváné též jako EternalBlue, která zasahovala většinu verzí operačního systému Windows skrze zranitelnost v SMB a umožňovala útočníkovi speciálně upravenými pakety vyvolat vzdálené spuštění kódu.

Obr. 1
Obr. 1
Časová metrika

Jak jsem už zmínil, časová metrika vyjadřuje takové charakteristiky, které se v čase mohou měnit a ovlivní tak výsledné skóre. Spadají sem:

  • Exploit Code Maturity (E) -– tato charakteristika reprezentuje, jak je velká pravděpodobnost zneužití dané zranitelnost vzhledem k dostupnosti a vyspělosti exploitu, ze začátku může být zneužití pouze teoretické, časem však mohou vzniknout volně dostupná řešení exploitace, což zvýší riziko, že bude zranitelnost zneužita
  • Remediation Level (RL) -– stav protiopatření vyjadřuje, jestli a jaké jsou možné způsoby potření zranitelnosti s ohledem také na to, zda-li se jedná o workaround, dočasnou opravu či oficiální patch
  • Report Confidence (RC) -– míra důvěry v existenci zranitelnosti vzhledem k jejímu zveřejnění, prvotně může být zranitelnost popsána bez bližších detailů a nejasné příčiny, s dalším výzkumem však může být potvrzena výrobcem samotného produktu

Na obrázku 2 můžeme opět vidět zmíněnou zranitelnost EternalBlue vzhledem k jejímu současnému stavu. Vyspělost a dostupnost exploitu je vysoká, neboť je součástí penetračního nástroje Metasploit. Stav protiopatření zohledňuje existenci oficiální opravy. Jako poslední je důvěra v existenci zranitelnosti, která však byla potvrzena i samotným výrobcem zranitelné součásti (tedy Microsoftem). Základní skóre se tak díky korekci časovou metrikou snížilo na 7,7 bodu.

Obr. 2
Obr. 2

Okolnostní metrika

Okolnostní metrika nebo také metrika prostředí zohledňuje míru rizika vzhledem ke konkrétní situaci. Jako příklad můžeme opět použít zranitelnost EternalBlue. Pokud vaše organizace používá server s takto zranitelným operačním systémem, na kterém má uložena kritická data, či poskytuje jinou důležitou funkčnost, bude v takové situaci riziko vyplývající ze zranitelnosti vyšší. Naopak pokud na zranitelném systému máme pouze méně důležitá data či aplikace, riziko se sníží. Zvažujeme tedy následující charakteristiky:

  • Confidentiality Requirement (CR) -– vyjadřuje náš nárok na důvěrnost dat, která mohou být zranitelností zasažena
  • Integrity Requirement (IR) -– vyjadřuje náš nárok na integritu dat, která mohou být zranitelností zasažena
  • Availability Requirement (AR) -– vyjadřuje náš nárok na dostupnost dat, která mohou být zranitelností zasažena

Na základě našich nároků na zranitelností zasaženou komponentu můžeme okolnostní metrikou opět provést korekci základního skóre. Součástí okolnostní metriky je také možná úprava osmi charakteristik, které jsou vyjádřena v základní metrice, na naše konkrétní prostředí. Pokud bychom tedy určili, že naše požadavky na důvěrnost, integritu a dostupnost dat na zranitelném systému jsou nízké a navíc je zranitelný systém dostupný pouze z vnitřní sítě organizace, dostali bychom výsledné skóre 5,5, viz. obrázek 3.

Obr. 2
Obr. 3

V článku jsme se zaměřili na CVSS, které je, jak už bylo zmíněno, dnes asi nejrozšířenější variantou hodnocení zranitelností. Je vhodné však zmínit, že existují další metodiky, jako STAR, STRIDE či DREAD, které při hodnocení postupují jinak. Nejsou tak rozšířené, ale je dobré vědět, že existují. Každá má svá pro a proti a ať už se rozhodneme pro implementaci kterékoliv z nich do procesů organizace, zásadním přínosem je konzistentní kvantifikovatelný způsob, jak určit, co nás může nejvíce ohrozit, a jejich vhodným použitím můžeme přispět informační bezpečnosti celé organizace.

 

Filip Pokorný - Autor článku je bezpečnostním analytikem sdružení CZ.NIC a Národního bezpečnostního týmu CSIRT.CZ.


Kalendář akcí
Konference - Semináře - Školení
Časopis IT Systems/Speciál
Aktuální číslo časopisu IT Systems Aktuální číslo časopisu příloha #1
Archív časopisu IT Systems
IT Systems 1-2 IT Systems 12 IT Systems 11 IT Systems 10
Archív časopisu IT Systems Special
Aktuální číslo časopisu příloha #1 Aktuální číslo časopisu příloha #1 Aktuální číslo časopisu příloha #1 Aktuální číslo časopisu příloha #1