Penetrasjonstesting!
Penetrasjonstesting, ofte omtalt som pentesting er kunsten å teste et system for å finne svake punkter som kan utnyttes, samt risikoen disse svakhetene medfører for eieren av løsningen.
Sikkerhetstesting og pentesting har mange fellestrekk, men der tilnærminger som DAST primært fokuserer på webapplikasjoner og mer automatiserte tester, vil en pentest være mer omfattende og typisk også inkludere underliggende infrastruktur og nettverk. I noen tilfeller vil den også kunne ha et fysisk element der pentesterne vil forsøke å komme seg inn i lokalene for å avdekke svakheter ved fysisk sikring eller rutiner.
En penetrasjonstest vil alltid ha et avtalt omfang som regulerer hva pentesterne kan gjøre, når de kan gjøre det og hvilke ressurser og tjenester de kan teste.
Hvorfor pentest?
Det er ikke mulig å bevise at en løsning er sikker, kun at den ikke er sårbar mot gitte angrep. Dersom en leverer en løsning som har strenge krav til sikkerhet eller opererer innenfor et avtaleverk som tilsier det vil en pentest være et nyttig verktøy for å skape visshet i at en løsning og miljøet rundt er sikker.
Etter at testingen er gjennomført vil det normalt overleveres en rapport som beskriver hva som er testet og hvordan, samt en gjennomgang og vurdering av alle funn som er gjort. I noen tilfeller vil funn kunne beskrives som sårbarheter, men uten at disse nødvendigvis må rettes opp i på grunn av andre mitigerende tiltak eller fordi risiko eller konsekvens er lav.
Hva kreves for å gjennomføre en pentest?
Først og fremst trenger man en eller flere pentestere. Dette er ikke noe man gjør på egenhånd etter å ha sett noen videoer på Youtube! En pentest krever kompetanse på flere områder da noen angrep avhenger av å utnytte flere sårbarheter som hver for seg ikke er spesielt alvorlige.
Som utviklerteam må man sikre at miljøet som skal testet er skikkelig identifisert, slik at alle forstår hvor testingen finner sted. Omfanget av testen må defineres - husk på at det må være mulig å skille et faktisk angrep fra en pentest dersom begge skjer samtidig: Dersom du ser tegn på angrep mot et miljø som ikke er en del av testen og du har segregert miljøene dine bør du ta grep!
Som en del av planleggingen er det viktig å sjekke opp med kunden hvilke rutiner de har for pentesting. I mange tilfeller vil de ha et sikkerhetssenter (Security Operations Center, SOC) og/eller et nettverkssenter (Network Operations Center, NOC) som overvåker infrastrukturen kontinuerlig, disse må være en del av planleggingen for å unngå misforståelser eller problemer når testen begynner.
I noen tilfeller er det ønskelig med en pentest uten at dette varsles, da en ønsker å se om en slik test fanges opp - Husk på at en pentest i praksis er et angrep.
Når gjennomfører jeg en pentest, og hva gjør vi når den pågår?
I en perfekt verden bør man gjennomføre en pentester ved alle større endringer, men dette er ikke aktuelt med unntak av hos noen få aktører med særskilte krav. Her vil hver enkelt kunde ha ulike krav og forventninger, så det er viktig å ha retningslinjer på dette før en ser for seg å gjennomføre testen.
Dersom testen er varslet i forkant er det en kjempegod anledning til å følge med på logger og annen monitorering for å se om du ser noe unormalt. Dersom du i etterkant kan korrelere denne informasjonen med testene som blir rapportert har du en god mulighet til å lage automatiske varslingsrutiner som fanger opp avvik fra normalen.
Hva gjør jeg etter en pentest?
Når teamet får overlevert rapporten i etterkant av en gjennomført test er det viktig å gå gjennom denne med produkteier. Husk alltid på at sikkerhet aldri er enkeltpersoners ansvar - Det er leveranseleders ansvar å sørge for at sikkerhetstiltak implementeres, men det er teamets kollektive ansvar å sikre at det man bygger er i henhold til kravene som settes.
Identifiserte funn må klassifiseres og legges i backloggen. Deretter må man vurdere funnene opp mot viktigheten av å rette dem opp; noen funn kan vente, andre må tas så raskt som mulig. Dette vil variere fra leveranse til leveranse og funn til funn.
Du skal aldri gjennomføre en pentest selv med mindre du vet veldig godt hva du gjør. Det er ikke tillatt å kjøre verktøy som brukes ifm pentesting på Bouvetmaskiner eller i Bouvets nettverk uten at dette er klarert med Intern IT & Sikkerhet i forkant.