Trussellandskap, risikoanalyse og STRIDE.
Tenk som en angriper
IT-sikkerhet handler om å beskytte data, systemer og tjenester mot uønskede hendelser. Når vi bygger stadig mer komplekse applikasjoner som håndterer sensitiv informasjon, er det avgjørende å forstå hvilke trusler som finnes. Trusselmodellering er prosessen med å identifisere mulige sikkerhetsrisikoer, vurdere alvorlighet og planlegge mottiltak. Som utvikler er det din oppgave å tenke sikkerhet inn i alle faser av arbeidet.
For å forsvare må du forstå angriperen. Trusselaktører kommer i flere typer. Script kiddies er uerfarne angripere som bruker ferdige verktøy uten dyp forståelse. Hacktivister er motivert av politiske eller ideologiske formål. Organisert kriminalitet søker økonomisk gevinst profesjonelt. Statlige aktører har enorme ressurser og avanserte metoder. Og innsidere er ansatte eller tidligere ansatte med legitim tilgang.
De vanligste angrepstypene bør du kjenne igjen. Phishing og social engineering lurer brukere til å gi fra seg informasjon ved å utgi seg for noen de stoler på. Malware er skadelig programvare som virus, ormer, ransomware og trojanere. DDoS overbelaster et system med trafikk så ekte brukere stenges ute. Og man-in-the-middle avlytter eller manipulerer kommunikasjonen mellom to parter.
OWASP Top 10 og risikovurdering
For å vite hvor man bør sette inn forsvaret, finnes en uvurderlig liste. OWASP (Open Web Application Security Project) publiserer hvert fjerde år en liste over de ti mest kritiske sikkerhetstruslene i webapplikasjoner. Blant de viktigste i 2021-versjonen er Broken Access Control (A01), der brukere får tilgang til ressurser de ikke skal ha – for eksempel ved å endre bruker-ID i en URL for å se andres data. Cryptographic Failures (A02) er manglende eller svak kryptering, som å lagre passord i klartekst. Injection (A03) er innsetting av ondsinnet kode gjennom brukerinput, som SQL injection. Insecure Design (A04) er grunnleggende designfeil, som å mangle trusselmodellering helt. Og Security Misconfiguration (A05) er feilkonfigurert sikkerhet, som standardpassord som aldri ble endret.
For å prioritere bruker vi risikovurdering, basert på en enkel formel: Risiko = Sannsynlighet × Konsekvens. Sannsynligheten kan være lav, middels eller høy, og det samme kan konsekvensen – fra minimal påvirkning til alvorlig økonomisk tap, omdømmetap eller personskade. En trussel med høy sannsynlighet og høy konsekvens er kritisk og må håndteres først, mens en med lav sannsynlighet og lav konsekvens kan vente. Slik kan du fordele begrenset tid og ressurser der de gjør mest nytte.
STRIDE og trusselmodellering i praksis
For å gjøre trusselmodellering systematisk bruker vi en metode som heter STRIDE. Bokstavene står for seks trusselkategorier. Spoofing er forfalskning av identitet. Tampering er manipulering av data. Repudiation er at noen benekter en handling de gjorde. Information disclosure er avsløring av informasjon. Denial of service er tjenestenektangrep. Og Elevation of privilege er å skaffe seg uautorisert tilgang. Ved å gå gjennom hver kategori sikrer du at du ikke glemmer noen type trussel.
Selve prosessen har faste steg. Først identifiserer du verdifulle ressurser – hva skal beskyttes? Deretter lager du et dataflytdiagram som viser hvordan data beveger seg i systemet. Så identifiserer du truslene med STRIDE, og til slutt planlegger du mottiltak.
Ta et innloggingssystem som eksempel. De verdifulle ressursene er brukerkontoer, brukerdata som personnummer og betalingsinfo, og sesjonstokens. Dataflyten går fra bruker via nettleser til webserver til database. STRIDE avdekker trusler som phishing (spoofing), SQL injection (tampering), svakt passord (elevation), sesjonshijacking (information disclosure) og brute force (spoofing). Hver vurderes for sannsynlighet og konsekvens, og får mottiltak: parameteriserte spørringer mot SQL injection, krav til passordstyrke og tofaktor mot svake passord, rate limiting og CAPTCHA mot brute force, og HTTPS mot sesjonshijacking. Slik blir abstrakte trusler til konkrete tiltak.
Oppsummering
Godt forsvar begynner med å tenke som en angriper. Trusselaktører spenner fra script kiddies til statlige aktører og innsidere, og vanlige angrep inkluderer phishing, malware, DDoS og man-in-the-middle. OWASP Top 10 gir en prioritert oversikt over de mest kritiske websikkerhetstruslene, fra broken access control til injection og misconfiguration.
For å prioritere bruker vi risikovurdering (Risiko = Sannsynlighet × Konsekvens), og for å være systematiske bruker vi STRIDE til trusselmodellering: identifiser ressurser, kartlegg dataflyt, finn trusler, planlegg mottiltak. Slik gjør vi abstrakte trusler om til konkrete tiltak. I neste kapittel går vi fra modellering til kode – sikker programmering.
Dette kapitlet er skrevet av Anthropics toppmodeller (Claude Opus og Claude Fable) og er foreløpig ikke manuelt gjennomgått — kvalitetskontrollen gjøres av uavhengige KI-agenter, og innmeldte feil rettes fortløpende. Funnet en feil? Meld fra, så retter vi den. Les mer om hvordan innholdet lages.