Hva er en penetrasjonstest (pen-test)?
Ved hjelp av penetrasjonstester (ofte kalt pentester) er det mulig å vurdere sannsynligheten for et angrep på nettverket ditt, både på enkeltstående systemer i nettverket og på bestemte applikasjoner. Finn ut hvordan slike tester gjennomføres, og hva de innebærer for et nettverk som allerede er i bruk.
Hva er penetrasjonstesting?
I IT-bransjen er en penetrasjonstest et planlagt angrep på et nettverk av hvilken som helst størrelse eller på enkeltstående datamaskiner, med det formål å avdekke sårbarheter. For å oppnå dette benyttes ulike verktøy til å simulere forskjellige angrepsmønstre, som er basert på vanlige angrepsmetoder. Typiske komponenter som gjennomgår en penetrasjonstest er:
- Nettverkskomponenter som rutere, svitsjer og gateways
- Sikkerhetsgatewayer som programvare- og maskinvarebrannmurer, pakkefiltre, virusskannere, lastbalanseringsenheter, IDS og IPS osv.
- Servere som webservere, databaseservere, filservere osv.
- Telekommunikasjonssystemer
- Alle typer webapplikasjoner
- Infrastrukturinstallasjoner, f.eks. mekanismer for tilgangskontroll
- Trådløse nettverk som er en del av systemet, for eksempel WiFi eller Bluetooth
Testing deles vanligvis inn i svartboks-, hvitboks- og gråboks-testing: Ved svartboks-testing får penetrasjonstestere kun opplysninger om adressen til målnettverket eller -systemet. Ved hvitboks-testing har testerne omfattende kunnskap om systemene de skal teste. I tillegg til IP-adressen får de også informasjon om programvare- og maskinvarekomponentene som benyttes. Gråboks-testing, som er den vanligste formen for penetrasjonstesting, kombinerer svartboks- og hvitboks-testmetoder. Grunnleggende informasjon om IT-infrastrukturen blir gjort tilgjengelig, for eksempel hva systemene brukes til og deres generelle oppbygning.
Hva trenger jeg for å gjennomføre en penetrasjonstest?
Hvordan kan du lage en tilpasset penetrasjonstest for ditt eget nettverk? Nedenfor finner du viktig informasjon om hva du må ta hensyn til når du gjennomfører en penetrasjonstest.
Hvordan kan jeg forberede meg til en penetrasjonstest?
For å gjennomføre en penetrasjonstest på en vellykket måte, er det viktig å først legge en klar plan. Finn ut hvilke komponenter som må testes, om du har alle nødvendige verktøy tilgjengelig, og tidsrammen for hver enkelt test samt for den samlede vurderingen av nettverket ditt.
Forberedelsesfasen er enda viktigere hvis du ansetter eksterne testere og ønsker å bruke «white box»-testmetoden. Hvis dette er metoden du ønsker å bruke, må du gi testteamet all informasjon om nettverket ditt og systemene i det, samt all dokumentasjon du har for systemet. For en «black box»-test er prosessen annerledes. Med denne metoden trenger du bare å oppgi måladressene til komponentene som skal testes.
Penetrasjonstestere bør ha kompetanse innen sentrale tekniske områder som systemadministrasjon, nettverksprotokoller, programmeringsspråk, IT-sikkerhetsprodukter, applikasjonssystemer og nettverkskomponenter.
Hva er de beste verktøyene for penetrasjonstesting?
Siden det finnes så mange ulike typer angrep, er det fornuftig å ha mange ulike verktøy tilgjengelig for penetrasjonstesting. Noen av de viktigste er:
- Portskannere: Portskannere bruker spesialiserte verktøy for å identifisere åpne porter i et system.
- Sårbarhetsskannere: Sårbarhetsskannere undersøker systemer for å finne eksisterende sikkerhetshull, feilkonfigurasjoner og mangelfulle retningslinjer for passord og brukere.
- Sniffere: En sniffer brukes til å analysere nettverkstrafikk. Jo sterkere krypteringen er, desto mindre informasjon vil den kunne samle inn.
- Pakke-generatorer: Pakke-generatorer er verktøy som brukes til å generere eller simulere nettverkstrafikkdata. Dette gjør det mulig å etterligne nettverkstrafikk under en penetrasjonstest.
- Passordknekkere: penetrasjonstestere bruker passordknekkere for å få tak i passord som ikke er sikre.
Mange av verktøyene som er nevnt ovenfor, er utviklet spesielt for nettverkssikkerhetstester og er derfor tilpasset bestemte testområder. Selv om de aller fleste av disse programmene kommer fra åpen kildekode-sektoren, finnes det også noen kommersielle sikkerhetsprogrammer, som generelt har bedre dokumentasjon og leveres med omfattende IT-støtte.
Hva er de ulike trinnene i en penetrasjonstest?
Testprosedyren for en penetrasjonstest kan deles inn i følgende fire trinn:
Gjennomgang av nettverkskonseptet
En penetrasjonstest kan avdekke uoverensstemmelser eller svakheter i utformingen av et nettverk eller i enkeltkomponenter allerede i forberedelsesfasen. Hvis for eksempel flere applikasjoner er konfigurert med ulike tilgangsgrupper, kan dette raskt føre til komplikasjoner og utgjøre en sikkerhetsrisiko for hele nettverket, selv om nettverket og de enkelte programmene som kjører på det er tilstrekkelig beskyttet. Noen av disse tilfellene kan løses allerede under en innledende gjennomgang, mens andre kun kan bekreftes ved å gjennomføre en praktisk test.
Tiltak for å sikre testene
Å sikre at systemene som brukes i et nettverk er så sikre som mulig, er avgjørende for å ha et sikkert bedriftsnettverk. Under penetrasjonstesten er det viktig å sjekke de sikkerhetstiltakene som allerede er iverksatt. Dette inkluderer å sjekke installert programvare som operativsystemer, systemtjenester og applikasjoner, som alltid bør være oppdatert. Hvis eldre versjoner brukes fordi de er kompatible med andre applikasjoner, må du iverksette alternative forholdsregler for å beskytte systemet ditt. I tillegg spiller tilgangs- og autentiseringskrav for individuelle systemer og programmer en viktig rolle. Her tar penetrasjonstesten for seg spørsmål som:
- Tilgangsrettigheter
- Bruk av passord og kryptering
- Bruk av eksisterende grensesnitt og åpne porter
- Definerte regler (f.eks. brannmurregler)
Søk etter kjente sikkerhetsproblemer
Det tar vanligvis ikke lang tid å oppdage sikkerhetshull, og derfor er penetrasjonstestere som regel godt kjent med angrepspunktene til testobjektene de undersøker. Med den informasjonen testerne har samlet inn om versjonsstatus og oppdateringsnivå under undersøkelsen av sikring av nettverkskomponenter, kan de raskt identifisere hvilke applikasjoner som utgjør en sikkerhetsrisiko. Hvis mange systemer skal analyseres på kort tid, kan det være nyttig å bruke sårbarhetsskannere, selv om disse ikke alltid gir et nøyaktig resultat.
Målrettet bruk av sikkerhetshull
Testeren kan bare finne ut om de oppdagede sårbarhetene kan utnyttes eller ikke ved å faktisk utnytte dem. Kommandosekvensene som brukes til slike utnyttelser, er vanligvis skript hentet fra ulike kilder på internett. Disse er imidlertid ikke alltid programmert på en sikker måte. Hvis et usikkert angrep gjennomføres, er det fare for at applikasjonen eller systemet som testes krasjer, og i verste fall kan viktige data bli overskrevet. Dette er grunnen til at penetrasjonstestere bør være forsiktige og kun bruke pålitelige skript fra anerkjente kilder, eller avstå fra å teste sårbarheten helt.
Testteamet bør notere alle trinnene og resultatene fra penetrasjonstesten. På denne måten får du et optimalt grunnlag for å forstå de enkelte trinnene og vurdere situasjonen. Basert på anbefalte prioriteringslister kan du trinn for trinn optimalisere prosessen for å beskytte systemet ditt. Det anbefales generelt å gjennomføre en penetrasjonstest minst én gang i året.
Hva er fordelene og ulempene ved penetrasjonstesting?
Homogene datastrukturer hører fortiden til. Dagens desentraliserte IT-strukturer kan føre til nye sårbarheter og feil på daglig basis. Selv om programvareutviklere noen ganger kan rette opp disse feilene raskt, kan det andre ganger ta litt lengre tid å løse slike problemer.
Det er her penetrasjonstesting viser sine styrker og gir følgende fordeler:
- Penetrasjonstester undersøker systemer langt mer grundig enn en vanlig sikkerhetskontroll.
- Det grunnleggende målet med penetrasjonstesting er å sjekke hvor godt de enkelte komponentene fungerer sammen.
- Med en ekstern tester får du en ekstra vurdering samt et annet perspektiv på ditt underliggende sikkerhetskonsept.
- Profesjonelle penetrasjonstestere er spesialutdannet og nærmer seg systemet ditt på samme måte som en hacker ville gjort.
Penetrasjonstesting, og særlig samarbeid med eksterne testere, har imidlertid også sine ulemper:
- Mens penetrasjonstesten pågår, har testteamet tilgang til intern informasjon og interne prosesser.
- Ved penetrasjonstester er det alltid en risiko for at testen kan forårsake uopprettelig skade.
- Penetrasjonstester gir kun øyeblikksbilder av nettverkssystemene dine og bør derfor aldri brukes som en grunn til å fravike vanlige sikkerhetstiltak.
Det er også viktig å huske på at tradisjonelle penetrasjonstester ikke kartlegger risikoer knyttet til sosial manipulering. Mange selskaper tilbyr tjenester for å identifisere slike sårbarheter og holder også spesielle kurs i hvordan man kan forhindre angrep gjennom sosial manipulering.