Hopp til hovedinnhold

Teknologi / 7 minutter /

Påskerefleksjoner fra en sikkerhetsarkitekt

Fra et allegorisk perspektiv, er påsken kanskje den perioden som passer best å reflektere over de utallige egg-metaforene som finnes: Hva kom først av høna og egget?; Å legge et egg; Å ha det som plommen i egget; Man kan ikke lage omelett, uten å knuse egg; osv. Hvor uttrykkene kommer fra, er kanskje ikke så viktig, men for de aller fleste er betydningen veldig klar.

Årets påske, og situasjonen vi befinner oss i, gir kanskje rom for å reflektere litt nøyere over én spesifikk metafor: “Å legge alle eggene i én kurv”.

Risikoplassering

Vi er kanskje mer vant til å se uttrykket brukt i finans-sammenheng, der banker og finansrådgivere advarer mot å plassere alle pengene sine i én og samme investering. Ideen om “diversifisering”, innen moderne økonomi, kom fra Harry Markowitz - en amerikansk økonom og professor i finans, og bl.a. mottaker av “John von Neumann Theory Prize” for sitt arbeid innen portfolio-teori.

Diversifiseringseffekten bygger på et veldig enkelt prinsipp: Man reduserer den totale risikoen ved å spre investeringene på flere verdipapirer og/eller aktivaklasser. Det gir altså lavere risiko om man deler opp investeringen i to ulike aksjer, i stedet for å bare investere i den ene. Og det gir jo for så vidt mening. I Bergen blir økonomistudenter presentert for prinsippet, med et enkelt forslag om å investere i både en paraply-fabrikk og en iskremfabrikk. I så måte, er investeringene forsvart både ved regn og solskinn.

Strategivalg på liv og død

Uten kritikk for øvrig, ser vi at to kjære og tilsynelatende like skandinaviske land har valgt å møte den pågående Corona-pandemien på veldig forskjellig vis: Norge har, i likhet med mange andre europeiske land, valgt å innføre flere isoleringstiltak (såkalt “sosial distansering”) i håp om å stagge spredningen av viruset, mens Sverige kan virke å ha satset på å oppnå hva man refererer til som “flokkimmunitet” så tidlig som mulig.

