12.05.2020

Sikkerhetstest: Enkle grep for en sikrere hverdag

Det er et mareritt å oppdage at uvedkommende har fått tak i dataene dine. Jo mer vi digitaliserer livene våre, jo mer åpner vi opp angrepsflatene og gjør oss sårbare. Men du trenger ikke komplekse og dyre verktøy, eller spesialisert kompetanse, for å redusere risikoen for inntrengninger. Hvordan kan testere bidra til en sikrere hverdag?

Truslene vi står overfor

Trusselbildet som norske selskaper står overfor i dag kan grovt sett deles inn i to kategorier etter hva som er hovedårsaken til et vellykket angrep: teknologien og brukerne.

Mange inntrengninger i norske datasystemer kunne vært unngått ved å gjøre tjenester mindre tilgjengelige på det åpne nettet. Et annet tiltak er å sørge for at systemene er oppdaterte og patchet.

Selv om man ikke kan stole 100% på et verktøy, vil nyere teknologi kunne bistå i å luke ut elementære sikkerhetsrisikoer i applikasjonene. Interactive Application Security Testing (IAST) er en samlebetegnelse for en type verktøy som kan finne svakheter i applikasjoner og servere, enten dynamisk (DAST) eller når systemene kjører (RASP). Et eksempel på et slikt verktøy er Acunetix, hvor et dashboard gir status over sikkerhetsproblemer i applikasjonen din, og gjør det lettere å prioritere hvilke som er kritiske. Du kan lese mer om disse verktøyene på Soco TestRadar 2020.

Brukerne og systemforvalterne er dessverre en av de mest sårbare delene av et IT-system. Det er nærmeste blitt en anbefalt angrepsstrategi i penetrasjonstesting å forstå og simulerere vanlig brukeratferd. I dette ligger det ikke bare at brukere manipuleres eller narres til å oppgi passord eller klikke på ondsinnede lenker, men også at hackere ønsker å forstå hvordan vanlige brukere benytter IT-systemene sine. Det er lettere å omgå IT-sikkerhet hvis man opptrer som en legitim bruker eller benytter programvare på en tilnærmet normal måte.

If you think technology can solve your security problems, then you don’t understand the problems and you don’t understand the technology. Bruce Schneier (Secrets and Lies: Digital Security in a Networked World, 2015)

Hva kan jeg som tester gjøre?

Som testere kommer vi gjerne borti sikkerhetstesting i to ulike situasjoner.

Ofte skal vi teste at en løsning gir den sikkerheten som den skal. Vi kjører f.eks. tester på at de nye innloggingsfeltene ikke ukritisk aksepterer script eller andre teknikker som kan gi urettmessig tilgang. Dette innebærer et tankesett hvor vi målrettet verifiserer at et tiltak er implementert. Slike tester velger noen å kalle «blue team» aktiviteter.

I andre kontekster er fokuset for sikkerhetstesten å få tilgang og ta kontroll - koste hva det vil. Da snakker vi heller om penetrasjonstesting og «red team» aktiviteter. Vi bruker alle midler for å lete etter svakheter, helt fritt fra hva som er spesifisert i krav og testplaner.

Dette kan virke som aktiviteter som krever spesialisert kunnskap. Derimot er det flere grep som testere kan gjøre for å avdekke grunnleggende svakheter tidlig i utviklingsprosessen.

1. Gi innspill til utviklingsprosessen

Sikkerhet må som kjent bygges inn i et system. Det vil bli en altfor krevende oppgave å «teste sikkerhet inn i applikasjonene». Sett deg selv og teamet ditt inn i grunnleggende sikkerhetsprinsipper for utviklingen, f.eks. prinsippene gitt fra Nasjonal Sikkerhetsmyndighet.

2. Evaluer versjonene av programvaren som skal ut i produksjon

