7 Faser och steg för penetrationstest förklarade

1967 arbetade datasäkerhetsexperter från Rand Corporation, Willis Ware, Rein Turn, Harold Petersen och Benard Peters på en rapport efter en gemensam datorkonferens som förklarade att kommunikationsmedier mellan datorer var lätta att sticka igenom.

Den första penetrationen någonsin för brott mot datorsäkerhet myntades. Och med det utvecklade James P. Anderson ett steg-för-steg-sätt som låg till grund för penetrationstestning.

Strukturen var enkel; säkerhetsteam skulle gå igenom flera stadier, från att upptäcka en sårbarhet till att utveckla sätt att motverka den. Här är en kortfattad historia av penetrationstestning.

Att utnyttja ett företags säkerhet är inte lätt och kräver skicklighet och tid. Men med dagens teknik är det lätt för dåliga aktörer att hitta din organisations sårbara punkter. Penetrationer riktar sig till ett företags tillgångar som är synliga på internet (till exempel en webbapplikation, webbplatsen, domännamnsservrar (DNS) och e-postmeddelanden) för att få tillgång till och dra ut värdefull data.

Med hjälp av penetrationstester kan ditt företag identifiera och förstärka den möjliga ytan av attacker innan exploatering. Forskning stödjer det: En massiv 73 % av framgångsrika överträdelser har gått igenom penetrerande webbapplikationer från deras sårbarheter.

Men mer än någonsin behöver organisationer validera säkerheten för sina applikationer, system och nätverk. Att starta simulerade tester är ett effektivt sätt att ratificera ett systems säkerhetsstyrka och kontrollåtgärder. Det är inte en engångsaktivitet utan en vanlig sådan. Frekvensen av testerna baseras på ditt företags organisationsstruktur och risker ur bedömningar.

Tack och lov är penetrationstester inte komplicerade. Genom att utrusta dina IT-team med nödvändiga färdigheter kan din organisation konsekvent implementera säkerhet, särskilt vid betydande infrastrukturuppdateringar eller introduktion av nya digitala tjänster och tillgångar.

Och allt börjar med att förstå vad processen handlar om.

Vad är penetrationstestning?

Innan du går in i hur, är det bäst att svara på vad och varför. Penetrationstester (ofta förkortade som penntester) är en officiellt accepterad cyberattack riktad mot företag i en säker och kontrollerad miljö.

Blandat med säkerhetsrevisioner strävar penntester efter att upptäcka sårbarheter under en hanterad omfattning av organisationsmiljö. Taktiskt tar testerna en liknande inställning till vad en hacker följer. Några primära skäl till att ditt företag behöver penntester inkluderar:

  • Avslöja dolda sårbarheter före angripare.
  • Att stärka säkerhetsprocesser och strategier.
  • Sänker saneringskostnaderna och minskar uppehållstiden.
  • Att följa regelefterlevnad kring säkerhet/integritet.
  • Bevara ditt varumärkes rykte och bibehålla kundlojalitet.

Penntest kontrollerar ditt företags hälsa (motståndskraft mot attacker) och visar hur lätt det är att hackare bryter mot dina system. Dessutom kan insamlade insikter vara till hjälp för att hierarkisera cybersäkerhetsinvesteringar, följa branschstandarder och förbättra defensiva strategier för att skydda ditt företag från troliga hot. Men det är allt möjligt genom automatiserade testverktyg som kallas penetrationsverktyg.

Vad är Pen Test Tools?

En etisk hackare använder penntestverktyg för att utvärdera motståndskraften hos datorinfrastruktur genom simulering av världsattacker. Genom att använda dessa verktyg kan säkerhetsteam eliminera repetitivt testarbete, generera testrapporter snabbare och minska kostnaderna för flera skannrar.

Som du kanske har gissat finns det många typer: öppen källkod, webbapp, nätverk, mobilapp, moln, manuell, automatiserad och penetrationstestning som en tjänst. Många som de är, skulle det vara bäst att leta efter nyckelfunktioner som handlingsbara rapporter, CI/CD-integration, åtgärdsstöd och penntestcertifikat (endast ett fåtal kommer att erbjuda offentligt tillgängliga penntestcertifikat).

Med den grunden, låt oss bryta ned penetrationstestningsprocessen.

Stadier av penetrationstestning

I ett typiskt penetrationstest hittar du flera steg. Även om olika resurser kommer att tillhandahålla processen i olika steg, förändras inte den övergripande strukturen. Processen innebär spaning, skanning, bedömning av sårbarheter, exploatering och rapportering.

Återigen, de bästa testarna bekantar sig med många verktyg för att använda rätt verktyg i varje testfas. Varje milstolpe i processen kan uppfattas på följande sätt.

