Hvad er en penetrationstest (pen-test)?
Ved hjælp af penetrationstests (ofte kaldet pentests) er det muligt at vurdere risikoen for et angreb på dit netværk, herunder de enkelte systemer i netværket samt specifikke applikationer. Find ud af, hvordan sådanne tests gennemføres, og hvad de betyder for et netværk, der allerede er i brug.
Hvad er penetrationstest?
I IT-branchen er en penetrationstest et planlagt angreb på et netværk af enhver størrelse eller på enkelte computere, der har til formål at afdække sårbarheder. Til dette formål anvendes forskellige værktøjer til at simulere forskellige angrebsmønstre, der er baseret på almindelige angrebsmetoder. Typiske komponenter, der underkastes en penetrationstest, er:
- Netværkskoblingsenheder såsom routere, switche og gateways
- Sikkerhedsgateways såsom software- og hardware-firewalls, pakkefiltre, virusscannere, load balancers, IDS og IPS osv.
- Servere såsom webservere, databaseservere, filservere osv.
- Telekommunikationssystemer
- Alle typer webapplikationer
- Infrastrukturinstallationer, f.eks. mekanismer til adgangskontrol
- Trådløse netværk, der er en del af systemet, såsom WiFi eller Bluetooth
Testning inddeles normalt i black box-, white box- og gray box-test: Ved black box-test får penetrationstestere kun oplysninger om adressen på målnettet eller -systemet. Ved white box-test har testerne indgående kendskab til de systemer, de skal teste. Ud over IP-adressen modtager de også oplysninger om de software- og hardwarekomponenter, der anvendes. Gray box-test, som er den mest almindelige form for penetrationstest, kombinerer black box- og white box-testmetoder. Der stilles grundlæggende oplysninger om IT-infrastrukturen til rådighed, f.eks. hvad systemerne bruges til og deres generelle opbygning.
Hvad skal jeg bruge til en pentest?
Hvordan kan du udarbejde en skræddersyet penetrationstest til dit eget netværk? Nedenfor finder du vigtige oplysninger om, hvad du skal tage højde for, når du gennemfører en penetrationstest.
Hvordan kan jeg forberede mig til en pentest?
For at gennemføre en penetrationstest med succes er det vigtigt først at lægge en klar plan. Find ud af, hvilke komponenter der skal testes, om du har alle de nødvendige værktøjer til rådighed, og fastlæg tidsrammen for hver enkelt test samt for den samlede vurdering af dit netværk.
Forberedelsesfasen er endnu mere afgørende, hvis du ansætter eksterne testere og ønsker at anvende white box-testmetoden. Hvis det er denne metode, du vil benytte, skal du give testteamet alle oplysninger om dit netværk og dets systemer samt den dokumentation, du har til dit system. Ved en black box-test er processen anderledes. Med denne metode behøver du kun at oplyse måladresserne for de komponenter, der skal testes.
Pen-testere bør have ekspertise inden for centrale tekniske områder såsom systemadministration, netværksprotokoller, programmeringssprog, it-sikkerhedsprodukter, applikationssystemer og netværkskomponenter.
Hvilke værktøjer er bedst til penetrationstest?
Da der findes så mange forskellige former for angreb, er det fornuftigt at have en lang række forskellige værktøjer til rådighed til penetrationstest. Nogle af de vigtigste er:
- Portscannere: Portscannere bruger specialværktøjer til at identificere åbne porte i et system.
- Sårbarhedsscannere: Sårbarhedsscannere undersøger systemer for at finde eksisterende sikkerhedssårbarheder, fejlkonfigurationer og utilstrækkelige adgangskode- og brugerpolitikker.
- Sniffere: En sniffer bruges til at analysere netværkstrafik. Jo stærkere krypteringen er, desto færre oplysninger vil den kunne indsamle.
- Pakke-generatorer: Pakke-generatorer er værktøjer, der bruges til at generere eller simulere netværkstrafikdata. Dette gør det muligt at efterligne netværkstrafik under en penetrationstest.
- Adgangskodeknækkere: Penetrationstestere bruger adgangskodeknækkere som en måde at få fat i adgangskoder, der ikke er sikre.
Mange af de ovenfor nævnte værktøjer er udviklet specifikt til netværkssikkerhedstest og er derfor skræddersyet til bestemte testområder. Selvom langt størstedelen af disse programmer stammer fra open source-sektoren, findes der også nogle kommercielle sikkerhedsprogrammer, som generelt er bedre dokumenterede og leveres med omfattende IT-support.
Hvad er de forskellige trin i en penetrationstest?
Testproceduren for en pentest kan opdeles i følgende fire trin:
Gennemgang af netværkskonceptet
En penetrationstest kan afsløre uoverensstemmelser eller svagheder i udformningen af et netværk eller i enkelte komponenter allerede i forberedelsesfasen. Hvis flere applikationer f.eks. er konfigureret med forskellige adgangsgrupper, kan dette hurtigt skabe komplikationer og udgøre en sikkerhedsrisiko for hele netværket, selvom netværket og de enkelte hostede programmer er tilstrækkeligt beskyttet. Nogle af disse tilfælde kan løses allerede under en indledende drøftelse, mens andre kun kan bekræftes ved at gennemføre en praktisk test.
Foranstaltninger til sikring af test
At sikre, at de systemer, der anvendes i et netværk, er så sikre som muligt, er afgørende for at have et sikkert virksomhedsnetværk. Under pentesten er det vigtigt at kontrollere de sikkerhedsforanstaltninger, der allerede er iværksat. Dette omfatter kontrol af installeret software såsom operativsystemer, systemtjenester og applikationer, som altid bør være opdateret. Hvis der anvendes ældre versioner, fordi de er kompatible med andre applikationer, skal du træffe alternative foranstaltninger for at beskytte dit system. Derudover spiller adgangs- og godkendelseskrav til individuelle systemer og programmer en vigtig rolle. Her behandler pentesten emner som:
- Adgangsrettigheder
- Brug af adgangskoder og kryptering
- Brug af eksisterende grænseflader og åbne porte
- Definerede regler (f.eks. firewall-regler)
Søg efter kendte sårbarheder
Det tager som regel ikke lang tid at opdage sikkerhedssvagheder, og derfor kender penetrationstestere ofte allerede de sårbare punkter i de systemer, de undersøger. Med de oplysninger, som testerne har indsamlet om versionsstatus og patch-niveau under deres undersøgelse af netværkskomponenternes sikkerhed, kan de hurtigt identificere, hvilke applikationer der udgør en sikkerhedsrisiko. Hvis der skal analyseres mange systemer på kort tid, kan det være en hjælp at bruge sårbarhedsscannere, selvom de ikke altid giver et præcist resultat.
Målrettet brug af sikkerhedshuller
Testeren kan kun afgøre, om de opdagede sårbarheder kan udnyttes eller ej, ved rent faktisk at udnytte dem. De kommandosekvenser, der anvendes til sådanne udnyttelser, er typisk scripts hentet fra forskellige kilder på internettet. Disse er dog ikke altid programmeret på en sikker måde. Hvis der udføres et usikkert angreb, er der risiko for, at den applikation eller det system, der testes, går ned, og i værste fald kan vigtige data blive overskrevet. Derfor bør penetrationstestere være forsigtige og kun bruge pålidelige scripts fra velrenommerede kilder eller helt undlade at teste sårbarheden.
Testteamet bør notere alle trin og resultater fra penetrationstesten. På den måde får du det bedste grundlag for at forstå de enkelte trin og vurdere situationen. Ud fra anbefalede prioritetslister kan du trin for trin optimere processen til beskyttelse af dit system. Det anbefales generelt at gennemføre en penetrationstest mindst én gang om året.
Hvad er fordele og ulemper ved penetrationstest?
Homogene computersystemer hører fortiden til. Dagens decentraliserede it-systemer kan dagligt medføre nye sårbarheder og fejl. Selvom softwareudviklere nogle gange hurtigt kan rette disse fejl, kan det andre gange tage dem lidt længere tid at løse sådanne problemer.
Det er her, penetrationstest viser deres styrker og giver følgende fordele:
- Penetrationstest undersøger systemer langt mere indgående end en almindelig sikkerhedskontrol.
- Det grundlæggende mål med penetrationstest er at kontrollere, hvor godt de enkelte komponenter fungerer sammen.
- Med en ekstern tester får du en yderligere vurdering samt et andet syn på dit underliggende sikkerhedskoncept.
- Professionelle penetrationstestere er specialuddannede og nærmer sig dit system, som en hacker ville gøre.
Penetrationstest, og især samarbejdet med eksterne testere, har dog også sine ulemper:
- Mens penetrationstesten gennemføres, har testteamet adgang til interne oplysninger og processer.
- Ved penetrationstest er der altid en risiko for, at testen kan forårsage uoprettelig skade.
- Penetrationstests giver kun et øjebliksbillede af dine netværkssystemer og bør derfor aldrig bruges som en undskyldning for at undlade at anvende almindelige sikkerhedsforanstaltninger.
Det er også vigtigt at huske på, at traditionelle penetrationstests ikke vurderer risici forbundet med social engineering. Mange virksomheder tilbyder tjenester, der kan afdække sådanne sårbarheder, og afholder desuden særlige kurser i, hvordan man forebygger angreb via social engineering.