Sjekk om det finnes kjente svakheter ved programvaren som du kommer til å benytte i dine systemer, f.eks. versjonene av servere, operativsystemer, tredjeparts software, tjenester og protokoller. Det finnes mange databaser tilgjengelige hvor du kan sjekke om versjonen du produksjonsetter har kritiske svakheter. Du kan for eksempel lete i Common Vulnerabilities and Exposures (CVE) oversiktene som CVEdetails,  NIST og Mitre driver. Du kan også sjekke om det finnes lett tilgjengelig angrepskode for disse svakhetene på sider som Exploit-db.com. Finner du din applikasjon og versjon der, er det all grunn til å gjøre tiltak.

Husk også at det oppdages hundrevis av svakheter ukentlig, så vi testere kan godt stille spørsmål om hvordan rutinene er for å holde programvare oppdatert! 

3. Se systemet og applikasjonene, både utenfra og innenfra

Hva kan hele verden se av mitt IT-system? Det er fort gjort å glemme at selv om du ikke ser for deg at noen kan eller ønsker å angripe akkurat ditt system, så er det ofte mye informasjon tilgjengelig på nett. Automatiske tjenester som Shodan skanner etter applikasjoner, operativsystemer, åpne porter og protokoller – og tilbyr alt dette i en søkemotor. Som testere kan vi gjerne søke på vår bedrifts IP-adresse i slike databaser eller kjøre mer inngående søk for å se om vi er eksponerte på andre måter. Spesielt åpne Remote Desktop Protocol (RDP) er interessante for angripere.

Likeså kan vi testere sjekke om det er enkelt for besøkende på nettsidene våre eller applikasjonene våre å finne viktig informasjon som konfigurasjonsfiler, programvareversjoner, feilmeldinger som røper hvordan ting er satt opp eller passord policies.

4. Kjør «enkle» tester - både utenfra og innenfra

Siden vi ofte indirekte tester applikasjonenes sikkerhet, integritet og tilgjengelighet, kan vi også gjøre dette litt mer bevisst. Neste gang du skal teste et søkefelt eller et innsendelseskjema i applikasjonen din, kan du gjerne også teste med et utgangspunkt som «hva kan jeg gjøre med de feilene jeg finner»?

Du kan f.eks. kjøre enkle sjekker på Cross-Site Scripting (XSS) ved å sette inn en <b> og klikke «søk» for å sjekke om all tekst nå plutselig endres til bold. Likeså kan testere kjøre enkle sjekker for SQL Injections, som å prøve ‘-- -‘ i ett av innloggingsfeltene. Det finnes mange oversikter på nett hvor slike enkle sjekker er ramset opp.

Et annet grep er å sette seg inn i rollen som bruker, og forsøke gjennom utforskende testing å se hvilke skadelige applikasjoner man har tilgang til. Kan du som vanlig bruker for eksempel kjøre Powershell? Hvor mye data finner du som man egentlig ikke burde ha tilgang til? Hvordan kan applikasjonen jeg tester skjule brukere med uærlige intensjoner?

5. Øk kompetansen med verktøy og tenk som en penetrasjonstester

Er du komfortabel med å kjøre de enkle testene og har lyst til å fordype deg i enda mer kraftigere teknikker?

Det finnes mange ressurser tilgjengelige på nett. Open Web Application Security Project (OWASP) har laget en egen Testing Guide, og tilbyr også gratis treningsplattformer som OWASP Juice Shop og WebGoat. Du kan også vurdere å bruke de mange angrepsstrategiene som er angitt i Mitre Att&ck, eller benytte treningsplattformer som tilbys av Portswigger, HackTheBox og TG:Hack.

Slik kan du gjøre mer enn du kanskje trodde, og det med enkle grep som gjør hverdagen sikrere.

Lyst til å lære mer?

SOCO tilbyr kurs i sikkerhetstest for funksjonelle testere med Frans Diijkman. Her setter du opp din egen testmaskin med kraftige verktøy, og kan trene på å finne svakheter og forstå hvordan de kan utnyttes.

Les mer på SOCO Academy eller kontakt Tuva Narbuvold for mer informasjon.