Informationsmöte

Ofta utelämnad hjälper den här fasen din organisation att etablera en gemensam grund med penntestaren. I det här skedet definierar du omfattningen av arbetet, engagemangsregler, tidslinjer och exakt logistik med tydliga mål och mål.

För att få ett komplett och användbart penntest hjälper detta steg dig att förstå de områden som behöver testas och de bästa metoderna. Som ett nybörjarsteg vill du alltid inte förbise det.

Innan man testar ett system måste en organisation ge sitt samtycke till testaren. Annars kan hans agerande anses vara olagligt. Organisationer lägger upp tydliga regler (i ett kontrakt) för ett smidigt arbetsflöde när de engagerar testare. Avtalet bör också avbilda kritiska tillgångar, testmål och försiktighetsåtgärder. Dessutom påverkar detta steg alla efterföljande åtgärder. I slutet är alla planer i linje med de förväntade testresultaten.

Spanings-/OSINT-samling

I denna fas samlar testare all tillgänglig information om systemet. Den insamlade informationen är knuten till kommande tester och drivs av steg ett-resultat. På så sätt kan testare få exakt information om data som ska samlas in och strategier att implementera. Om du väljer en aktiv spaning kopplar testaren in system direkt. Om du tar det passiva inhämtas allmänt tillgänglig information. För en omfattande, använd båda teknikerna.

Aktiv datainsamling innebär att arbeta med nätverk, operativsystem, användarkonton, domännamn, e-postservrar och applikationer. Passiv datainsamling handlar om öppen källkodsintelligens; man kan använda sociala medier, skatteinformation, webbplatser och annan offentlig data.

Här är några verktyg för öppen källkod (OSINT) som mina kollegor och jag har funnit användbara och lätta att använda när vi samlar in och relaterar information på webben. Med OSINT-ramverket kan du skapa en omfattande checklista för ingångspunkter och sårbarheter. Även om detta steg är nyckeln för interna och externa penntester, görs det inte i webbapplikationer, mobilappar och API-tester.

Läser in

En djupgående teknisk genomgång av systemet är nästa på tur. Genom skanningsverktyg som automatiska sårbarhetsskannrar och nätverkskartare kan du förstå hur målsystemet reagerar på olika intrång, öppna portar, nätverkstrafik, etc.

Huvudkomponenterna i detta steg är att skanna och analysera tillgångar. Du kan använda verktyg som Nmap för att avslöja datortjänster och värdar, skicka paket och analysera svar. I slutet av detta steg är du utrustad med information om tillgångar. Detta inkluderar operativsystem, tjänster som körs och öppna portar.

Genom att analysera resultaten har du grunden för att planera en exploatering. Du kan kartlägga systemets digitala landskap och lokalisera möjliga attackpunkter. Du kan utföra statisk och dynamisk analys för att få en tydlig förståelse av systemets svar på olika förhållanden.

Statisk analys inspekterar koden för dina applikationer medan de ännu inte ska köras; du kan använda verktyg för att skanna kodbaser sömlöst. För dynamiken inspekterar du kod medan applikationen körs. Kom ihåg att informationen som samlas in här måste vara korrekt och erhållen korrekt, eftersom framgången för efterföljande faser beror på den.

Bedömning/åtkomstvinst

Vid denna tidpunkt hjälper all data som samlats in i de föregående stegen till att lokalisera sårbarheter och om de kan utnyttjas. Även om detta steg är användbart, är det superkraftigt när det kombineras med andra penetrationstestprocesser.

För att utvärdera de associerade riskerna från upptäckta sårbarheter vänder sig testare till flera resurser; en är National Vulnerability Database (NVD), som analyserar mjukvarukänslighet publicerad i Common Vulnerabilities and Exposures (CVEs).

Därefter identifierar du mål och kartlägger attackvektorer. Målområden inkluderar värdefulla tillgångar som personaldata, kundinformation, partners/försörjningskedjor, leverantörer, hamnar, appar och protokoll. Webappattacker lanseras.

De vanligaste är SQL-injektion, cross-site scripting och bakdörrar. Systemet utnyttjas genom att eskalera privilegier, trafikavlyssning och stjäla data för att avslöja skadeeffekter. Genom att följa omfattningen som definieras i informationsinsamlingsstadierna, är testaren angelägen om att arbeta med de specificerade begränsningarna.

Utnyttjande

Även känd som underhållsåtkomststeget kontrollerar testaren om sårbarheterna kan användas. Denna fas involverar ett verkligt intrång och test för att komma åt systemet. Genom att använda verktyg som Metasploit simulerar testaren en attack i verkligheten.

