Kvalitetssikring av exploits for bruk i penetrasjonstesting
Abstract
På daglig basis blir det innrapportert nye sårbarheter i ulike typer programvare og tjenester.
Samtidig blir det utviklet kode (exploits) for å utnytte disse, med den hensikt å kompromittere
sårbare systemer. Denne informasjonen sprer seg raskt, og for å holde seg oppdatert kreves det mer
og mer fra de som har ansvar for IT-sikkerheten.
For å beskytte seg mot dette trusselbilde er man nødt til å tenke på samme måte som en angriper. En
metode for å beskytte seg kan være å utføre en penetrasjonstest for å kartlegge eventuelle
sikkerhetshull. Penetrasjonstesting er prosessen der man benytter kvalifisert personell til å simulere
reelle angrep mot datasystemer eller nettverk, med det formål å evaluere og forbedre den
eksisterende datasikkerheten. Ved å bruke ulike typer verktøy som exploits og annen potensielt
skadelig programvare sørger man for at testen blir så reell og troverdig som mulig.
For å kunne benytte exploits eller potensielt skadelig programvare, må man være helt sikker på at
koden oppfører seg som forventet, og ikke resulterer i uønskede bivirkninger eller i verste fall
ødeleggelse av kundens produksjonssystemer.
Dette prosjektet går ut på å lage et konseptuelt rammeverk for å forsikre seg om at nettopp dette
ikke skjer. Vi har sett på ulike typer metodikker og rammeverk for hvordan man kan kvalitetssikre
nye exploits. I tillegg er det blitt laget et konseptuelt rammeverk for gjennomføring og testing av
exploits hvor vi har testet to exploits for å verifisere systemet.
For å forenkle kvalitetssikringen så har vi valgt å fokusere på forskjellige måter å automatisere
systemet. Dette innebærer blant annet logging av aktivitet fra flere forskjellige kilder, filtrering av
data og dynamisk presentasjon av disse på flere nivåer.