Plag din egen webapp

Adrian Alexander Eriksen
Mar 11 · 4 min read

Sikkerhetstesting må ikke utføres av en med sikkerhet i tittelen. Hvordan kan en utvikler gjøre litt selv?

Photo by Sean Lim on Unsplash

I utviklingsavdelingen er vi to personer som jobber fulltid med sikkerhet, sammen med flere hundre utviklere. Min kollega fortalte om at hvordan utviklere kan begynne å tenke sikkerhet, jeg ønsker å fortelle litt mer om testing og verktøy.

Du kommer langt hvis du starter med å spørre deg selv “Hvordan kan jeg få denne applikasjonen til å gjøre ting den ikke skal?”

Et kart over applikasjonssikkerhet

Mange utviklere har blitt kjent med OWASP og deres mest kjente verk, Top Ten. Det forteller om de ti mest utbredte sårbarhetene i webapplikasjoner, en god start når du ønsker å lære mer om sikkerhet.

OWASP har en rekke prosjekter som går dypere enn Top Ten, deriblant Web Security Testing Guide. Dette er et godt oppslagsverk som beskriver sårbarheter og hvordan du skal teste for dem. Bare ikke bruk den som enda en evinnelig og forbanna sjekkliste, da går den fort i skuffen.

Et enkelt verktøy

Mest sannsynlig har du allerede et verktøy for enkel sikkerhetstesting. Webapplikasjoner skrevet i JavaScript er utbredt og Chrome DevTools lar deg studere oppførselen nærmere. Kombinerer du verktøyet med et kritisk blikk, så kan du fort finne informasjon på avveie.

Har du Chrome installert er det enkelt å komme i gang. I menyen klikk View → Developer → Developer Tools og verktøyet er klart.

Network-fanen gir deg en oversikt over trafikken som genereres av en webapplikasjon, dette kan fort gullgruve med informasjon. Alt fra lastingen av selve siden til ressurser som stilsett og bilder fanges opp her.

Den mest interessante trafikken som genereres av webapplikasjoner, er ofte XHR-kallene. Denne trafikken genereres av klienter som kommuniserer med et API. For eksempel en React-applikasjon som kommuniserer med et API skrevet i Kotlin.

Kanskje finnes det sensitiv informasjon gjemt i kallene? Da sitter du på et mulig viktig funn.

Network-fanen i Chrome DevTools som viser XHR-trafikk.

Det er mye data tilknyttet webapplikasjoner og noe lagres på klienten. Application-fanen lar deg se nærmere på disse, her finner du cookies, session storage og local storage. Ofte finner du sensitiv informasjon, andre ganger finner du verdier som kan endres som igjen kan gi deg nye privilegier.

Application-fanen i Chrome DevTools som viser en oversikt over cookies.

Et kraftigere verktøy

Jeg startet sikkerhetsreisen min med utviklerverktøyene og fikk senere behov for en større og kraftigere verktøykasse. Burp Suite fra PortSwigger er en samling av verktøy for å gjøre sikkerhetstesting mer effektiv, dette har blitt mitt viktigste verktøy i hverdagen.

Dette er en proxy som legger seg mellom nettleseren og nettet, som lar den logge og manipulere all trafikk. Den innebygde utgaven av Chromium lar deg enkelte komme i gang, samtidig som du fortsatt har tilgang til Chrome DevTools.

Ofte ønsker vi ikke at absolutt all trafikk logges i Burp. Heldigvis kan vi sette et scope slik at kun sidene vi er interessert i logges. Vi kan i ettertid inspisere og arbeide med den loggede trafikken, det er her kraften i Burp ligger.

Som sikkerhetstester ønsker jeg ofte å endre på headere og annen last for å se hvordan en webapplikasjon reagerer, dette kan gjøres enkelt ved hjelp av Repeater.

Jeg starter ofte med å finne en forespørsel i loggen, denne sender jeg til Repeater som lar meg gjøre endringer på forespørselen før jeg sender den på nytt. Det er en veldig enkel handling, men Burp lar meg gjøre dette veldig effektivt.

Om man vil teste flere forskjellige verdier vil det være tungvint å legge de inn manuelt en etter en i Repeater. Heldigvis kan verktøyet Intruder hjelpe med å sende hundrevis av forespørsler på kort tid. Alt man trenger er en ordbok med alle variasjonene man vil teste, Intruder ordner resten og sender hundrevis av ulike forespørsler på veldig kort tid.

Gjennom konfigurasjon velger jeg hvor jeg ønsker å legge inn de ulike lastene eller om det er noen mønstre som det skal søkes etter.

Burp Suite byr på veldig mye mer funksjonalitet, men verktøyene jeg har snakket om er de viktigste. Verktøyene er tilgjengelige Burp Suite Community Edition som er tilgjengelig gratis fra PortSwigger.

Den betalte utgaven inneholder en skanner, men ikke fyr av automatiske verktøy før du forstår hvordan testing gjøres manuelt. Samtidig risikerer du å teste ting du ikke har lov til å teste.

Oppsummering

Det skal ikke mye til for å gjøre enkel sikkerhetstesting selv.

  1. Vær ondsinnet og tenk over hvordan applikasjonen ikke skal brukes.
  2. Ta med kart og kompass levert av OWASP.
  3. Hent frem en proxy og gi applikasjonen en veldig kjip dag.

Happy hackin’!

SpareBank 1 Utvikling

Vi jobber med digitale løsninger hos SpareBank 1.

Medium is an open platform where 170 million readers come to find insightful and dynamic thinking. Here, expert and undiscovered voices alike dive into the heart of any topic and bring new ideas to the surface. Learn more

Follow the writers, publications, and topics that matter to you, and you’ll see them on your homepage and in your inbox. Explore

If you have a story to tell, knowledge to share, or a perspective to offer — welcome home. It’s easy and free to post your thinking on any topic. Write on Medium

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store