Hva anses som den største risikoen for webapplikasjoner? Oppdatert «OWASP Top 10» endrer bildet fra 2017
Hvilke kategorier utgjør nå størst sikkerhetsrisiko ifølge OWASP? Vi tar en titt på hvilke kategorier som går ut av lista, hvilke som trer inn og hvilke som gjennomgår noen forandringer.
Artikkelen er skrevet av Guro Hotvedt, informasjonssikkerhetskonsulent i Watchcom.
Open Web Application Security Project (OWASP) innehar en liste over de ti kategoriene som blir ansett som de største sikkerhetsrisikoene for webapplikasjoner i dag. Denne listen brukes i dag av de fleste sikkerhetseksperter, utviklere og andre sikkerhetsinteresserte, inkludert oss i Watchcom. Versjonen som har vært i bruk de siste årene kom i 2017, men i september 2021 kom den oppdaterte versjonen.
«OWASP Top 10» er ment å reflektere risikobildet til webapplikasjoner vedrørende informasjonssikkerhet og utarbeidet basert på et bredt spekter av data - sårbarheter fra over 500 000 webapplikasjoner er analysert, og en undersøkelse er gjennomført blant eksperter innenfor utvikling og sikring av webapplikasjoner.
Åtte kategorier er tatt med fra datasettene, og to er inkludert fra undersøkelsen. En oversikt over de to versjonene og hvordan de relaterer til hverandre er vist i figuren under. Kort oppsummert er det introdusert tre nye kategorier, fire kategorier har endret navn, tre kategorier fra 2017 har blitt slått sammen med andre kategorier, og rekkefølgen har endret seg for samtlige.
De kategoriene som blir sett på som de største sikkerhetsrisikoene er øverst, mens kritikaliteten synker når en beveger seg nedover lista. I 2021-versjonen er det Broken Access Control som troner øverst, og som tar over som den kategorien som gir høyest sikkerhetsrisiko for webapplikasjoner. Denne kategorien innebærer at en angriper kan utnytte sårbarheter til å tilegne seg høyere rettigheter enn tiltenkt og dermed utføre handlinger høyere privilegerte brukere kan. Et eksempel på dette er en vanlig bruker som utfører administratorhandlinger slik som å slette andre brukere, endre viktig data eller innhente informasjon som ikke skulle vært tilgjengelig for denne brukeren.
Nummer to på lista er Cryptographic Failures, tidligere «Sensitive Data Exposure». Navnendringen skyldes at OWASP ønsker betegnelsen til å reflektere hovedårsaken til sikkerhetsrisikoen i stedet for hva som kjennetegner den. Kryptografiske feil eller svakheter kan blant annet føre til at sensitive data blir unødvendig eksponert eller at et system blir kompromittert, og vil dermed være en årsak til sikkerhetsrisikoen. En login-side som kjører over HTTP vil havne i denne kategorien. Ved å benytte HTTP i stedet for HTTPS vil ikke forespørsler sendt til serveren bli kryptert. Dermed kan en angriper lytte på trafikken for å hente ut brukernavn og passord som blir sendt i klartekst.
Punkt nummer tre på lista er Injection. Det er meget mulig topplasseringen av denne kategorien på «OWASP Top 10 2017» bidro til et økt fokus på beskyttelse mot injeksjoner. Kategorien innebærer å injisere kode som ikke er tiltenkt i applikasjonen for eksempelvis å hente ut informasjon vedrørende kunder fra en database gjennom SQL-spørringer eller kjøre kode på serveren med operativsystem-kommandoer. Kategorien er slått sammen med «Cross-Site Scripting (XSS)» (fra 2017), en sårbarhet som gjør det mulig å injisere kode på webapplikasjoner som kjører i brukerens nettleser når nettsiden besøkes. Dette kan blant annet benyttes til å stjele en brukers sesjonstoken for så å utgi seg for å være denne brukeren og å sende gyldige forespørsler i applikasjonen.
Nummer fire på lista er ny, Insecure Design. Som navnet tilsier omhandler kategorien sikkerhetsrisiko introdusert gjennom designet av applikasjonen, deriblant funksjonalitet som enten mangler eller er ineffektiv. Dette medfører at funksjonalitet kan bli misbrukt og dermed utgjøre en sikkerhetsrisiko. Et eksempel på dette er en login-funksjonalitet som benytter seg av sikkerhets- eller kontrollspørsmål for å gjenopprette en brukers passord. Slike spørsmål er frarådet da det ikke er en sikker identifikator på brukerens identitet og vil dermed være et eksempel på utrygt design.
Security Misconfiguration er femte kategori på lista, og inkluderer konfigurasjoner i applikasjonen som utgjør en sikkerhetsrisiko, for eksempel ved å vise detaljerte feilmeldinger eller informasjon om serveren som kjører. Disse eksemplene kan benyttes av en angriper til å kartlegge hvordan applikasjonen ser ut og tilrettelegge og muliggjøre større og mer komplekse angrep. Fra 2017 er også «XML External Entity (XXE)» lagt til - det å tillate en angriper å manipulere applikasjonens prosessering av XML data for eksempelvis å kunne lese filer fra applikasjonens server.
Videre ned på lista kommer Vulnerable and Outdated Components (endret fra «Using Components with Known Vulnerabilities» i 2017) som er listet til å utgjøre den sjette største sikkerhetsrisikoen for webapplikasjoner. Også dette navnebyttet blir gjennomført for å tydeliggjøre årsaken til sikkerhetsrisikoen. Bruk av utdaterte komponenter med kjente sårbarheter i webapplikasjoner gir en lettere vei inn for en angriper. Det ligger allerede skadevare og angrepsscenarier åpent og tilgjengelig på internett som en angriper kan få tak i og ta i bruk. Hvis en applikasjon benytter en komponent med en kjent sårbarhet som muliggjør å kjøre vilkårlig kode på serveren, vil det mest sannsynlig også finnes kode klar til å brukes på internett. Dette gjør veien til å utnytte sårbarheten enkel for en angriper og øker sikkerhetsrisikoen for applikasjonen.
Plass nummer syv på lista er Identification and Authentication Failures, tidligere kalt «Broken Authentication». Som endringen av navnet tilsier, inkluderer nå kategorien feil ved identifisering av brukere. Det er også verdt å merke seg at feilhåndtering av sesjoner inngår i denne kategorien. Som et eksempel er applikasjoner med en svak passordpolicy i denne kategorien da de gjør det lettere for en angriper å gjette seg frem til gyldige passord og dermed utsetter applikasjonen for økt sikkerhetsrisiko. OWASP skriver på sine sider at en grunn til en lavere plassering for denne kategorien på 2021-versjonen kan være økt tilgjengelighet av standardiserte rammeverk for identifisering og autentisering av brukere.
Software and Data Integrity Failures er også en ny kategori som gjør sitt innhopp på 2021-lista og legger seg på en åttendeplass. Denne kategorien omhandler feil som kommer av at kode og infrastruktur ikke blir beskyttet tilstrekkelig mot endring, altså at integriteten ikke er ivaretatt. Dette kan blant annet være auto-oppdateringer som blir lastet ned uten tilstrekkelig integritetsbeskyttelse, hvor ondsinnet kode kan være inkludert i oppdateringen. Kategorien «Insecure Deserialization» fra 2017 er inkludert da den også involverer utilstrekkelig beskyttelse mot endring når en bytestream blir gjenopprettet til et objekt. Utnyttelse av denne sårbarheten kan blant annet føre til at en angriper kan aksessere filer som ikke er tiltenkt, skaffe seg høyere privilegier i applikasjonen og i noen tilfeller kjøre vilkårlig kode på serveren.
Nummer ni på listen er Security Logging and Monitoring Failures, som også har endret navn fra «Insufficient Logging and Monitoring», uten å endre mye av innholdet fra 2017-versjonen. Kategorien baserer seg på at man ikke gjør et godt nok arbeid med å logge trafikk, aksesseringer og lignende, samt ikke har god nok monitorering av applikasjonen. Feil kan øke sikkerhetsrisikoen ved å påvirke synlighet av aktivitet i applikasjonen, hindre hendelsesalarmer og hindre etterforskning. Dette er vanskelig å oppdage fra datasettene, så kategorien ble med det inkludert i listen som følge av undersøkelsen gjort i forbindelse med utarbeidelsen av «OWASP Top 10».
Helt til slutt på lista finner vi nok en nykommer, Server-Side Request Forgery (SSRF), som inkluderer en spesifikk sårbarhet. Sårbarheten oppstår når en webapplikasjon henter eksterne ressurser hvor adressen er basert på data fra brukeren. Hvis dette ikke håndteres på en sikker måte vil en angriper kunne tvinge applikasjonen til å sende forespørsler til ressurser som er beskyttet bak brannmurer, VPN eller andre beskyttelsesmekanismer. Dette er mulig ettersom angriperen får den sårbare applikasjonen selv til å sende forespørselen, i stedet for at den kommer fra angriperens maskin.
Utnyttelse av sårbarheten kan gi uautorisert tilgang til applikasjoner og data, og i verste fall føre til at angriperen kan kompromittere servere. Sensitive data kan med det komme på avveie eller en angriper kan få informasjon om interne tjenester og nett serveren har tilgang til. Kategorien er den andre og siste kategorien som er lagt til fra undersøkelsen da datasettene ikke viste at SSRF var ofte til stede. Allikevel vurderer bransjen kategorien til å ha stort skadepotensial når den først er til stede i en webapplikasjon.
Som vi har sett har «OWASP Top 10 2021» gitt innpass til både nye og gamle kategorier, samt gjort endringer på navn og innhold på flere. «Broken Access Control» og «Cryptographic Failures» topper nå lista som de kategoriene som utgjør størst sikkerhetsrisiko, mens kategorier som «Injection» og «Identification and Authentication Failures» har blitt plassert lenger ned på lista enn tidligere.
For oss i test-teamet til Watchcom er denne lista en sentral del av arbeidet med testing av webapplikasjoner. En oppdatert versjon innebærer dermed at vi oppdaterer våre maler og dokumenter, slik at vi kan teste webapplikasjoner i henhold til de kategoriene som utgjør de største sikkerhetsrisikoene nå.
I en informasjonssikkerhetsverden der trusselbildet stadig er i endring er den oppdaterte versjonen av «OWASP Top 10» et viktig verktøy for mange. Både de som skal utvikle sikre webapplikasjoner og oss som skal teste dem. Med utgangspunkt i en oppdatert «OWASP Top 10»-liste vil vi alle være litt bedre rustet til å stå imot og håndtere de truslene som måtte komme.
Kilder:
- https://owasp.org/Top10/
- https://owasp.org/www-project-top-ten/