Penetrationstestarna: ”Som vanliga användare kunde vi göra allt som en administratör kunde göra på webbapplikationen”
Går det att veta att man som företag är säker utan penetrationstester? Hur enkelt är det att hacka system? Varför är penetrationstester nödvändiga? Konsulterna Christopher Robberts och Davis Freimanis svarar på dessa frågor genom att dela med sig av sina erfarenheter från att arbeta med penetrationstester på Omegapoint.
Informationssäkerhet har fått ett allt större fokus och företag lägger mer tid och resurser på att förebygga dataintrång. Trots det tar det bara några minuter in i ett penetrationstest innan sårbarheter hittas som kan vara en väg in för illasinnade aktörer att få åtkomst till hela system.
Penetrationstester används för att kunna hitta sårbarheter innan illasinnade aktörer lyckas utnyttja dem. Utan att göra tekniska granskningar av nätverk, system eller applikationer är det svårt att bedöma hur säkerheten egentligen ser ut hos företag då man inte kan vara säker på att man täppt igen alla säkerhetshål. Genom penetrationstester kan man däremot göra företaget säkrare genom att se till att säkerhetshål täpps till och att resurser läggs på att prioritera åtgärder av de mest kritiska sårbarheterna som kan ge de allvarligaste konsekvenserna.
– Fördelen vi har som penetrationstestare är att vi sätter oss in i tankesättet som illasinnade aktörer använder. Det kan vara svårare för en utvecklare som bygger upp en applikation att sätta sig in i samma tankesätt. Det är lätt att bli hemmablind när man arbetar på en applikation och då är det bra att få nya ögon som kollar på säkerheten specifikt, säger Davis Freimanis.
Vilka sårbarheter är vanliga att hitta genom penetrationstester?
En av de vanligaste sårbarheterna som hittas i webbapplikationer är trasig åtkomstkontroll vilket kan leda till exponering av känslig information till en obehörig aktör. Detta kan ske exempelvis genom att man kan agera som en användare utan att vara inloggad eller att man kan komma åt andra användares konton genom deras unika identifierare.
– Ett exempel på trasig åtkomstkontroll är att vi kom åt administratörssidor där vi kunde läsa kunddata, generera egna rabattkoder och även ändra pris på alla varor vilket innebar att vi kunde handla gratis. Vi som vanliga användare kunde komma åt gränssnitt som bara var tänkt för administratörer. Som vanliga användare kunde vi göra allt som en administratör kunde göra på kundens webbtjänst, berättar Christopher Robberts.
Andra vanliga sårbarheter som ofta hittas under penetrationstester är möjligheten till att utföra olika former av kodinjektioner.
– Vi kunde även i ett uppdrag lägga in en keylogger i ett betalsystem vilket är väldigt kritiskt. Genom keyloggern kunde vi skicka allt som en användare skrev via sitt tangentbord till vår server. När kunden i det här fallet skrev in sina kortuppgifter skickades de direkt till oss, berättar Davis Freimanis.
Hur skiljer sig Omegapoint från andra företag som utför penetrationstester?
Det Omegapoint kan tillföra är att vi arbetar med manuella tester kompletterade med verktyg där vi hittar saker som verktygen inte hittar. Vi sorterar och tolkar resultaten från scanningsverktygen som annars kan vara snåriga och svårtolkade. Vi kan också hjälpa kunden att analysera grundorsaken till varför en viss sårbarhet finns.
En annan viktig fördel vi har är att vi inte endast är ett penetrationstestbolag eller säkerhetsbolag utan har en bred kompetens med säkerhetsinriktade utvecklare inom företaget som vi kan ta hjälp av vid uppdrag. Vi kan identifiera brister i kundernas utvecklingsprocesser och hjälpa dem bli bättre på att utveckla där säkerhet är med från grunden. Att vi utvecklar säkert är vår unika konkurrensfördel.
– Verktygen brukar föreslå vanliga sårbarheter och exponeringar som man kan titta närmre på, men de är däremot mindre bra på att hitta logiska fel. Det är också viktigt att tänka på att de automatiska scanningarna oftast kan visa felaktiga positiva resultat. Därför är det viktigt att manuellt kunna bekräfta sårbarheten scanners säger sig ha hittat för att säkerställa att det faktiskt är en sårbarhet, förklarar Christopher Robberts.
Hur ser samarbetet ut med kund under ett penetrationstest?
Ett första möte hålls med kunden där man går igenom vad som ska testas och vilken omfattning som är med inom ramarna för testet. Efter penetrationstestet levereras en rapport till kunden med de sårbarheter som hittats, vad konsekvenserna kan bli av dem och rekommendationer på man ska göra för att åtgärda problemen. Till sist hålls ett avslutningsmöte där rapporten och de sårbarheter som hittats gås igenom med kunden.
– Vi försöker jobba väldigt nära utvecklarna eller en teknisk ansvarig hos kunden och hålla en kontinuerlig dialog via uppföljningsmöten. Om vi hittar något som vi tycker är kritiskt säger vi det till kunden omgående så att de kan ge en bedömning direkt och börja arbeta på en lösning. Vi försöker ha kontakt med kunden hela tiden under testets gång, förklarar Davis Freimanis.
Vilket typ av test utför ni mest på Omegapoint?
Black box
Testaren får inte tillgång till någon information om den miljö som ska testas och får inget användarkonto eller behörighet till systemet.
White box
Testaren får tillgång till allt om miljön som ska testas, inklusive källkod och behörigt användarkonto till systemet.
Gray box
Testaren får viss information om det som ska testas. En kombination av white box och black box.
– Helt klart whiteboxtester. Vi utgår från ett scenario som innebär att om någon vill ta sig in i ett system kommer de så småningom lyckas göra det. Vi jobbar under en väldigt begränsad tid, vilket betyder att vi inte har oändligt med tid att ta oss in i ett system utifrån, förklarar Christopher Robberts.
Vid whiteboxtester får man som testare behörighet och blir tillagd i listor för accepterad trafik för att kunna kringgå applikationsbrandväggar och andra säkerhetstjänster. En illasinnad aktör har vanligtvis obegränsat med tid och resurser och kan kringgå dessa skyddsmekanismer. Vid whiteboxtester vill man spara tid och gå direkt in i applikationen eller systemet för att testa det som är viktigast och säkra upp insidan genom att se vad kan man göra för skada, vilka attackvektorer som finns och vilken information man kan komma åt när man redan är inne i systemen.
Varför uppstår säkerhetsbrister?
Det finns många anledningar till att säkerhetsbrister uppstår. En stor orsak är att man inte har med säkerhet som en grundpelare i utvecklingsprocessen utan endast fokuserar på funktionalitet. Den mänskliga faktorn är också en av orsakerna till att säkerhetsbrister uppstår vid exempelvis felkonfigurationer och logiska fel.
– Genom att använda sig av nya ramverk är det många sårbarheter som åtgärdas automatiskt, men det finns en risk att man råkar konfigurera någonting fel. Biblioteken som används i modern utveckling kan i sin tur också vara sårbara. Det kan vara en ny väg in för illasinnade aktörer att skanna webben på de sårbara komponenterna och komma in den vägen, förklarar Davis Freimanis.
Då människan både utvecklar och implementerar säkerhetsåtgärder kommer det alltid finnas en risk att någonting blir fel vilket leder till att säkerhetsbrister uppstår. Dessa brister är vad illasinnade aktörer vill hitta och utnyttja. Ett automatiskt verktyg kommer inte kunna hitta de sårbarheter som illasinnade aktörer letar efter, och det är där penetrationstestare är nödvändiga. Det är endast genom att använda samma tankesätt och metoder som en illasinnad aktör använder som det är möjligt att hitta säkerhetshålen innan någon obehörig gör det, och på så sätt förhindra dataintrång och de ekonomiska förluster och varumärkesskador som dataintrång kan medföra.