Hopp til hovedinnhold

De fleste som jobber med en eller annen form for systemutvikling i dag er kjent med OWASP Top 10, som er en liste over de 10 vanligste sårbarhetene i web applikasjoner. OWASP tilbyr i tillegg egne lister for blant annet API-sikkerhet og appsikkerhet. Alle listene fokuserer på å gi en innføring i hva de ulike sårbarhetene er og hvorfor de utgjør et svakhet som kan utnyttes. Det disse listene mangler er en forklaring på hvordan vi går frem for å ikke introdusere dem i det hele tatt.

OWASP Top 10 Proactive Controls kommer som et svar på dette, og fokuserer på å gi veiledning rundt konkrete tiltak og “best practices” som kan implementeres for å unngå å åpne opp for de vanligste sårbarhetene. For hvert punkt er det en kort og konsis forklaring på hvilke trusler man beskytter seg mot, og praktiske tips til hva man bør gjøre.

Som eksempler har jeg plukket ut 3 av punktene fra listen som jeg vil gi en liten oppsummering av i denne artikkelen.

C1: Implement Access Control

Lås dørene! Sørg for at brukere kun har tilgang til og kan utføre de handlingene som de har lov til.

Eksempler på tiltak:

  • Benytt least privilege- og separation of duties-prinsippene til å kun gi brukerne de tilgangene de ha og for å sørge for at ingen brukere har nok tilganger til å misbruke systemet alene.
  • Sørg for konsekvent tilgangsstyring ved å bruke sentraliserte autentiserings- og autoriseringsløsninger som for eksempel OAuth 2.0 med OpenID Connect. Ved å ha én kilde til sannheten og kun ett system å vedlikeholde, er det mye lettere å sørge for at tilgangsstyring håndteres riktig.
  • Valider hver request som kommer inn og ikke anta at tilgangen fortsatt er gyldig. Her kan verktøy som Spring Security sin FilterChain være til hjelp!

C5: Secure by Default Configurations

Ved å velge de sikreste alternativene som default er produktene våre sikret mot en del angrep ut av boksen.

Eksempler på tiltak:

  • Benytt MFA-innlogging som default for alle brukere.
  • Slå av ubrukte tjenester, fjern unødvendig funksjonalitet og lukk porter som ikke må være åpne. På den måten minsker vi angrepsflaten!
  • Benytt HTTPS for all kommunikasjon!
  • Endre alle default-passord i tjenester og systemer.

C8: Leveraging Browser Security Features

Moderne browsere har flere features som kan hjelpe oss med å unngå typiske sårbarheter i klienter.

Eksempler på tiltak:

  • Legg inn en Content Security Policy (CSP) for å unngå blant annet Cross-Site Scripting (XSS).
  • Tving browseren til å kun kommunisere med tjenesten din ved å sette HTTP-headeren Strict-Transport-Security (HSTS).
  • Sørg for å sette HttpOnly og Secure-flaggene på session-cookies for å sikre at de ikke blir sendt over HTTP eller kan aksesseres av JavaScript.
  • Sett en Referer-policy som hindrer lekkasje av sensitiv data eller brukeraktivteter via URLen.

Sånn, det var 3 av 10 punkter kort oppsummert. De andre 7 punktene er også helt klart verdt å sjekke ut, så jeg anbefaler å klikke dere inn og lese resten av OWASP Top 10 Proactive Controls.

Relevante lenker anbefalt av forfatteren

Liker du innlegget?

Del gjerne med kollegaer og venner