Med flokkimmunitet er målet å nå en tilstrekkelig masse blant befolkningen med opparbeidet antistoffer, eller resistens via vaksine mot (i dette tilfellet) Coronaviruset, til at smitten ikke lenger bærer (flokkimmunitet). Begge tiltak har blitt støttet av teoretiske modeller og simuleringer (eks. https://corona.katapult-magazin.de/).

Koronaspredning med og uten sosial distansering. Med distansering er det færre smittebærere, og dermed mindre smitte
Koronaspredning med og uten sosial distansering. Med distansering er det færre smittebærere, og dermed mindre smitte

La oss se på disse to scenariene fra et risikoperspektiv, hvor vi kaller scenariet der isolasjon er hovedtiltaket “Norgesscenariet”, og scenarioet der flokkimmunitet er målet “Sverigescenariet”.

Norgesscenariet bygger altså ikke tiltakene sine på å opparbeide flokkimmunitet, men på sosial distansering. Målet er tosidig: Første del består i å redusere trykket på helseinstitusjoner ved å forlenge smitteforløpet - altså tiden som går før et visst antall personer er smittet (man oppnår en form for kritisk masse).

Viser trykk på helseinstitusjoner, med og uten smitteverntiltak. Med tiltak blir det færre smittede flatere.
Viser trykk på helseinstitusjoner, med og uten smitteverntiltak. Med tiltak blir det færre smittede flatere.

Indirekte forsøker man dessuten å ta livet av viruset før det sprer seg til neste person (for et virus må altså ha en frisk, mottakelig vert, for å kunne leve videre). I tillegg iverksetter man ekstra tiltak, for å isolere personer som tilhører risikogrupper. Man gjør her tiltak som både reduserer sannsynlighet for spredning, samt konsekvensene av smitten. Eggene plasseres, i så måte, i flere kurver.

Sverigescenarioet bygger i hovedsak på følgende tiltak: Man isolerer utelukkende de som befinner seg i risikogrupper, men lar spredningen forløpe uten intervensjon. Altså, man forsøker å redusere konsekvensene av smitten uten, i større grad, å redusere sannsynligheten for å bli smittet. Her blir eggene, mer eller mindre, plassert i én kurv.

Et fokus på konsekvenser

Enn så lenge gir begge disse tiltakene mye mening - så lenge antagelsene holder. Og hvilke antagelser snakkes det om? Jo, i hovedsak er det snakk om kun én (hvis vi ser bort ifra å kunne finne en vedvarende vaksine): Vi er i stand til å bygge opp antistoffer som varer! Dersom man oppnår dette, vil sosial distansering i beste fall kun bidra til å lette trykket på helsevesenet. Når man så oppnår en metning i antall smittede, vil antistoffene sørge for at smitten stopper.

Ved et slikt tilfelle, vil kanskje konsekvensene av sosial distansering få en større samfunnsøkonomisk implikasjon enn konsekvensene av selve smitten. Her er altså et kortsiktig økonomisk motiv underliggende.

Og hva skjer dersom vi ikke klarer å opparbeide oss antistoffer som varer? Jo, da vil mangelen på sosial distansering sørge for at de som først ble smittet, og der antistoffene ikke lenger har virkning, på nytt kunne bli smittet. Vi blir rett og slett fanget i en “evig runddans” - i en slags katt-og-mus-lek med viruset.

På lengre sikt, vil konsekvensene her blir betydelig mer alvorlig.

Hva har det med software å gjøre?

Innen applikasjonssikkerhet står vi ofte overfor tilsvarende scenarier. Vi gjør ofte antagelser om at vi kjenner både angrepsformen og målet med angrepet. Følgelig iverksetter vi sikkerhetstiltak som ofte er veldig spesifikke, og som adresserer disse angrepsvektorene direkte. På samme måte som ved Sverigescenariet, bygger vi her altså hele vårt forsvarsverk ved å plassere alle våre egg i én kurv. Dersom våre antagelser om angrepsform eller -mål feiler, ja da feiler også hele sikkerhetssatsingen vår.

Har vi så brukt dyrebare ressurser på å iverksette sikkerhetstiltak, som ikke står i samsvar med trusselen - ja, da får vi null avkastning på investeringene.

Risikobasert tilnærming til sikkerhet

Sveitserostmodellen er en modell som i lang tid har blitt brukt i risikovurderinger for sikkerhetskritiske systemer innen luftfart, medisin og olje/offshore.

Sveitserostmodellen viser potensielle behov for skadebegrensning
Sveitserostmodellen viser potensielle behov for skadebegrensning

Sveitserostmodellen sørger for skadebegrensning

Sveitserostmodellen sørger for skadebegrensning

Modellen bygger på prinsippet om at man iverksetter mange små, isolerte skadebegrensningstiltak, som til sammen reduserer enten sannsynligheten for at ting skjærer seg, eller konsekvensene ved at ting skjærer seg.

For Norgescenariet, ser vi her at, i påvente av en effektiv vaksine, eller at man bygger seg opp tilstrekkelig masse med antistoffer, så bidrar sosial distansering og alle disse andre småtiltakene (som hyppig renhold, og isolering av risikogrupper) til et lagvis forsvarsverk.

Skulle ett av disse småtiltakene feile (som f.eks. personlig renhold), vil et annet tiltak (f.eks. sosial distansering) redusere konsekvensene. En sideeffekt av slike lagvise forsvarsverk, er at man dessuten kjøper seg tid til å analysere situasjonen og kan planlegge nye skadebegrensende tiltak, uten for store konsekvenser.

Det finnes ulike målekriterier som bidrar til å avgjøre hvorvidt det er tilstrekkelig med enkelttiltak, eller om kumulative tiltak kreves. Målekriteriene kan variere fra organisasjon til organisasjon, og fra applikasjon til applikasjon. Organisasjoner og institusjoner, som ivaretar kritiske funksjoner i samfunnet, utarbeider gjerne beredskapsplaner som inneholder komplekse risikomatriser for å avgjøre hvorvidt enkelttiltak er tilstrekkelig for å redusere risiko.

Slike risikomatriser et like relevant for applikasjonsutvikling. Da spesielt for applikasjoner som ivaretar kritiske funksjoner - enten i form av et samfunnsoppdrag, eller som inntektskilde for et programvarehus.

Skulle man avdekke at disse applikasjonene inneholder sikkerhetshull, vil det utgjøre store forskjeller når i utviklingsprosessen dette avdekkes, i følge IBM/Gartners skildring av relativ kostnad ved feilretting.

Kostnaden av å fikse feil er lav i starten, og øker for hvert steg i utviklingsprosessen. Å fikse feil i produksjon er dyrt.
Kostnaden av å fikse feil er lav i starten, og øker for hvert steg i utviklingsprosessen. Å fikse feil i produksjon er dyrt.

IBM/Gartner - “Relative Cost of Fixing Software Defects” – illustrert av Segue Technologies

IBM/Gartner - “Relative Cost of Fixing Software Defects” – illustrert av Segue Technologies

Jo senere i prosessen avviket eller feilen blir tatt hånd om, jo dyrere og mer alvorlig blir gjerne konsekvensene.

En diett med ost og egg

Hvordan kan så en diett med ost og egg redde oss fra en uventet mageknipe?

Ved å innføre tiltak i utviklingsmodellen vår, som samsvarer med laginndelingen i sveitserostmodellen, og følgelig kumulative tiltak for å redusere risiko, vil vi sikre at vi ikke plasserer alle eggene våre i én kurv.

Et eksempel på en slik tilpassing i applikasjonsutvikling, er å benytte en prosess som går under navnet “Secure Development Lifecycle” (SDLC). SDLC bygger på Microsoft Security Development Lifecycle (SDL), og har som mål å redusere vedlikeholdskostnader som følger av sikkerhetsrelaterte feil og mangler. Prosessen tilpasses den sykliske utviklingsstrategien vi gjerne kjenner som “smidig utvikling”, og tilfører aktiviteter som er optimalisert for å avdekke svakheter i den, til enhver tid, aktuelle delen av utviklingsforløpet.

SDLC-modellen. Hvert steg i smidig utvikling tillegges et sikkerhetselement for å avdekke svakheter.
SDLC-modellen. Hvert steg i smidig utvikling tillegges et sikkerhetselement for å avdekke svakheter.

Sammenlagt vil “små” tiltak som krav-validering under spesifisering, trusselmodellering og risikoanalyse ved design-endringer, statisk kodeanalyse i implementasjonsfasen, og sikkerhetstesting og penetrasjonstesting under test og lansering, bidra til at vi fordeler eggene våre i flere kurver.

Å etablerte slike sikkerhetsrutiner i applikasjonsutvikling, som adresserer trusler, mangler, uoverenstemmelser og svakheter på et så tidlig stadium i prosessen som mulig, og en generell kompetanseheving på risikobasert tilnærming til systemutvikling, kan for mange virksomheter bety vinn eller forsvinn!