Skenirniki ranljivosti najdejo na stotine tezav. V tipicnem podjetniskem okolju lahko prvo skeniranje vrne tisocere. Vecina jih na noben smiseln nacin ni pomembna. Kljub temu redno vidam organizacije, ki jih ohromoti sam obseg ugotovitev: vsako obravnavajo kot enako nujno ali, se huje, prezrejo celotno porocilo, ker se zdi preveliko. Po osemnajstih letih pomoci organizacijam pri razumevanju varnostnih ugotovitev zelim pojasniti razlikovanje, ki naredi vso razliko: vrzel med ranljivostjo in tveganjem.
Ranljivost
Ranljivost je slabost, ki bi jo lahko izkoriščali. Je tehnicno dejstvo, merljivo in objektivno. Nezakrpan streznik Apache je ranljivost. SQL injekcija v spletnem obrazcu je ranljivost. Privzeto geslo na omrežni napravi je ranljivost. Skenirniki ranljivosti so dobri pri iskanju teh. Katalogizirajo znane slabosti, primerjajo razlicice programske opreme z bazami CVE in proizvedejo porocila. Toda ranljivost sama po sebi vam pove zelo malo o tem, ali bi morali skrbeti zanjo.
Tveganje
Tveganje je verjetnost izkoriščanja, pomnožena z vplivom ob izkoriščanju. Tveganje zahteva poslovni kontekst. Nezakrpan streznik Apache, ki gosti vas javni portal za stranke, je povsem drugacno tveganje kot enak nezakrpan streznik Apache na izoliranem notranjem razvojnem stroju brez obcutljivih podatkov. Tehnicna ranljivost je enaka; tveganje pa je povsem drugacno. To razlikovanje je tocka, kjer mnogi varnostni programi odpovedujejo. Vsako ranljivost obravnavajo enako, ker nimajo konteksta za razlikovanje.
Tveganje = Verjetnost x Vpliv
- Verjetnost: Ali je ranljivost izkoriščljiva v vasem specificnem okolju? Je izpostavljena internetu ali dostopna le interno? Obstaja javni exploit? Se aktivno izkorisca v praksi? Ali izkoriščanje zahteva avtentikacijo ali poseben dostop? Med penetracijskimi testi pogosto najdem ranljivosti s "kriticno" CVSS oceno, ki so dejansko neizkoriščljive zaradi omrežnih kontrol, zahtevanih predpogojev ali dejavnikov okolja. Nasprotno pa najdem "srednje" tezave, ki so trivialno izkoriščljive in vodijo neposredno do obcutljivih podatkov.
- Vpliv: Kaksen je najslabsi mozni izid, ce je ta ranljivost izkoriščena? Do katerih podatkov bi bilo mozno dostopati? Kateri sistemi bi bili lahko kompromitirani? Kaksen je poslovni vpliv v smislu financne izgube, regulativnih kazni, skode ugledu ali operativne motnje? Kriticna ranljivost na sistemu, ki ne vsebuje obcutljivih podatkov in ne opravlja kriticne funkcije, ima nizek vpliv ne glede na svojo CVSS oceno.
Okvir za prioritizacijo
- Kriticno + Izpostavljeno + Enostavno za izkoriščanje = Takoj popravite - To so ugotovitve, ki bi vas morale zbuditi ponoči. Internetno izpostavljena SQL injekcija z javnim exploit skriptom, nezakrpan VPN prehod z znano ranljivostjo za oddaljeno izvajanje kode, spletna aplikacija z obvodom avtentikacije. Te predstavljajo takojsnje, izvedljivo tveganje in jih je treba odpraviti v urah ali dnevih, ne tednih.
- Kriticno + Notranje + Težko za izkoriščanje = Kmalu popravite - Pomembno, a ne nujno. Samo notranja ranljivost, ki zahteva specificne pogoje za izkoriščanje, se vedno predstavlja tveganje, toda nujnost je nizja. Nacrtujte odpravo znotraj rednega cikla krpanja, a ne dovolite, da se vlece mesece.
- Nizek vpliv + Kakrsna koli izpostavljenost = Sprejmite ali popravite, ko je prirocno - Razkritje informacij na neobcutljivih sistemih, ranljivosti za zavrnitev storitve na redundantnih storitvah ali teoreticne napadalne poti, ki zahtevajo neverjetne verige dogodkov. Dokumentirajte odlocitev o sprejemu tveganja in obcasno preglejte, a ne dovolite, da te porabijo vire, potrebne za nujnejse tezave.
Zakaj CVSS ocene niso dovolj
CVSS zagotavlja standardizirano oceno resnosti, a namenoma izkljucuje okoljski kontekst. CVSS 9,8 izgleda grozljivo, toda ce je ranljiv sistem za vec plastmi omrežnih kontrol in ne vsebuje obcutljivih podatkov, je dejansko tveganje lahko minimalno. Nasprotno pa lahko CVSS 5,0 v vasi aplikaciji za obdelavo placil predstavlja eksistencialno tveganje. Videl sem organizacije, ki so mesece odpravljale CVSS 9,8 na notranjem strezniku, medtem ko so prezrle CVSS 6,5 na API-ju za stranke, ki sem ga izkoriščal za izvlecenje podatkov v manj kot eni uri. Kontekst je pomembnejsi od ocen.
Gradnja pristopa na podlagi tveganja
Ucinkovito upravljanje ranljivosti se zacne z razumevanjem vasih virov: katere sisteme imate, katere podatke hranijo in kako so izpostavljeni. Brez popisa in klasifikacije virov ne morete sprejemati informiranih odlocitev o tveganju. Vedno priporocam, da organizacije najprej vložijo v upravljanje virov, preden vložijo v vec orodij za skeniranje. Vedeti, kaj imate in koliko je vredno, je predpogoj za smiselno oceno tveganja.
Komunikacija tveganja vodstvu
Povedati upravnemu odboru "imamo 847 ranljivosti" je nesmiselno. Povedati jim "imamo tri nezakrpane sisteme, izpostavljene internetu, ki bi omogocili dostop do baze strank, kar bi prizadelo 200.000 zapisov in sprozilo obvezno priglasitev krsitve" pa je izvedljivo. Vsakic, ko oddam porocilo, oblikujem izvrsni povzetek okoli poslovnega tveganja, ne tehnicne resnosti. Stevilke CVE gredo v tehnicni del. Izvrsni povzetek govori o tem, kaj bi se lahko zgodilo podjetju in koliko bi stalo. To je jezik, ki poganja proracune za odpravo in organizacijske spremembe.
Komentarji
Ni se komentarjev. Bodite prvi!
Dodaj komentar