Allt eftersom detta skede fortskrider hålls testaren ansvarig för en organisations resurser – för att säkerställa att systemen inte äventyras efter simuleringar.

Metasploit föredras för dess smidiga operationer för att utnyttja sårbarheter. Detta steg mäter effekterna av ett brott. Testaren kan försöka kryptera eller exfiltrera data och simulera ransomware och zero-day attacker. Nyckeln till ett framgångsrikt penntest är att hitta en balans mellan att tänja på gränser och upprätthålla ett systems integritet.

Experter är bäst att arbeta med; de utnyttjar sårbarheter som glider igenom automatisering. I slutet av den här fasen har du försökt erhålla högnivåprivilegier i systemet och nätverksinformation genom att identifiera tillgängliga data. Den etiska hackaren bör också förklara resultaten av utnyttjandet av värdefulla mål.

Riskanalys och rekommendation, granskning, rapportering

När testaren går förbi exploateringsfasen genererar testaren en rapport som dokumenterar resultaten. Rapporten ska användas för att åtgärda de upptäckta sårbarheterna.

En bra penntestrapport är ett arkiv för väldokumenterade sårbarheter i innehåll som hjälper en organisation att åtgärda säkerhetsrisker. Men den stora kommer att vara heltäckande om alla upptäckta sårbarheter och deras CVVS-resultat, kort om tekniska risker, möjlig påverkan på verksamheten, detaljerad bevakning av exploateringssvårigheter och taktisk rådgivning.

Dessutom bör rapporterna dokumentera alla faser, testmodeller, använda tekniker och riktade tillgångar. Om möjligt kommer testaren att ha en åsikt om testet uppfyller gällande rambehov. Sammanfattningsvis levereras rapporten bäst med en allmän förklaring och en teknisk guide.

Efter att ha rapporterat och presenterat rapporter är det avgörande att städa upp systemet. Det handlar om att återställa systemet till hur det var innan testet återställer modifiering till standardvärden. Rensningsaktiviteter innebär att man drar tillbaka alla körbara filer, temporära filer och skript från komprometterade system, eliminerar användarkonton som skapats för att ansluta till det komprometterade systemet och avskaffar rootkits i miljön.

Som det sista av stegen faller sanering i organisationens händer. Guidad av penetrationstestrapporterna och resultaten, riktar organisationen sig mot sårbarheterna, analyserar potentiella effekter, informerar beslutsfattande för att gå vidare och påverkar korrigeringsstrategier.

Eftersom detta steg avrundas av förbättringar av tidigare misstag, begränsas åtgärdande av alla exploateringsbara sårbarheter inom rimlig tid. Ibland kan denna fas sträcka sig ett tag till att göra upprepade tester på uppdateringar eller införa olika tester.

Praktisk tillämpning av penntester: en steg-för-steg-guide

För detta exempel har vi valt att använda Metasploit-ramverket. Du kan skapa ditt anpassade arbetsflöde; här är en typisk för att komma igång. Börja med att installera ramverket.

Om du använder Linux/macOS, använd kommandot:

curl https://raw.githubusercontent.com/rapid7/metasploit-omnibus/master/config/templates/metasploit-framework-wrappers/msfupdate.erb > msfinstall && \
  chmod 755 msfinstall && \
  ./msfinstall

Om du använder Windows, använd senaste installationsprogrammet för Windows. Eller använd kommandot Shell:

[CmdletBinding()]
Param(
    $DownloadURL = "https://windows.metasploit.com/metasploitframework-latest.msi",
    $DownloadLocation = "$env:APPDATA/Metasploit",
    $InstallLocation = "C:\Tools",
    $LogLocation = "$DownloadLocation/install.log"
)

If(! (Test-Path $DownloadLocation) ){
    New-Item -Path $DownloadLocation -ItemType Directory
}

If(! (Test-Path $InstallLocation) ){
    New-Item -Path $InstallLocation -ItemType Directory
}

$Installer = "$DownloadLocation/metasploit.msi"

Invoke-WebRequest -UseBasicParsing -Uri $DownloadURL -OutFile $Installer

& $Installer /q /log $LogLocation INSTALLLOCATION="$InstallLocation"

Och då…

Starta ett projekt – Detta kommer att vara din butik för data och arbetsyta. Eftersom du kan ha olika krav på olika undernät i din organisation, förbättrar du effektiviteten genom att organisera ditt arbete. Till exempel, om du har ett penntest för IT- och personalteamen, vill du generera separata resultat.

Bildkälla – MetaSploit

