In English

Säkerhetstest • Artikel

6 april, 2023

9 tips till dig som beställer pentester

Att förbereda sig för ett penetrationstest kräver i många fall både planering och kommunikation. Här är nio steg du som beställare kan följa för att skapa bra förutsättningar för ett framgångsrikt test med minimal inverkan på affärsverksamheten.

Penetrationstestning är en viktig del av alla organisationers cybersäkerhetsstrategi. Ett penetrationstest, även känt som pentest, är en simulerad cyberattack som är utformad för att identifiera sårbarheter i en organisations system, nätverk och applikationer. 

Pentester är alltid scenariobaserade. Värdet av ett test är hårt knutet till de angreppsscenarion man på förhand har bedömt som sannolika, och som man sedan lyckas simulera med ett väl utformat test. I vissa fall är utformningen en relativt enkel övning, exempelvis vid testning av en enskild webbapplikation. Andra gånger kräver utformningen betydligt större precision, till exempel när komplexa system med flertalet olika integrationer och tjänster ska testas, vilka samtliga kan utgöra angreppsytor. Potentiella incitament från angripare behöver även de vägas in, där det aldrig handlar om en enskild angripare, utan snarare ett spektrum av potentiella hotaktörer med olika motiv och förmågor.

Det finns med andra ord en del saker att förbereda inför ett pentest för att säkerställa dess framgång – särskilt vid tester som omfattar hela nätverk och system. I den här artikeln kommer vi titta närmare på några av de saker som en organisation bör tänka på inför, under och efter ett sådant test.

Boka uppstartsmöte

På testets startdag är det alltid bra att inleda samarbetet med ett uppstartsmöte tillsammans med alla inblandade, inklusive samtliga testare samt teknisk personal från er sida. Vanligtvis sker det genom en videokonferens där även en demo av det som ska testas bör visas.

Uppstartsmötet är även ett bra tillfälle att klargöra om det finns specifika områden ni vill att konsulterna fokuserar på, eller om ni ha en mer övergripande granskning av miljön. Passa gärna på att redan nu boka upp ett avrapporteringsmöte på testets sista dag.

Skapa konton med rätt behörigheter

Ett pentest utförs under en begränsad tid, med målet att förbättra säkerheten för att skydda sig mot någon som potentiellt har obegränsat med tid. Den som utför testet vill med andra ord ha så mycket produktiv tid som möjligt till sitt förfogande.

En vanlig orsak till att pentest fördröjs är konsulten som utför uppdraget inte har tillgång till de system eller nätverk som faktiskt ska testas. Om inte konton med rätt behörigheter inte redan finns på plats och är aktiverade kan testet helt enkelt inte påbörjas, och mycket onödig tid går till spillo. 

Vilka konton som behöver skapas beror på vad det är för slags test, men vanliga exempel är användarkonton, adminkonton, serveraccess med admin-behörighet, AD-konton och VPN-konton. Det är även viktigt att tänka på att skapa konton och testdata med olika behörighetsnivåer för att kunna få bra täckning av alla funktioner och kunna testa åtkomstkontroll mellan olika konton. Ett konto per testare och behörighetsnivå bör finnas tillgängligt vid start. Anta att ett system kan husera tre olika roller då ska varje testare ha ett konto per roll. Är det två testare som utför uppdraget så behöver alltså sex konton sättas upp totalt.

Informera berörda personer

En pentestares uppgift är att hitta säkerhetsbrister. En del i det arbetet går ut på att få systemet att bete sig på sätt det normalt inte gör, till exempel genom att manipulera data eller kringgå behörighetskontroller och säkerhetsmekanismer. 

Har ni aktiv övervakning, såsom en SOC eller dylikt på plats, som kan tänkas reagera på detta? I så fall kan ni välja att informera den i förväg för att undvika att dra igång skarpa incidenter. Ett annat alternativ är att välja att inte informera om ett kommande test, just för att även testa sitt försvars responsförmåga. Då behöver ni dock vara beredda på att fånga upp larmet högre upp i rapporteringskedjan.

Utöver det bör även berörda hosting-partners informeras om att ett test är på gång, så att de förbereda sig för eventuella störningar och säkerställa att deras system och nätverk inte påverkas av testningen.

Skapa en testmiljö

