Ingen system er fullstendig ufeilbarlig. Penetrasjonstesting, ofte forkortet til pentesting, er en spesialiserte prosedyre som omfatter granskning, vurdering og forsterkning av et informasjonssystems samtlige komponenter mot mulige cyberangrep. Virksomheter benytter seg av bug bounty-plattformer for å avdekke sikkerhetsmangler i sine systemer. Cybersikkerhetseksperter som er kyndige innenfor penetrasjonstesting, identifiserer og eksponerer organisatoriske sårbarheter på lovlig vis gjennom slike bug bounty-ordninger. Men hvordan fungerer denne prosessen i praksis?
1. Passiv informasjonsinnsamling og sporing
Det første steget i en bug bounty- og penetrasjonstest er at testeren samler inn informasjon om det aktuelle systemet. Det finnes en rekke angreps- og testmetoder, så penetrasjonstesteren må prioritere basert på den innsamlede informasjonen for å finne den mest relevante testmetoden.
Dette trinnet handler om å hente ut viktige detaljer om systemets infrastruktur, slik som domenenavn, nettverkssegmenter, rutere og IP-adresser som er innenfor testens omfang. I tillegg bør all relevant informasjon som kan øke suksessen for angrepet, som for eksempel data om ansatte og telefonnumre, samles inn.
Data som hentes fra åpne kilder i denne fasen, kan overraskende nok avsløre kritisk informasjon. For å oppnå dette må den etiske hackeren bruke forskjellige kilder, med spesiell vekt på den aktuelle organisasjonens nettside og sosiale medieplattformer. Ved å systematisk samle denne informasjonen, skaper testeren et godt grunnlag for en vellykket bug bounty-innsats.
Det er imidlertid viktig å merke seg at de fleste organisasjoner har egne regler for penetrasjonstestere under en bug bounty-kampanje. Det er juridisk essensielt å ikke avvike fra disse reglene.
2. Aktiv informasjonsinnsamling og skanning
Penetrasjonstesteren lokaliserer hvilke aktive og passive enheter som opererer innenfor det gitte IP-området. Dette gjøres vanligvis med passiv innsamling i forbindelse med feiljakten. Ved hjelp av informasjonen som er samlet inn i denne fasen, må pentesteren bestemme en strategi – de må prioritere og definere hvilke tester som skal gjennomføres.
I løpet av denne fasen vil hackeren innhente informasjon om operativsystemet, åpne porter og tjenester, samt deres versjonsinformasjon for aktive systemer.
Dersom organisasjonen som initierer bug bounty-programmet gir tillatelse til penetrasjonstesteren å overvåke nettverkstrafikk, kan kritisk informasjon om systeminfrastrukturen samles inn. Dette er derimot ikke vanlig praksis. I slike situasjoner må penetrasjonstesteren overholde de gitte reglene.
3. Analyse- og testfase
I dette stadiet vil penetrasjonstesteren, etter å ha undersøkt hvordan målsystemet reagerer på ulike inntrengningsforsøk, forsøke å etablere aktive forbindelser med systemene som identifiseres som aktive. Dette gjøres ved å bruke tjenester som FTP, Netcat og Telnet for å samhandle med målsystemet.
Selv om forsøkene i denne fasen skulle mislykkes, er hovedmålet å teste dataene som er innhentet i de foregående informasjonsfasene og gjøre notater om resultatene.
4. Manipulasjons- og utnyttelsesforsøk
Penetrasjonstesteren bruker all innsamlet data for å forsøke å få tilgang til målsystemet på samme måte som en ekte, ondsinnet hacker ville gjort. Dette er et kritisk stadium, da penetrasjonstestere i en bug bounty-situasjon bør tenke som en potensiell angriper.
I dette stadiet vil pentesteren forsøke å infiltrere systemet ved å bruke operativsystemet som kjører på målsystemet, åpne porter og tjenester som kjører på disse portene, samt utnyttelsesmetoder som er relevante for deres versjoner. Siden nettbaserte portaler og applikasjoner består av mye kode og mange biblioteker, utgjør de et stort angrepsområde. En dyktig penetrasjonstester må derfor vurdere alle muligheter og implementere alle tillatte angrepsvektorer innenfor de gitte reglene.
Det krever betydelig kompetanse og erfaring å bruke eksisterende utnyttelsesmetoder på en fleksibel måte uten å skade systemet eller etterlate seg spor. Denne fasen er derfor den mest kritiske i penetrasjonstesten. For at rettsmedisinske team skal kunne gripe inn ved et reelt angrep, må nettangriperen etterlate seg spor.
5. Forsøk på privilegiering
Et system er ikke sterkere enn det svakeste leddet. Hvis en etisk hacker klarer å få tilgang til et system, vil de normalt logge på som en bruker med begrenset autoritet. I dette stadiet bør penetrasjonstesteren oppnå administratorrettigheter ved å utnytte svakheter i operativsystemet eller systemmiljøet.
Deretter bør de forsøke å få kontroll over andre enheter i nettverket med de nye tillatelsene de har fått, og til slutt oppnå høyeste brukernivå, som domeneadministrator eller databaseadministrator.
6. Rapportering og presentasjon
Etter at penetrasjonstesten og bug bounty-fasen er gjennomført, må penetrasjonstesteren presentere en detaljert rapport til organisasjonen. Denne rapporten skal inneholde sikkerhetssårbarhetene som er funnet, de trinnene som er tatt, samt hvordan sårbarhetene ble utnyttet. Den bør også inkludere informasjon som skjermbilder, kodeeksempler, detaljer om angrepsfasene, og mulige konsekvenser av sikkerhetsbruddene.
Sluttrapporten bør også inkludere forslag til hvordan sikkerhetshullene kan lukkes. Penetrasjonstesterens følsomhet og uavhengighet bør bevares. Den etiske hackeren skal aldri dele konfidensiell informasjon som er innhentet i denne fasen, og skal aldri misbruke denne informasjonen eller gi uriktig informasjon, da dette er ulovlig.
Hvorfor er penetrasjonstesting viktig?
Det overordnede målet med penetrasjonstesting er å identifisere hvor sikker systeminfrastrukturen er fra en angripers synspunkt og utbedre eventuelle svakheter. I tillegg til å avdekke svakheter i en organisasjons sikkerhetsstrategi, evaluerer den relevansen til gjeldende sikkerhetspolicy, tester ansattes bevissthet rundt sikkerhet, og undersøker virksomhetens etterlevelse av cybersikkerhetsprinsipper.
Penetrasjonstesting er stadig viktigere. For å analysere sikkerheten i både bedriftsstrukturer og personlige applikasjoner er det essensielt å få hjelp fra sertifiserte, etiske penetrasjonstestere.