complete penetration testing guide with sample test cases
Det är processen att identifiera säkerhetsproblem i en applikation genom att utvärdera systemet eller nätverket med olika skadliga tekniker. De svaga punkterna i ett system utnyttjas i denna process genom en auktoriserad simulerad attack.
Syftet med detta test är att säkra viktig data från utomstående som hackare som kan ha obehörig åtkomst till systemet. När sårbarheten har identifierats används den för att utnyttja systemet för att få tillgång till känslig information.
Ett penetreringsprov kallas också pennprovet och en penetrationstest kallas också en etisk hackare.
Vad du kommer att lära dig:
- Vad är penetrationstestning?
- Orsaker till sårbarheter
- Penetrationstestverktyg och företag
- Rekommenderade penetrationstestverktyg
- Rekommenderat penetrationsprovningsföretag
- Varför penetrationstestning?
- Vad ska testas?
- Typer av penetrationstest
- Tekniker för testning av pennor
- Penetration Testing Exempel på testfall (testscenarier)
- Slutsats
Vad är penetrationstestning?
Vi kan räkna ut sårbarheterna i ett datorsystem, en webbapplikation eller ett nätverk genom penetrationstestning.
Ett penetrationstest berättar om de befintliga defensiva åtgärderna som används i systemet är tillräckligt starka för att förhindra säkerhetsintrång. Penetrationstestrapporter föreslår också de motåtgärder som kan vidtas för att minska risken för att systemet hackas.
Orsaker till sårbarheter
- Design- och utvecklingsfel : Det kan finnas brister i utformningen av hårdvara och programvara. Dessa buggar kan utsätta dina affärskritiska data för exponering.
- Dålig systemkonfiguration : Detta är en annan orsak till sårbarhet. Om systemet är dåligt konfigurerat kan det införa kryphål genom vilka angripare kan komma in i systemet och stjäla informationen.
- Mänskliga fel : Mänskliga faktorer som felaktigt kassering av dokument, lämnande av dokument utan uppsikt, kodfel, insiderhot, delning av lösenord över nätfiskewebbplatser etc. kan leda till säkerhetsöverträdelser.
- Anslutning : Om systemet är anslutet till ett oskyddat nätverk (öppna anslutningar) kommer det inom hackares räckvidd.
- Komplexitet : Säkerhetsproblemet ökar i proportion till komplexiteten i ett system. Ju fler funktioner ett system har, desto större är chansen att systemet attackeras.
- Lösenord : Lösenord används för att förhindra obehörig åtkomst. De ska vara tillräckligt starka för att ingen kan gissa ditt lösenord. Lösenord bör inte delas med någon till någon pris och lösenord bör ändras regelbundet. Trots dessa instruktioner, ibland avslöjar människor sina lösenord för andra, skriver ner dem någonstans och behåller enkla lösenord som kan gissas.
- Användarinmatning : Du måste ha hört talas om SQL-injektion, buffertöverflöden, etc. De data som tas emot elektroniskt via dessa metoder kan användas för att attackera det mottagande systemet.
- Förvaltning : Säkerhet är svårt & dyrt att hantera. Ibland saknar organisationer rätt riskhantering och därmed sårbarhet induceras i systemet.
- Brist på utbildning för personalen : Detta leder till mänskliga fel och andra sårbarheter.
- Kommunikation : Kanaler som mobilnät, internet, telefon öppnar säkerhetsstöld.
Penetrationstestverktyg och företag
Automatiserade verktyg kan användas för att identifiera vissa standardproblem som finns i en applikation. Pentest-verktyg skannar kod för att kontrollera om det finns en skadlig kod som kan leda till ett potentiellt säkerhetsbrott. Pentest-verktyg kan verifiera säkerhetshål som finns i systemet genom att undersöka datakrypteringstekniker och ta reda på hårdkodade värden som användarnamn och lösenord.
Kriterier för att välja det bästa penetrationsverktyget:
- Det ska vara enkelt att distribuera, konfigurera och använda.
- Det ska enkelt skanna ditt system.
- Det bör kategorisera sårbarheter baserat på svårighetsgrad som behöver en omedelbar åtgärd.
- Det bör kunna automatisera verifieringen av sårbarheter.
- Det bör verifiera nytta som hittats tidigare.
- Det bör generera detaljerade sårbarhetsrapporter och loggar.
När du väl vet vilka tester du behöver utföra kan du antingen träna dina interna testresurser eller anställa expertkonsulter för att göra penetrationsuppgiften åt dig.
Rekommenderade penetrationstestverktyg
# 1) Acunetix
Acunetix WVS erbjuder säkerhetspersonal och mjukvaruutvecklare en rad fantastiska funktioner i ett enkelt, rakt fram och mycket robust paket.
=> Prova det bästa penntestverktyget här
# 2) inkräktare
Inkräktare är en kraftfull sårbarhetsskanner som hittar svagheter i cybersäkerhet i din digitala egendom, förklarar riskerna och hjälper till med deras sanering innan ett intrång kan inträffa. Det är det perfekta verktyget för att automatisera dina penetreringsprov.
Nyckelfunktioner :
- Över 9000 automatiska kontroller över hela din IT-infrastruktur.
- Infrastruktur- och webblagerskontroller, som SQL-injektion och skriptöverföring på plats.
- Skannar automatiskt dina system när nya hot upptäcks.
- Flera integrationer: AWS, Azure, Google Cloud, API, Jira, Teams och mer.
- Intruder erbjuder en 30-dagars gratis testversion av sin Pro-plan.
Rekommenderat penetrationsprovningsföretag
# 1) ImmuniWeb®
ImmuniWeb® är ett penetreringsprovningsföretag baserat i Genève, Schweiz. Dess DevSecOps-aktiverade applikationspenetreringsplattform kombinerar människor med artificiell intelligens och levereras med noll falsk-positiv SLA, detektering av högsta sårbarhet och rapporterbar handling.
ImmuniWeb erbjuder omfattande applikationspenetreringstest av interna och externa webb- och mobilappar, API: er och webbtjänster, e-postservrar, IoT-enheter och mer.
Nyckelfunktioner:
- Kontinuerlig ny koddetektering.
- Snabb och kostnadseffektiv manuell testning.
- Virtuell lappkapacitet med ett klick.
- 24/7 tillgång till säkerhetsanalytiker.
- DevSecOps och CI / CD-integration.
- Omedelbar beställning och snabb leverans.
- Multirole instrumentpanel.
Andra kostnadsfria verktyg:
Kommersiella tjänster:
Du kan också hänvisa till listan nedan på STH som talar om 37 kraftfulla penetrationstestverktyg => Kraftfulla verktyg för penetrationstestning för varje penetrationstestare
hur man öppnar binära filer i Windows
Varför penetrationstestning?
Du måste ha hört talas om WannaCry-ransomware-attacken som startade i maj 2017. Den låste mer än 2 lakhdatorer runt om i världen och krävde lösenbetalningar i Bitcoin-kryptokurrency. Denna attack har påverkat många stora organisationer runt om i världen.
Med sådana massiva och farliga cyberattacker som händer dessa dagar har det blivit oundvikligt att göra penetrationstest med jämna mellanrum för att skydda informationssystemen mot säkerhetsintrång.
Så, penetrationstestning krävs huvudsakligen för:
- Ekonomisk eller kritisk data måste säkerställas när den överförs mellan olika system eller över nätverket.
- Många kunder ber om testning av pennor som en del av programvarans släppcykel.
- För att säkra användardata.
- Att hitta säkerhetsproblem i en applikation.
- Att upptäcka kryphål i systemet.
- Att bedöma affärseffekten av framgångsrika attacker.
- Att uppfylla informationssäkerhetsöverensstämmelsen i organisationen.
- Att implementera en effektiv säkerhetsstrategi i organisationen.
Alla organisationer behöver identifiera säkerhetsproblem som finns i det interna nätverket och datorer. Att använda denna informationsorganisation kan planera ett försvar mot alla hackningsförsök. Användarnas integritet och datasäkerhet är de största problemen idag.
Tänk dig om någon hackare lyckas få användarinformation om sociala nätverkssajter som Facebook. Organisationen kan möta juridiska problem på grund av ett litet kryphål kvar i ett mjukvarusystem. Därför letar stora organisationer efter certifieringar av PCI (Payment Card Industry) innan de gör affärer med tredjepartskunder.
Vad ska testas?
- Programvara (operativsystem, tjänster, applikation)
- Hårdvara
- Nätverk
- Processer
- Slutanvändares beteende
Typer av penetrationstest
# 1) Socialteknikprov: I det här testet görs försök att få en person att avslöja känslig information som lösenord, affärskritiska data etc. Dessa tester görs oftast via telefon eller internet och det riktar sig till vissa hjälpdiskar, anställda och processer.
Mänskliga fel är de främsta orsakerna till säkerhetssårbarhet. Säkerhetsstandarder och policyer bör följas av alla anställda för att undvika penningförsök inom socialteknik. Ett exempel på dessa standarder inkluderar att inte nämna någon känslig information i e-post eller telefonkommunikation. Säkerhetsrevisioner kan genomföras för att identifiera och korrigera processfel.
# 2) Webbapplikationstest: Med hjälp av programvarumetoder kan man verifiera om applikationen utsätts för säkerhetsproblem. Den kontrollerar säkerhetsproblemet för webbappar och program som är placerade i målmiljön.
# 3) Fysiskt penetrationstest: Starka fysiska säkerhetsmetoder används för att skydda känsliga data. Detta används vanligtvis i militära och statliga anläggningar. Alla fysiska nätverksenheter och åtkomstpunkter testas för möjligheterna till säkerhetsintrång. Detta test är inte mycket relevant för omfattningen av programvarutestning.
# 4) Test av nätverkstjänster : Detta är en av de vanligast genomförda penetrationstesterna där öppningarna i nätverket identifieras genom vilken inmatning görs i systemen i nätverket för att kontrollera vilken typ av sårbarheter som finns. Det kan göras lokalt eller på distans.
# 5) Test på klientsidan : Det syftar till att söka efter och utnyttja sårbarheter i programvaror på klientsidan.
# 6) Krigsratt med fjärranslutning : Den söker efter modem i miljön och försöker logga in på de system som är anslutna via dessa modem genom att gissa lösenord eller tvinga brute.
# 7) Trådlöst säkerhetstest : Den upptäcker de öppna, obehöriga och mindre säkrade hotspotsna eller Wi-Fi-nätverken och ansluter via dem.
Ovanstående 7 kategorier som vi har sett är ett sätt att kategorisera typerna av penntester. Vi kan också organisera typerna av penetrationstestning i tre delar enligt nedan:
Låt oss diskutera de här testmetoderna en efter en:
- Black Box Penetration Testing : I detta tillvägagångssätt utvärderar testaren målsystemet, nätverket eller processen utan kunskap om dess detaljer. De har bara en mycket hög nivå av ingångar som URL eller företagsnamn där de tränger in i målmiljön. Ingen kod undersöks med denna metod.
- White Box Penetration Testing : I detta tillvägagångssätt är testaren utrustad med fullständiga detaljer om målmiljön - System, nätverk, OS, IP-adress, källkod, schema etc. Den undersöker koden och får reda på design- och utvecklingsfel. Det är en simulering av en intern säkerhetsattack.
- Grå boxningstestning : I detta tillvägagångssätt har testaren begränsade detaljer om målmiljön. Det är en simulering av externa säkerhetsattacker.
Tekniker för testning av pennor
- Manuellt penetrationstest
- Använda automatiserade penetreringsprovverktyg
- Kombination av både manuell och automatiserad process
Den tredje processen är vanligare för att identifiera alla typer av sårbarheter.
Manuellt penetrationstest
Det är svårt att hitta alla sårbarheter med hjälp av automatiska verktyg. Det finns vissa sårbarheter som endast kan identifieras med manuell skanning. Penetrationstestare kan utföra bättre attacker mot applikationer baserat på deras färdigheter och kunskap om systemet som genomträngs.
Metoderna som socialteknik kan endast göras av människor. Manuell kontroll inkluderar design, affärslogik samt kodverifiering.
Penetrationstestprocess:
Låt oss diskutera den verkliga processen som följs av testbyråer eller penetrationstestare. Att identifiera sårbarheter som finns i systemet är det första viktiga steget i denna process. Korrigerande åtgärder vidtas mot denna sårbarhet och samma penetrationstest upprepas tills systemet är negativt för alla dessa tester.
Vi kan kategorisera denna process på följande sätt:
# 1) Datainsamling: Olika metoder inklusive Google-sökning används för att få målsystemdata. Man kan också använda webbsidans analysteknik för att få mer information om system-, programvaru- och pluginversioner.
Det finns många kostnadsfria verktyg och tjänster tillgängliga på marknaden som kan ge dig information som databas- eller tabellnamn, DB-versioner, programvaruversioner, hårdvaran som används och olika plugins från tredje part som används i målsystemet.
# 2) Bedömning av sårbarhet: Baserat på data som samlats in i det första steget kan man hitta säkerhetssvagheten i målsystemet. Detta hjälper penetrationstestare att starta attacker med identifierade ingångspunkter i systemet.
# 3) Faktisk exploatering: Detta är ett avgörande steg. Det kräver speciella färdigheter och tekniker för att starta en attack mot målsystemet. Erfarna penetrationstestare kan använda sina färdigheter för att starta en attack på systemet.
# 4) Resultat i analys och beredning: Efter genomförande av penetrationstester förbereds detaljerade rapporter för korrigerande åtgärder. Alla identifierade sårbarheter och rekommenderade korrigeringsmetoder listas i dessa rapporter. Du kan anpassa sårbarhetsrapportformat (HTML, XML, MS Word eller PDF) enligt din organisations behov.
Penetration Testing Exempel på testfall (testscenarier)
Kom ihåg att detta inte är funktionstestning. I Pentest är ditt mål att hitta säkerhetshål i systemet. Nedan följer några generiska testfall och är inte nödvändigtvis tillämpliga på alla applikationer.
- Kontrollera om webbapplikationen kan identifiera spamattacker på kontaktformulär som används på webbplatsen.
- Proxyserver - Kontrollera om nätverkstrafiken övervakas av proxyapparater. Proxyservern gör det svårt för hackare att få interna detaljer i nätverket, vilket skyddar systemet från externa attacker.
- Skräppostfilter - Kontrollera om inkommande och utgående e-posttrafik filtreras och oönskade e-postmeddelanden blockeras.
- Många e-postklienter kommer med inbyggda skräppostfilter som behöver konfigureras enligt dina behov. Dessa konfigurationsregler kan tillämpas på e-postrubriker, ämne eller kropp.
- Brandvägg - Se till att hela nätverket eller datorerna är skyddade med brandväggar. En brandvägg kan vara programvara eller hårdvara för att blockera obehörig åtkomst till ett system. En brandvägg kan förhindra att data skickas utanför nätverket utan din tillåtelse.
- Försök att utnyttja alla servrar, stationära system, skrivare och nätverksenheter.
- Kontrollera att alla användarnamn och lösenord är krypterade och överförda via säkra anslutningar som https.
- Verifiera information lagrad i webbplatsens cookies . Det ska inte vara i ett läsbart format.
- Verifiera tidigare hittade sårbarheter för att kontrollera om korrigeringen fungerar.
- Kontrollera om det inte finns någon öppen port i nätverket.
- Kontrollera alla telefonenheter.
- Verifiera WIFI-nätverkssäkerhet.
- Verifiera alla HTTP-metoder. PUT- och Delete-metoder bör inte aktiveras på en webbserver.
- Kontrollera om lösenordet uppfyller kraven. Lösenordet bör bestå av minst 8 tecken som innehåller minst ett nummer och ett specialtecken.
- Användarnamnet bör inte vara som 'admin' eller 'administratör'.
- Applikationsinloggningssidan ska vara låst vid några misslyckade inloggningsförsök.
- Felmeddelanden bör vara generiska och bör inte nämna specifika felinformation som 'Ogiltigt användarnamn' eller 'Ogiltigt lösenord'.
- Kontrollera om specialtecken, HTML-taggar och skript hanteras korrekt som inmatningsvärde.
- Interna systemdetaljer bör inte avslöjas i något av fel- eller varningsmeddelandena.
- Anpassade felmeddelanden ska visas för slutanvändare om en webbsida kraschar.
- Verifiera användningen av registerposter. Känslig information bör inte förvaras i registret.
- Alla filer måste skannas innan de laddas upp till servern.
- Känsliga data ska inte skickas i webbadresser när de kommunicerar med olika interna moduler i webbapplikationen.
- Det ska inte finnas något hårdkodat användarnamn eller lösenord i systemet.
- Verifiera alla inmatningsfält med lång inmatningssträng med och utan mellanslag.
- Kontrollera om återställningslösenordets funktion är säker.
- Verifiera ansökan för SQL-injektion .
- Verifiera ansökan för Cross-Site Scripting .
- Viktiga ingångsvalideringar bör göras på serversidan istället för JavaScript-kontroller på klientsidan.
- Kritiska resurser i systemet ska endast vara tillgängliga för auktoriserade personer och tjänster.
- Alla åtkomstloggar ska upprätthållas med rätt åtkomstbehörighet.
- Verifiera att användarsessionen avslutas när du loggar ut.
- Kontrollera att katalogsökning är inaktiverad på servern.
- Kontrollera att alla applikationer och databasversioner är uppdaterade.
- Verifiera URL-manipulation för att kontrollera om en webbapplikation inte visar någon oönskad information.
- Verifiera minnesläckage och buffertöverflöde.
- Kontrollera om inkommande nätverkstrafik skannas för att hitta Trojan-attacker.
- Kontrollera om systemet är säkert från Brute Force Attacks - en test- och felmetod för att hitta känslig information som lösenord.
- Kontrollera om systemet eller nätverket är skyddat från DoS (denial-of-service) -attacker. Hacker kan rikta sig mot nätverk eller en enskild dator med kontinuerliga förfrågningar på grund av vilka resurser på målsystemet blir överbelastade vilket resulterar i förnekande av tjänst för legitima förfrågningar.
- Verifiera applikationen för HTML-skriptinjektionsattacker.
- Verifiera mot COM & ActiveX-attacker.
- Verifiera mot falska attacker. Spoofing kan vara av flera typer - IP-adress spoofing, Email ID spoofing,
- ARP-spoofing, Referrer-spoofing, Caller ID-spoofing, Förgiftning av fildelningsnätverk, GPS-spoofing.
- Sök efter en okontrollerad formatsträngattack - en säkerhetsattack som kan orsaka att applikationen kraschar eller kör det skadliga skriptet på den.
- Verifiera XML-injektionsattack - används för att ändra applikationens avsedda logik.
- Verifiera mot kanonikaliseringsattacker.
- Kontrollera om felsidorna visar någon information som kan vara till hjälp för en hackare att komma in i systemet.
- Kontrollera om kritiska data som lösenordet lagras i hemliga filer på systemet.
- Kontrollera om applikationen returnerar mer data än vad som krävs.
Det här är bara de grundläggande testscenarierna för att komma igång med Pentest. Det finns hundratals avancerade penetrationsmetoder som kan göras antingen manuellt eller med hjälp av automatiseringsverktyg.
Vidare läsning:
Standarder för testning av pennor
- PCI DSS (Betalningskortindustrins säkerhetsstandard)
- OWASP (Öppna webbapplikationssäkerhetsprojekt)
- ISO / IEC 27002 , OSSTMM (Open Source Security Testing Methodology Manual)
Certifieringar
- GPEN
- Associerad säkerhetstester ( AST )
- Senior Security Tester (SST)
- Certifierad penetrationstestare ( CPT )
Slutsats
Slutligen, som en penetrationstestare, bör du samla in och logga alla sårbarheter i systemet. Ignorera inte något scenario med tanke på att det inte kommer att köras av slutanvändare.
hur man öppnar SWF-fil på Windows 7
Om du är en penetrationstestare, vänligen hjälp våra läsare med dina erfarenheter, tips och testprovfall om hur du utför penetrationstest effektivt.
Rekommenderad läsning
- 19 Kraftfulla penetrationsprovningsverktyg som användes av proffs 2021
- Nybörjarhandbok för penetreringstestning för webbapplikationer
- Alpha Testing och Beta Testing (En komplett guide)
- Testning av nätverkssäkerhet och bästa verktyg för nätverkssäkerhet
- Handbok för testning av webbapplikation
- Byggverifieringstestning (BVT-testning) Komplett guide
- Funktionell testning mot icke-funktionell testning
- Bästa verktyg för testning av programvara 2021 (QA Test Automation Tools)