Som tidigare nämnt kan ett pentest innebära påfrestningar på det system som granskas, då målet är att simulera någon som vill åsamka skada. Att pentesta skarpt i en produktionsmiljö är därmed riskabelt, och i de flesta fall inte att föredra. Istället bör ni överväga att skapa en dedikerad testmiljö som är så produktionslik som möjligt. Det är dock viktigt att säkerställa att testmiljön inte har några kopplingar till produktionsmiljön.

Vid test av multitenantsmiljöer behöver minst två olika instanser sättas upp för att kunna testa separation av information och miljöer. Har tjänsten funktionalitet som kräver autentisering genom BankID ska även test-BankID finnas tillgängligt, då konsulterna av säkerhetsskäl inte använder sina personliga BankID när de testar. Tänk även på att inte produktionssätta nya versioner under testets gång.

När testmiljön väl är på plats kan systemet testas ordentligt och effektivt, utan att riskera att orsaka diverse driftstörningar eller förlust av data.

Kontrollera slutligen att de inloggningsuppgifter och funktioner som berörda konton ska nå faktiskt fungerar, samt att testarnas IP-adresser är vitlistade i diverse yttre skydd, såsom brandväggar, WAF:ar och Cloudflare.

Förbered utrustning

Idag sker merparten av de pentester vi genomför på distans, vilket i många fall innebär att konsulterna inte behöver någon fysisk utrustning utöver sina egna datorer (förutom vid exempelvis ett assume breach-scenario, där utgångspunkten är en redan komprometterad enhet).

Om testet däremot ska genomföras på plats hos er finns det flera saker som kan behövas finnas förberedda när konsulten kommer till kontoret, såsom skrivbordplats med trådad nätverksaccess, dator med lokal adminbehörighet (alternativt tillstånd att koppla in konsultdator i ert nätverk), intern mail, internt domänkontosamt passerkort till kontoret.

Dela med er av kunskap och dokumentation

En person som kommer utifrån och ska testa er produkts säkerhet under begränsad tid har av förklarliga skäl inte lika bra produktkännedom som du och dina kollegor har. All information ni kan dela med er av som beskriver hur produkten är uppbyggd och hur den fungerar kan därför både öka testets effektivitet och kvaliteten i dess slutresultat.

Bland den dokumentation som är bra att dela med sig av ingår bland annat testdata, källkod, domänkunskap och affärslogik och systemanrop till komplexa flöden. Saknas exempelvis testdata är risken att testet fastnar på komplexiteten kring systemet om testflödet är beroende av mycket indata. Detta är särskilt viktigt att tänka på vid test av API:er. 

Andra saker som underlättar testarens arbete är tillgång till Swagger/Postman collection, kartor över systemet och länkar till Github/Gitlab. Tänk även på att förklara interna termer och namn som kan vara svåra för en utomstående att förstå.

Upprätta kommunikationskanaler

Att upprätta kommunikationsvägar mellan konsulterna och din organisation är bra utifrån ett effektivitetsperspektiv, framför allt när frågor behöver besvaras för att komma vidare i testet. Men att ha en fungerande kommunikationskanal är också en viktig säkerhetsåtgärd. Om allvarliga problem uppstår under testets gång, till exempel om kritiska sårbarheter identifieras, är det viktigt att snabbt kunna få tag på rätt person. 

För snabbare kommunikation under testet brukar en gruppchat vara en smidig lösning, till exempel via Slack eller Teams. Tänk dock på att låta de som utför testet arbeta så effektivt som möjligt för många frågor eller dagliga avstämningar kostar både fokus och tid.

Städa upp efter avslutet test

Efter avslutat uppdrag är det viktigt att säkerställa att alla nya behörigheter testarna har fått tas bort ur miljön. Vid mobiltester ska även alla inbjudna konton från/till testflight/firebase raderas. Se även till att eventuella brandväggsöppningar är stängda.

Vid mer omfattande sårbarheter kan även ett återtest bli aktuellt för att verifiera att dessa är åtgärdade.

Är något oklart? Fråga!

Oavsett om kontakten inför ett pentest sker via en Service Delivery Manager (SDM), uppdragskoordinator eller pentestaren själv kommer en seriös aktör förse dig med mer exakt information om vad ni som beställarorganisation behöver förbereda inför ett test. Är det något du inte förstår – fråga! Det är mycket bättre att låta er kontaktperson förklara två gånger än att det blir missförstånd och testet fördröjs eller i värsta fall behöver skjutas upp.

Kontakta oss

Vi erbjuder flera kontaktvägar och återkopplar så snart som möjligt. Har du känslig information ber vi dig att maila krypterat.