Att mäta säkerhet på Internetdagarna

(Publicerad 2009-11-06)

I veckan höll .SE sin stora, årliga konferens Internetdagarna på Folkets hus i Stockholm. En workshop hölls under rubriken "Measuring the health of the Internet".

Jag var inbjuden för att delta i rundbords-diskussionen om att mäta säkerhet. Ett sjukt svårt ämne, tyvärr. Man kan säga att forskningen på området till stor del drivs av Dan Geer. En ärrad veteran som var med under Project Athena och (bland annat) är känd för att ha sparkats från @stake efter att ha kritiserat deras största kund; Microsoft. Rapporten som resulterade i avskedet, en intervju av Gary McGraw.

I en presentation berättar Geer om hur han konfronterades med en Chief Information Security Officer från en stor Wall Street-bank. CISO:n sade "Är ni säkerhetsfolk så korkade att ni inte kan berätta för mig...":
  • Hur säker jag är?
  • Om jag har det bättre i år än vid samma tid förra året?
  • Om jag spenderar rätt mängd pengar på säkerhet?
  • Hur jag har det i jämförelse med andra i branschen?
"Om jag hade varit på någon annan avdelning på banken, obligationsportföljer, aktiehandelsstrategier eller prissättning av derivat så hade jag kunnat besvara frågorna med fem decimalers nogrannhet."

Det är svårt att mäta säkerhet. Alla är överens om att det vore väldigt bra att kunna göra det. Det skulle leda till att vi kan kontrollera hur mycket säkerhet vi får för en viss peng, det skulle vara möjligt att kontrollera om säkerheten har blivit bättre eller sämre efter en förändring, det skulle vara en barnlek att jämföra olika system och så vidare. Framförallt; om vi kan mäta så kan vi sätta en gräns för vilken säkerhet som är tillräckligt bra och hålla oss till den. Som (svenska) kunder alltid säger; vi vill inte ha fullständig säkerhet, vi är ingen bank, vi vill ha lagom.

Mätning kräver en mätenhet och en kvantitet av detta så frågan är egentligen; vilken mätenhet ska vi använda?

Tyvärr går det inte att jämföra med att räkna pengar, mäta avstånd, väga vikter eller andra, konkreta mätningar. Säkerhet är oerhört komplext och abstrakt, det finns ingen naturlig enhet.

Vi sänker ambitionsnivån lite. Vi fokuserar på mindre system, inte en hel Bank utan kanske en applikation.

Den populäraste enheten är utan tvekan "antal upptäckta sårbarheter". Den användes till exempel av Microsoft under 2007 för att påvisa att Internet Explorer var säkrare än Firefox (pdf). Microsofts rapport möttes av en del kritik...

Tyvärr är enheten "antal upptäckta sårbarheter" pinsamt ofullständig. Många frågor väcks genast:
  • Hur många letade?
  • Hur länge letade de?
  • Hur duktiga var de?
  • Hur stort är systemet?
  • Hur komplext är systemet?
  • Var slutar systemet?
  • Hur allvarliga var sårbarheterna?
  • Hur svåra är sårbarheterna att utnyttja?
  • Under hur lång tid gick de att utnyttja?
  • Kommer nya sårbarheter att introduceras? Vad gäller för dessa?
  • ...
Om vi ska ta hänsyn till dessa och alla andra faktorer som spelar in kommer vi att få en rejält komplicerad enhet i knäet. Med all sannolikhet kommer vi aldrig komma till den punkten eftersom det i princip är omöjligt att bestämma relationen mellan alla dessa faktorer. Man skulle lugnt kunna säga att fåniga enheter i stil med newton-ampere-sekunder-per-kilogram-kvadratmeter skulle kännas fullständigt naturliga i jämförelse...

Vi backar och förenklar ytterligare en aning. Kan vi mäta enskilda säkerhetshål?

Om vi kan bryta ner en tänkt, komplicerad mätenhet i flera, enkla enheter som genom någon relation till varandra motsvarar den komplexa borde det underlätta.  Det är lätt att se hur felbedömningar är ovanligare om mätvärdet är simpelt och väldefinierat, kanske till och med diskret. Ju fler enkla mätvärden som kombineras desto mer exakt blir i sin tur kompositvärdet.

Ett exempel på detta är Common Vulnerability Scoring System (CVSS). CVSS används för att värdera hur allvarlig en sårbarhet är genom att göra en beräkning utifrån 14 värden fördelade i tre grupper. Varje värde är diskret, det finns mellan fyra och fem alternativ för varje.  Resultatet efter beräkningen av CVSS är ett värde mellan 0 och 10 och en "CVSS-vektor" som beskriver varje delvärde.

Jag rundar av det här innan det svävar iväg för lå(n)gt. Området är svårt och, åtminstone jag, känner att det verkar rätt hopplöst. Lyckligtvis är det inte såna som jag som arbetar med det. Jag kommer att fortsätta på ämnet en uppföljande post.

Trevlig helg!

--
Stefan Pettersson

Kommentarer

Kommentera inlägget här:

Namn:
Kom ihåg mig?

E-postadress: (publiceras ej)

URL/Bloggadress:

Kommentar:

Trackback

HPS säkerhetsblogg


High Performance Systems logo


RSS 2.0