Få måldata – Här lägger du till data till ditt projekt genom en upptäcktsskanning eller importerar befintlig data. Skanna mål för att räkna upp öppna portar för att se ett nätverks tjänster. Använd skanningsalternativet. Ange sedan de IP-adresser du vill arbeta med, var och en på en rad. Du kan också använda importalternativet för att importera data från en lokal fil.

Bildkälla – MetaSploit

Visa/hantera värddata – Du kan titta på data från värd- eller projektnivå. Du kan växla mellan varje IP för att få en enda värdvy.

Bildkälla – MetaSploit

Sök efter sårbarheter – Starta en sårbarhetssökning genom Nexpose-alternativen. Detta steg utnyttjar sårbarhetsdatabaser för att matcha om någon hittas.

Utnyttja sårbarheter – Du kan utnyttja sårbarheter genom en sömlös valideringsguiden. Alternativt kommer Nexpose fortfarande att fungera.

Post Exploit Activity – Samla in data från exploateringen via sessionsfliken; klicka på ”samla”.

Bildkälla – MetaSploit

Rensa – När du är klar med att samla in data, använd alternativet ”städa upp” för att avsluta sessionen och rensa systemet.

Generera rapporter – I slutet av penntestet förser Metasploit dig med ett antal rapporter som är en startpunkt för datakonsolidering och resultatsammanställning.

En detaljerad snabbstartsguide om penntester finns på Metasploits snabbstartsguide.

Vanliga penntestverktyg

Några vanliga verktyg inkluderar Sn1per, Metasploit och Commix.

#1. Sn1per

Sn1per är ett sårbarhetsundersökningsverktyg som validerar effekten av attacker på klientsidan i hackinstanser. Du kan använda den för att simulera fjärrangrepp och attacker från användare i en kontrollerad miljö. Sn1per har 6k GitHub stjärnor. Den fungerar också som mediauttag på verktyget. Med Sn1per kan du spara tid genom att automatisera öppen källkod och kommersiella verktyg för att räkna upp sårbarheter.

#2. Metasploit

Metasploit är ett gigantiskt penntestramverk utvecklat av en enhet av delad kunskap mellan gemenskaper med öppen källkod. Den har 31,2 000 stjärnor på GitHub, vilket indikerar ett starkt intresse för mjukvaruvärlden. Metasploit stöds av ett samarbete mellan säkerhetsentusiaster som är tänkt att ta itu med sårbarheter och öka säkerhetsmedvetenheten.

#3. Commix

Commix är ett utmärkt verktyg för att utnyttja OS-kommandoinjektion. Medan Commix specialiserar sig på sårbarheter för kommandoinjektion, är det lätt att använda, gratis och med öppen källkod, plattformsoberoende, bärbar och modulariserad. Det fick 4k GitHub stjärnor. Det är gratis och öppen källkod.

Slutord

Att bryta ned penetrationstestningsstadierna är viktigt för företag att förbättra motståndskraften hos sina digitala produkter med ökade cyberattacker. Eftersom cyberbrottslingar kringgår traditionella säkerhetslösningar är simulering av verkliga attacker genom penetrationstester ett effektivt sätt att navigera i det ständigt föränderliga cyberhotslandskapet.

Genom att skräddarsy penntestet efter din organisations specifika behov kan du säkerställa effektivitet i säkerhetspolicyer. Att gå igenom alla stadier av penetrationstestet säkerställer att du får den bästa avkastningen på din investering för dina cybersäkerhetsinvesteringar.

För att få ett framgångsrikt penntest, var smart med det. Börja med att skaffa information om testet. Bygg på den informationen till spaningsnivån. En bra utgångspunkt för din spaning är att definiera omfattningsmålen som ska riktas mot systemet som ska kontrolleras.

Skanna sedan igenom systemet för att ha en djupgående kunskap och identifiera sårbarheter. Fortsätt till att starta en attack samtidigt som du vill inte skada systemet. Skapa sedan användbara rapporter som vägleder åtgärdande åtgärder. Kom ihåg att rensa upp och återställa systemet till dess ursprungliga tillstånd.

När de används på rätt sätt förbättrar penetrationstester din organisations säkerhetsställning genom att identifiera och åtgärda sårbarheter. När många organisationer migrerar till molnet och tar till sig ny teknik blir penetrationstester kritiska för informationssäkerhetsdomänen. Faktiskt, 75 % av företagen använder penntester att undersöka säkerhetsställning. Eller av efterlevnadsskäl. Om du kan ge riklig uppmärksamhet och behandla varje steg i testet självständigt, kommer du alltid att hitta värdet för att köra penetrationstester.

Kolla sedan in gratis verktyg för penetrationstestning (Pentest) för att testa applikationssäkerhet.