Risikobasert sikkerhetstesting

Sikkerhetstesting tar for seg artefaktene enheter og komponenter snarere enn systemet som helhet. Det er en blanding av en “hvit-hatt” og en “svart-hatt” tilnærming, og kan gjøres fra utsiden og inn, eller fra innsiden og ut. Sikkerhetstesting drives av misbrukseksempler (misuse cases/abuse cases), og omfatter to strategier: Testing av sikkerhetsfunksjonalitet, og risikobasert testing basert på angrepsmønster.

OWASP Top 10 2021

OWASP Top 10 har siden 2003 representert de viktigste/vanligste sårbarhetene eller angrepstypene mot internettbasert programvare. Listen har vært oppdatert med ujevne mellomrom, men i det siste stort sett hvert fjerde år. Listen er viktig ikke bare fordi den forteller oss hvilke angrepstyper som er vanligst for tiden, men også fordi den representerer angrep som utgjør utgangspunktet for mer eller mindre uerfarne angripere – dette er det de kommer til å prøve først, så sørg for at du ikke er sårbar for det! OWASP Top 10 tar utgangspunkt i Mitres Common Weakness Enumeration (CWE).

Sikkerhetsoperasjoner

Det å passe på sikkerheten til et system etter at det har vært satt i drift, har tradisjonelt vært sett på som en (ja, nettopp) driftsoppgave som “de på IT” tar seg av.

Et vellykket programvaresikkerhetsinitiativ må imidlertid også omfatte sikkerhetsoperasjoner eller nettverkssikkerhet, for å sørge for full tilbakekopling til utviklerne.

Penetrasjonstesting

Ifølge Gary McGraw hviler programvaresikkerhet på tre pilarer:

  1. Anvendt risikostyring: Ta på deg den svarte hatten din for å avdekke alle mulige trusler. Utfør risikoanalyse på arkitekturnivå, dvs. trusselmodellering med mere. Risiko må spores og motvirkes kontinuerlig gjennom hele utviklingslivssyklusen.
  2. Trykkpunkter for programvaresikkerhet: Identifiser kjerneaktiviteter som bidrar til forbedret programvaresikkerhet, og sørg for at sikkerhet blir tatt hensyn til i hvert steg av programvareutviklingssyklusen. Microsoft sitt Tiltrodde databehandlingsinitiativ (Trustworthy Computing Initiative) fra 2002 er et eksempel, som resulterte i Microsoft SDL (og senere SDL Agile).
  3. Kunnskap og god praksis: Alle utviklere må ha et minimum av sikkerhetskunnskap, og kunne bruke sjekklister som OWASP Top 10.

Sikkerhetsstandarder og evaluering

Det finnes mange sikkerhetsstandarder, og mange av disse går det an å sertifisere etter. Når vi sier “sikkerhetsevaluering”, mener vi vanligvis å bruke ISO/IEC 15408, også kjent som Common Criteria. Andre kjente standarder omfatter ISO/IEC 27001, ISF Standard Good Practice, ITIL, og COBIT. Disse fokuserer mer på hvordan organisasjonen er bygget opp (rutiner etc.) enn på hvordan man utvikler programvare.

Smidig utvikling og programvaresikkerhet

Smidighetsbevegelsen representerer alternativer til tradisjonell prosjektledelse i utviklingsprosjekter. Smidige metoder brukes typisk for å la utviklingsorganisasjoner respondere på usikkerhet og uventet hendelsesforløp. Scrum er den mest populære måten å introdusere smidighet, på grunn av sin enkelhet og fleksibilitet.

Innebygget sikkerhet

I en artikkel i IEEE S&P for mange år siden diskuterte Bruce Schneier hva som gjør at vi “kjøper” sikkerhet. Hvorfor får sikkerhetsoppgaver alltid lavere prioritet enn andre oppgaver? Hvorfor er utviklere generelt så lite interesserte i sikkerhet? Eksperter forteller stadig vekk utviklere at de må tenke er på sikkerhet, så hvorfor gjør ikke alle det? Hvorfor innser ikke ledere at de må sørge for å ha sikkerhetseksperter i utviklingsgruppen, på samme måte som de gjør med testere?

Innebygget personvern

Innføringen av GDPR var en gullgruve for mange konsulentselskaper – mange firma var usikre på hva det ville medføre, og brukte hundre-tusenvis av kroner på å bli “GDPR-klare”. En av de mest merkbare konsekvensene av GDPR var at mange virksomheter så seg nødt til å vaske epostlistene sine, og slette alle mottakere som ikke hadde gitt eksplisitt samtykke. Derfor fikk mange av oss gjentatte eposter hvor vi ble bedt om å bekrefte at vi fortsatt vill stå på epostlisten.

Risiko og programvaresikkerhet

Risiko er noe vi må leve med, men dessverre er det også noe de fleste av oss er veldig dårlige til å vurdere. En vanlig måte å beregne risiko på er å multiplisere konsekvensen av en hendelse med sannsynligheten for at den sal oppstå. Man illustrerer dette gjerne i en risikomatrise, der sannsynlighet er en akse, og konsekvens er den andre. I World Economic Forums risikorapport for 2019 finner vi cyberangrep langt opp til høyre i matrisen, kun slått av klimaendringer, ekstremvær og naturkatastrofer (som for meg egentlig høres ut til å være det samme).

Den som tror han er ferdig utlært er ikke utlært, men ferdig

I høst underviser jeg et nytt fag med den fengende tittelen “DAT250 Informasjons- og programvaresikkerhet” ved Universitetet i Stavanger. Som i fjor vil jeg lage norske sammendrag av utalgte forelesninger og legge ut her. Faget baserer seg delvis på bøkene…

Epostsikkerhet

Dagens tekst er hentet fra kapittel 19 i Cryptography and Network Security, og handler om sikkerhet i forbindelse med elektronisk post.

Det er to typer protokoller involvert når man sender epost. En type brukes for å sende epost fra kilde til destinasjon over internett; eksempler kan være Simple Mail Transfer Protocol (SMTP) og X.400. Den andre typen brukes for å overføre meldinger mellom klienter og epost-tjenere; her er IMAP og POP de mest vanlige valgene.