Yleinen haavoittuvuuden pisteytysjärjestelmä
CVSS ( Common Vulnerability Scoring System ) on avoin standardi, jota käytetään tietokonejärjestelmän tietoturvahaavoittuvuuksien kvantitatiivisten pistemäärien laskemiseen, yleensä sen korjaamisen tärkeysjärjestyksen ymmärtämiseksi.
Pisteet lasketaan erityisillä kaavoilla, jotka perustuvat useisiin mittareihin ja arvioivat hyväksikäytön toteutuksen helppoutta ja sen vaikutusta tietokonejärjestelmään. Laskennan tuloksena saadaan kolme numeerista pistettä ( Base Score , Temporal Score ja Environmental Score ), joista kukin voi saada arvon 0-10, jossa 10 ilmaisee suurinta vaaraa.
Standardin uusin versio on 3.1, joka julkaistiin kesäkuussa 2019. Jotkut yritykset käyttävät eri syistä CVSSv2-standardin vanhaa versiota, toiset uutta CVSSv3:a ja toiset yhdistävät eri versioiden käyttöä.
Historia
National Infrastructure Advisory Councilin ( NIAC ) vuosina 2003–2004 tekemä tutkimus johti CVSS :n ensimmäiseen versioon helmikuussa 2005. Alkuperäisenä tavoitteena oli tarjota avoimia ja universaaleja menetelmiä ohjelmistohaavoittuvuuksien vakavuuden arvioimiseksi. Huhtikuussa 2005 NIAC avasi Forum of Incident Response and Security Teams (FIRST) -verkkosivuston, jossa standardin ensimmäinen versio julkaistiin.
Standardin ensimmäinen versio ei ollut kolmansien osapuolten vertaisarvioinnin kohteena, joten ohjelmistokehitykseen erikoistuneiden ja sitä hyödyntävien yritysten todellinen palaute paljasti monia vakavia ongelmia, joiden yhteydessä standardin toinen versio julkaistiin kesäkuussa. 2007. Jatkokehitys johti standardin kolmannen version julkaisuun kesäkuussa 2015.
Kohokohdat
CVSS yrittää arvioida haavoittuvuutta eri näkökulmista [1] :
- Laadullinen haavoittuvuuden arviointi, joka ei riipu ajasta tai ohjelmistoympäristöstä, ilmaistuna perusmittareina ( Base metrics ):
- Access Vector (AV) näyttää, kuinka haavoittuvuus voidaan ottaa käyttöön.
- Access Complexity (AC) ilmaisee, kuinka helppoa tai vaikeaa on tietyn haavoittuvuuden hyödyntäminen.
- Authentication (Au) arvioi, kuinka monta todennusta hyökkääjän on suoritettava ennen haavoittuvuuden hyödyntämistä.
- Haavoittuvuuden vaikutus tietokonejärjestelmään ( Impact metrics ):
- Luottamuksellisuus (C) kuvaa järjestelmän käsittelemien tietojen yksityisyyttä.
- Eheys (I) kuvaa vaikutusta tietokonejärjestelmän tietojen eheyteen.
- Saatavuus (A) kuvaa haavoittuvuuden vaikutusta tietokonejärjestelmän saatavuuteen. Esimerkiksi hyökkäykset, jotka vaikuttavat verkon suorituskykyyn tai vievät suorittimen aikaa, vaikuttavat järjestelmän käytettävyyteen.
- Ajalliset mittarit , jotka ottavat huomioon haavoittuvan tuotteen valmistajan reaktion, joka muuttuu haavoittuvuuden havaitsemisesta sen korjaamiseen:
- Exploitability (E) näyttää haavoittuvuuden hyödyntämismenetelmien nykytilan, mukaan lukien automatisoidut.
- Remediation Level (RL) on korjaustaso, jonka avulla voit pehmentää aika-arviota, kun haavoittuvuuden korjauksia tulee saataville.
- Raportin luotettavuuden (RC) avulla voit mitata luottamustasoa haavoittuvuuden olemassaoloon ja sen teknisten tietojen luotettavuutta.
- Haavoittuvuusmittarit, jotka ottavat huomioon sen järjestelmän erityiset tietoturvavaatimukset, jossa haavoittuva tuote toimii ( Environmental metrics ):
- Collateral Damage Potential (CDP) arvioi yritykselle tietyn haavoittuvuuden aiheuttamat mahdolliset vahingot, kuten mahdolliset menetykset, fyysiset vauriot laitteille jne.
- Target Distribution (TD) arvioi haavoittuvien järjestelmien osuuden tietokoneverkossa.
- Impact Subscore Modifier sisältää luottamuksellisuuden (CR), eheyden (IR) ja saatavuuden (AR) korjausnumerot, joiden avulla voit mukauttaa Impact-mittareita ja loppupisteitä tietyn ympäristön erityisten turvallisuusvaatimusten mukaan.
Laskennan mittarit on otettu taulukoista, joissa on niiden kuvaus, laadulliset ja määrälliset arvot. Alla olevassa taulukossa näkyvät standardin toisen version jälkeen käyttöön otetut mittarit [1] .
Pivot-taulukko CVSSv2-mittareilla
Arvosana
|
Mittarit
|
Kuvaus
|
peruspisteet |
Access Vector (AV)
|
Laadullinen ilmaisu
|
määrällinen ilmaisu
|
Selitys
|
Paikallinen (L)
|
0,395
|
Hyökkääjällä on oltava fyysinen pääsy järjestelmään tai paikallinen tili
|
Viereinen verkko (A)
|
0,646
|
Hyökkääjällä on oltava pääsy lähetyskanavalle tai törmäysalueelle
|
Verkko (N)
|
yksi
|
Haavoittuva käyttöliittymä, joka toimii OSI-mallin verkkokerroksessa tai ylempänä
|
|
Access Complexity (AC)
|
Korkea (H)
|
0,35
|
Hyökkäämiselle on tiettyjä erityisehtoja, kuten järjestelmässä oleva rotuehto tai jotkin sosiaalisen suunnittelun vaatimukset täyttyvät , jotka asiantunteva asiantuntija huomaa.
|
Keskikokoinen (M)
|
0,61
|
Hyökkäykselle on joitain lisävaatimuksia, esimerkiksi tietty hyökkäyksen lähde on määritetty tai hyökätylle järjestelmälle vaaditaan erityinen standardista poikkeava kokoonpano
|
Matala (L)
|
0,71
|
Haavoittuvuuden hyödyntämiselle ei ole erityisiä vaatimuksia.
|
|
Todennus (AU)
|
Useita (M)
|
0,45
|
Hyökkääjän on todennettu vähintään kahdesti voidakseen hyödyntää haavoittuvuutta, vaikka käytettäisiin samoja tunnistetietoja.
|
Yksittäinen (S)
|
0,56
|
Hyökkääjän on todennettu kerran voidakseen hyödyntää haavoittuvuutta.
|
Ei mitään (N)
|
0,704
|
Haavoittuvuuden hyödyntäminen ei vaadi todennusta
|
|
Luottamuksellisuus (C)
|
Ei mitään (N)
|
0
|
Ei vaikutusta järjestelmän yksityisyyteen
|
Osittainen (P)
|
0,275
|
Vain rajallinen määrä tietoja julkistetaan laajasti
|
Täydellinen (C)
|
0,660
|
Kaikkien järjestelmätietojen täydellinen paljastaminen
|
|
Rehellisyys (I)
|
Ei mitään (N)
|
0
|
Ei vaikutusta järjestelmän eheyteen
|
Osittainen (P)
|
0,275
|
Muutettavissa olevan järjestelmädatan määrä on selvästi rajallinen
|
Täydellinen (C)
|
0,660
|
Hyökkääjä voi muuttaa mitä tahansa järjestelmätietoja
|
|
Saatavuus (A)
|
Ei mitään (N)
|
0
|
Ei vaikutusta järjestelmän saatavuuteen
|
Osittainen (P)
|
0,275
|
Suorituskyky on osittain heikentynyt
|
Täydellinen (C)
|
0,660
|
Hyökkäyksen kohteena olevan resurssin täydellinen menetys
|
|
Ajallinen pistemäärä |
Käytettävyys (E)
|
Todistamaton (U)
|
0,85
|
Exploit-koodi ei ole saatavilla tai exploit on teoreettinen
|
Todistus (P)
|
0.9
|
Demon hyödyntämiskoodi on saatavilla, mutta se ei ole universaali ja kattaa vain yhden tai muutaman erikoistapauksen
|
Toiminnallinen (F)
|
0,95
|
Hyökkäyskoodi on saatavilla ja toimii useimmissa tilanteissa, joissa haavoittuvuus on olemassa
|
Korkea (H)
|
1.0
|
Hyökkäyskoodi on saatavilla ja se voidaan tuoda järjestelmään automatisoidulla tavalla, kuten madon tai viruksen muodossa
|
Ei määritelty (ND)
|
1.0
|
Ohita tämä mittari
|
|
Korjaustaso (RL)
|
Virallinen korjaus (O)
|
0,87
|
Täydellinen ratkaisu haavoittuvuuteen on saatavana toimittajalta joko päivityksenä tai korjaustiedostona
|
Väliaikainen korjaus (T)
|
0,90
|
Toimittajalla on kiertotapa, joka osittain lieventää haavoittuvuuden vaikutusta
|
kiertotapa (W)
|
0,95
|
Epävirallinen ratkaisu tai kolmannen osapuolen korjaustoimenpide saatavilla
|
Ei saatavilla (U)
|
1.0
|
Ratkaisua ei ole saatavilla tai ehdotettua ratkaisua ei voida soveltaa. Yleensä haavoittuvuus jää tähän tilaan heti havaitsemisen jälkeen.
|
Ei määritelty (ND)
|
1.0
|
Ohita tämä mittari
|
|
Raportin luottamus (RC)
|
Vahvistamaton (UC)
|
0.9
|
Yksi vahvistamaton lähde tai useita lähteitä, mutta älä kuvaile haavoittuvuutta suurin piirtein samalla tavalla. Mukaan lukien huhut haavoittuvuudesta
|
Vahvistamaton (UR)
|
0,95
|
Useat lähteet, jotka kuvaavat haavoittuvuutta yleensä samalla tavalla. Pienet erimielisyydet hyväksytään
|
Vahvistettu (C)
|
1.0
|
Haavoittuvuuden vahvistavat sekä haavoittuvan tuotteen toimittaja että valmistaja
|
Ei määritelty (ND)
|
1.0
|
Ohita tämä mittari
|
|
Ympäristöpisteet |
Vakuusvahinkopotentiaali (CDP)
|
Ei mitään (N)
|
0
|
Haavoittuvuus ei aiheuta yrityksille tappioita
|
Matala (L)
|
0.1
|
Pieni tulon tai järjestelmän suorituskyvyn menetys
|
Matala Keskitaso (LM)
|
0.3
|
kohtalainen vahinko
|
Keskikorkea (MH)
|
0.4
|
Merkittäviä vahinkoja
|
Korkea (H)
|
0.5
|
katastrofaalinen vahinko
|
Ei määritelty (ND)
|
0
|
Ohita tämä mittari
|
|
Kohdejakelu (TD)
|
Ei mitään (N)
|
0
|
Kohdejärjestelmiä ei ole olemassa tai ne ovat laboratoriossa
|
Matala (L)
|
0,25
|
1-25 % vaikutuksesta järjestelmästä
|
Keskikokoinen (M)
|
0,75
|
26-75 % vaikutuksesta järjestelmästä
|
Korkea (H)
|
1.0
|
76-100 % vaikuttunut järjestelmä
|
Ei määritelty (ND)
|
1.0
|
Ohita tämä mittari
|
|
Vaikutusten alipisteiden muokkaus
|
Matala (L)
|
0.5
|
(luottamuksellisuuden (CR) / eheyden (IR) / käytettävyyden (AR)) menetyksellä on todennäköisesti vain rajallinen vaikutus organisaatioon
|
Keskikokoinen (M)
|
1.0
|
(Luottamuksellisuuden (CR) / Eheyden (IR) / Saatavuus (AR)) menettäminen voi vaikuttaa vakavasti organisaatioon
|
Korkea (H)
|
1.51
|
(luottamuksellisuuden (CR) / eheyden (IR) / saatavuuden (AR)) menettäminen voi olla tuhoisa organisaatiolle
|
Ei määritelty (ND)
|
1.0
|
Ohita tämä mittari
|
|
Laskentakaavat CVSSv2:ssa
Pisteet lasketaan seuraavilla kaavoilla. Parametrien arvot valitaan yllä olevasta taulukosta. Tuloksena olevat murtoluvut tulee pyöristää ensimmäiseen desimaaliin, joka ilmaistaan alla olevan funktion avulla .
Laskennassa käytetään seuraavia kaavoja
.
Laskennassa käytetään seuraavia kaavoja . lasketaan samalla kaavalla kuin , mutta sinun on korvattava .
Esimerkki
Vuonna 2002 Apache -palvelinsovelluksesta löydettiin haavoittuvuus CVE -2002-0392 , joka johti palvelimen muistin vioittumiseen sitä koskevien pyyntöjen pirstoutuneen koodauksen aikana. Tämän tiedossa hyökkääjä voi luoda onnistuneen hyväksikäytön, joka voi joissain tapauksissa johtaa palvelimen palvelunestoon ja toisissa mielivaltaisen koodin suorittamiseen palvelinsovelluksen oikeuksin.
CVSS-mittareita käyttämällä peruspistemäärän laskemiseen ongelma voidaan kuvata seuraavasti:
- AV on yhtä kuin N, koska pyyntö luodaan etänä OSI-mallin sovelluskerroksessa.
- AC on yhtä kuin L, koska hyväksikäytön onnistumiseen riittää muodostaa erityinen pyyntö palvelimelle, eikä palvelimelta vaadita erityisiä vaatimuksia.
- Au on N, koska palvelin käsittelee tämän pyynnön ilman asiakkaan todennusta.
- Koska haavoittuvuuden hyödyntämisen lopputulos riippuu itse pyynnöstä, vain todennäköisin hyväksikäyttötapaus tulee ottaa huomioon. Tämä voi olla mielivaltaisen hyökkääjäkoodin suorittaminen tietojen poimimiseksi palvelimen tietokannasta, kuten todennustietojen hankkiminen muilta asiakkailta. Tässä tapauksessa parametrien C ja I pitäisi olla P ( Partial ). On myös todennäköistä, että hyökkääjä käyttää hyväksikäyttöä kaataakseen palvelimen, jolloin A:n tulee olla C ( Complete ). Tässä esimerkissä oletetaan toinen käyttötapaus, joten asetamme C:n ja I:n arvoksi N ( Ei mitään ) ja asetamme A:n arvoksi C.
Näin ollen perusarvosanan laskentaparametrit voidaan ilmaista seuraavalla tekstijonolla, jota käytännössä kutsutaan vektoriksi :
AV:N/AC:L/Au:N/C:N/I:N/A:C
Koska Apache Foundation on vahvistanut palvelinversioiden 1.3 ja 2.0 haavoittuvuuden, Temporal Score -vektori
on seuraava:E:F/RL:O/RC:C
Ympäristöpisteen vektori riippuu siitä, mikä on Apache-palvelinta käyttävälle yritykselle tärkeämpää ja mikä kapasiteetti sillä on. Tässä esimerkissä vektori on seuraavanlainen:
CDP:H/TD:H/CR:M/IR:M/AR:H
Korvaamalla indikaattorien kvantitatiiviset arvot taulukosta, saamme seuraavat tulokset.
Tämän haavoittuvuuden vuoksi meidän tulisi päivittää Apache-palvelimemme vähintään versioon 2.1 mahdollisimman pian.
Standardin versioiden kritiikki ja vertailu
Useat ohjelmistotoimittajat ovat olleet tyytymättömiä CVSSv2:een:
- Risk Based Security , joka hallinnoi avoimen lähdekoodin haavoittuvuustietokantaa , ja Open Security Foundation ilmaisivat tyytymättömyytensä standardiin FIRSTille osoitetussa avoimessa kirjeessä [2] . Kirjoittajat korostivat erityisesti useiden mittareiden yksityiskohtien puutetta, mikä ei tee eroa erityyppisten ja riskiprofiilien haavoittuvuuksien välillä. Todettiin myös, että pisteytysjärjestelmä vaatii liian paljon tietoa haavoittuvuuden vaikutuksista järjestelmään.
- Oracle on ehdottanut toista luottamuksellisuuden , eheyden ja käytettävyyden tasoa - Partial+ - umpeen suuren eron osittaisen ja täydellisen välillä [3] .
Vastatakseen joihinkin näistä kritiikistä CVSSv3-standardin kehittäminen aloitettiin vuonna 2012, ja lopullinen versio julkaistiin kesäkuussa 2015. Useita indikaattoreita on muutettu, lisätty ja poistettu, ja kaavoja on hieman korjattu samalla, kun arvostusalue on säilytetty välillä 0-10.
Tärkeimmät erot CVSSv3:n ja CVSSv2:n välillä ovat seuraavat:
- Perustasoon on lisätty uusia mittareita (UI (User Experience), PR (Edellytykset)) helpottamaan tavallisten käyttäjien ja järjestelmänvalvojan oikeuksiin liittyvien haavoittuvuuksien erottamista.
- Mittari S ( Scope ) on lisätty peruspistemäärävektoriin erottamaan haavoittuvuudet, jotka voidaan ensin ottaa käyttöön ja käyttää sitten hyökkäämään järjestelmän tai verkon muihin osiin.
- Kolmannen version Luottamuksellisuus , Eheys ja Saatavuus mittareilla on eri asteikko: Ei mitään, Matala ja Korkea, Ei mitään, Osittainen ja Täysi sijaan.
- Käyttöoikeuden monimutkaisuus - metriikka on nimetty uudelleen Attack Complexityksi , mikä osoittaa, että käyttöoikeusvaatimukset on siirretty erilliseen mittariin.
- Fyysinen (P) on lisätty Access Vector -mittariin osoittamaan, että haavoittuvuuden hyödyntäminen edellyttää fyysistä pääsyä laitteistoon.
- Kaikki Environmental Score -mittarit on muutettu täysin kuvaamaan järjestelmän turvallisuusvaatimuksia tarkemmin. Mittarit on lisätty kuvaamaan luottamuksellisuuden, eheyden ja saatavuuden tärkeyttä.
Kesäkuussa 2019 julkaistiin versio 3.1 [4] . Tämä versio ei tuo standardiin uusia muutoksia, vaan se sisältää vain joidenkin mittareiden kuvauksen paremman ymmärtämisen vuoksi.
Sovellus
Useat CVSS-versiot ovat omaksuneet haavoittuvuuksien kvantifioinnin ensisijaisena menetelmänä monissa organisaatioissa. Tässä on vain muutama esimerkki:
Muistiinpanot
- ↑ 1 2 Täydellinen opas yleiseen haavoittuvuuspisteytysjärjestelmään . www.first.org . Tapahtumavalvonta- ja turvallisuusryhmien foorumi (kesäkuu 2007). Haettu 6. toukokuuta 2021. Arkistoitu alkuperäisestä 8. maaliskuuta 2022.
- ↑ CVSSv2:n puutteiden, vikojen ja epäonnistumisten muotoilu . www.riskbasedsecurity.com . Haettu 7. toukokuuta 2021. Arkistoitu alkuperäisestä 7. toukokuuta 2021. (määrätön)
- ↑ Oraclen yleisen haavoittuvuuspisteytysjärjestelmän (CVSS) käyttö . www.oracle.com . Haettu 7. toukokuuta 2021. Arkistoitu alkuperäisestä 6. toukokuuta 2021. (määrätön)
- ↑ Yleisen haavoittuvuuden pisteytysjärjestelmän versio 3.1: Specification Document . www.first.org . Tapahtumavalvonta- ja turvallisuustiimien foorumi (kesäkuu 2019). Haettu 7. toukokuuta 2021. Arkistoitu alkuperäisestä 8. maaliskuuta 2022.
- ↑ Kansallinen haavoittuvuustietokanta: virallinen sivusto . nvd.nist.gov . Haettu 7. toukokuuta 2021. Arkistoitu alkuperäisestä 6. huhtikuuta 2018. (määrätön)
- ↑ Manion, Art. Haavoittuvuuden vakavuus CVSS:n avulla . insights.sei.cmu.edu (12. huhtikuuta 2012). Haettu 7. toukokuuta 2021. Arkistoitu alkuperäisestä 7. toukokuuta 2021.
Linkit