beginners guide web application penetration testing
Penetrationstestning aka Pen Test är den mest använda tekniken för säkerhetstestning för webbapplikationer.
Webbgenomträngningstestning görs genom att simulera obehöriga attacker internt eller externt för att få tillgång till känslig data.
En webbpenetration hjälper slutanvändarna att ta reda på möjligheten för en hackare att komma åt data från internet, ta reda på säkerheten för deras e-postservrar och också lära sig hur säker webbhotell och servern är.
Låt oss nu täcka innehållet i den här artikeln.
kvalitetssäkring och skillnad i kvalitetskontroll
(bild källa )
I denna tutorial för penetrationstest har jag försökt täcka:
- Behovet av Pentest för testning av webbapplikationer,
- Standardmetodik tillgänglig för Pentest,
- Metod för webbapplikation Pentest,
- Vilka typer av tester kan vi utföra,
- Åtgärder för att genomföra ett penetrationstest,
- Verktyg som kan användas för testning,
- Några av penetrationstestleverantörerna och
- Några av certifieringarna för testning av webbpenetration
Rekommenderade skannningsverktyg för sårbarhet:
# 1) Net parker
Netsparker är enkel att använda och automatiserad testapplikation för webbapplikationssäkerhet som du kan använda för att identifiera verkliga och exploaterbara sårbarheter på dina webbplatser.
#två) Kiuwan
Hitta och åtgärda sårbarheter i din kod i alla steg i SDLC.
Kiuwan uppfyller de strängaste säkerhetsstandarderna inklusive OWASP, CWE, SANS 25, HIPPA och mer. Integrera Kiuwan i din IDE för omedelbar feedback under utvecklingen. Kiuwan stöder alla större programmeringsspråk och integreras med ledande DevOps-verktyg.
=> Skanna din kod gratisVad du kommer att lära dig:
- Varför krävs penetrationstest?
- Testmetod för webbpenetration
- Typer av webbtestningstestning
- Testmetod för webbpenna:
- Top Penetration Testing verktyg
- De bästa företagen för testning av penetration
- Några certifieringar för penetrationstest:
- Slutsats
- Rekommenderad läsning
Varför krävs penetrationstest?
När vi pratar om säkerhet är det vanligaste ordet vi hör Sårbarhet .
När jag började arbeta som säkerhetstestare brukade jag bli mycket förvirrad med detta ord sårbarhet, och jag är säker på att många av er, mina läsare skulle falla i samma båt.
Till förmån för alla mina läsare kommer jag först att klargöra skillnaden mellan sårbarhet och pennprovning.
Så, vad är det? Sårbarhet ? Sårbarheten är en terminologi som används för att identifiera brister i systemet som kan utsätta systemet för säkerhetshot.
Sårbarhetsskanning eller testning av pennor?
Sårbarhetsskanning låter användaren ta reda på de kända svagheterna i applikationen och definierar metoder för att fixa och förbättra den övergripande säkerheten för applikationen. Det får i princip reda på om säkerhetsuppdateringar är installerade, om systemen är korrekt konfigurerade för att göra attacker svåra.
Pen Tests simulerar främst realtidsystem och hjälper användaren att ta reda på om systemet kan nås av obehöriga användare, om ja, vilken skada kan orsakas och vilka data etc.
Därför är sårbarhetsskanning en detektivstyrningsmetod som föreslår sätt att förbättra säkerhetsprogrammet och se till att kända svagheter inte dyker upp igen, medan penna-test är en förebyggande kontrollmetod som ger en övergripande bild av systemets befintliga säkerhetsskikt.
Men båda metoderna har sin betydelse, men det beror på vad som verkligen förväntas som en del av testningen.
Som testare är det absolut nödvändigt att vara tydlig med syftet med testningen innan vi hoppar in i testningen. Om du är tydlig på målet kan du mycket väl definiera om du behöver göra en sårbarhetssökning eller penntestning.
Betydelsen och behovet av att testa webbapppenna:
- Pentest Hjälper till att identifiera okända sårbarheter.
- Hjälper till att kontrollera effektiviteten i den övergripande säkerhetspolicyn.
- Hjälp till att testa de exponerade komponenterna offentligt som brandväggar, routrar och DNS.
- Låter användaren ta reda på den mest utsatta vägen genom vilken en attack kan göras
- Hjälper till att hitta kryphål som kan leda till stöld av känslig data.
Om man tittar på den nuvarande efterfrågan på marknaden har mobilanvändningen ökat kraftigt, vilket blir en stor potential för attacker. Åtkomst till webbplatser via mobiler är benägen för mer frekventa attacker och därmed kompromisser med data.
Penetration Testing blir alltså mycket viktigt för att vi ska bygga ett säkert system som kan användas av användare utan några bekymmer om hacking eller dataförlust.
Testmetod för webbpenetration
Metoden är inget annat än en uppsättning riktlinjer för säkerhetsbranschen om hur testningen ska genomföras. Det finns några väletablerade och berömda metoder och standarder som kan användas för testning, men eftersom varje webbapplikation kräver att olika typer av test ska utföras kan testare skapa sina egna metoder genom att hänvisa till de standarder som finns tillgängliga på marknaden.
Några av metoderna och standarderna för säkerhetstestning är -
- OWASP (Öppna webbapplikationssäkerhetsprojekt)
- OSSTMM (Handbok för testmetod för öppen källkodssäkerhet)
- PTF (Penetration Testing Framework)
- ISSAF (Säkerhetsbedömningsram för informationssystem)
- PCI DSS (Betalningskortindustrins säkerhetsstandard)
Testscenarier:
Nedan listas några av de testscenarier som kan testas som en del av Testning av webbapplikation (WAPT):
- Cross Site Scripting
- SQL-injektion
- Trasig autentisering och sessionshantering
- Filöverföringsfel
- Caching-servrarattacker
- Felkonfigurationer för säkerhet
- Förfalskning på begäran över flera platser
- Lösenordssprickning
Även om jag har nämnt listan, bör testare inte blindt skapa sin testmetod baserat på ovanstående konventionella standarder.
Här är enexempelför att bevisa varför jag säger det.
Tänk på att du blir ombedd att testa en e-handelswebbplats, tänk nu på om alla sårbarheter på en e-handelswebbplats kan identifieras med de konventionella metoderna för OWASP som XSS, SQL-injektion etc.
Svaret är ett nej eftersom e-handel fungerar på en helt annan plattform och teknik jämfört med andra webbplatser. För att göra din penna-testning för e-handelswebbplats effektiv, bör testare utforma en metod som innefattar brister som Order Management, Coupon and Reward Management, Payment Gateway Integration och Content Management System Integration.
Så innan du bestämmer dig för metoden, var mycket säker på vilka typer av webbplatser som förväntas testas och vilken metod som hjälper till att hitta de största sårbarheterna.
Typer av webbtestningstestning
Webbapplikationer kan penetrationstestas på två sätt. Tester kan utformas för att simulera en insida eller en extern attack.
# 1) Intern penetrationstestning -
Som namnet antyder görs den interna penna-testningen inom organisationen via LAN, vilket inkluderar testning av webbapplikationer som finns på intranätet.
Detta hjälper till att ta reda på om det kan finnas sårbarheter som finns i företagets brandvägg.
Vi tror alltid att attacker bara kan hända externt och många gånger den interna Pentest förbises eller får inte mycket betydelse.
I grund och botten inkluderar det skadliga anställdas attacker av missnöjda anställda eller entreprenörer som skulle ha avgått men medvetna om de interna säkerhetspolicyerna och lösenorden, socialtekniska attacker, simulering av nätfiskeattacker och attacker med användarrättigheter eller missbruk av en olåst terminal.
Testning görs huvudsakligen genom att komma åt miljön utan korrekta uppgifter och identifiera om en
#två) Extern penetrationstest -
extrahera e-postadresser från webbplatsen gratis
Dessa är attacker som görs externt utanför organisationen och inkluderar testning av webbapplikationer som är värd på internet.
Testare beter sig som hackare som inte är mycket medvetna om det interna systemet.
För att simulera sådana attacker får testarna IP för målsystemet och tillhandahålls ingen annan information. De måste söka och skanna offentliga webbsidor och hitta vår information om målvärdar och sedan äventyra de hittade värdarna.
I grund och botten inkluderar det testningsservrar, brandväggar och IDS.
Testmetod för webbpenna:
Det kan genomföras i tre faser:
# 1) Planeringsfas (före testning)
Innan testningen påbörjas är det lämpligt att planera vilka typer av test som ska utföras, hur testningen ska utföras, avgöra om QA behöver ytterligare åtkomst till verktyg etc.
- Definition av omfattning - Detta är samma som vår funktionella testning där vi definierar omfattningen av våra test innan vi startar våra testinsatser.
- Dokumentationens tillgänglighet för testare - Se till att testare har alla nödvändiga dokument som dokument som beskriver webbarkitekturen, integrationspunkter, integrering av webbtjänster etc. Testaren bör vara medveten om HTTP / HTTPS-protokollets grunder och känna till webbapplikationsarkitekturen, trafikavlyssningssätt.
- Fastställande av framgångskriterier - Till skillnad från våra funktionella testfall, där vi kan dra förväntade resultat från användarkrav / funktionskrav, fungerar penntestning på en annan modell. Framgångskriterierna eller testcases godkända kriterier måste definieras och godkännas.
- Granska testresultaten från tidigare testning - Om tidigare tester någonsin gjorts är det bra att granska testresultaten för att förstå vilka sårbarheter som fanns tidigare och vilken åtgärd som vidtogs för att lösa. Detta ger alltid en bättre bild av testarna.
- Förstå miljön - Testare bör få kunskap om miljön innan de börjar testa. Detta steg bör säkerställa att ge dem en förståelse för brandväggar eller andra säkerhetsprotokoll som krävs för att inaktiveras för att utföra testningen. Webbläsare som ska testas bör omvandlas till en attackplattform, vanligtvis genom att ändra proxyservrar.
# 2) Attacker / utförandefas (under testning):
Webpenetrationstestning kan göras från vilken plats som helst, med tanke på att internetleverantören inte bör begränsa hamnar och tjänster.
- Se till att köra ett test med olika användarroller - Testare bör se till att köra tester med användare som har olika roller eftersom systemet kan uppträda annorlunda med avseende på användare som har olika behörighet.
- Medvetenhet om hur man hanterar postexploatering - Testare måste följa framgångskriterierna definierade som en del av fas 1 för att rapportera eventuell exploatering, och de bör också följa den definierade processen för rapportering av sårbarheter som hittades under testningen. Detta steg involverar främst testaren för att ta reda på vad som behöver göras efter att de har upptäckt att systemet har äventyrats.
- Generering av testrapporter - Alla tester som görs utan korrekt rapportering hjälper inte organisationen mycket, samma är fallet med penetrationstestning av webbapplikationer. För att säkerställa att testresultaten delas ordentligt med alla intressenter bör testare skapa korrekta rapporter med information om svagheter som hittats, metoden som används för testning, svårighetsgrad och lokaliseringen av det problem som hittats.
# 3) Efter genomförd fas (efter testning):
När testningen är klar och testrapporter delas med alla berörda team bör följande lista arbetas med av alla -
- Föreslå sanering - Penttestning bör inte bara avslutas med att identifiera sårbarheter. Det berörda teamet inklusive en QA-medlem bör granska de resultat som rapporterats av Testers och sedan diskutera saneringen.
- Testa om sårbarheter igen - Efter att åtgärden har vidtagits och genomförts bör testare testa om för att säkerställa att de fasta sårbarheterna inte visas som en del av deras omprövning.
- Städa - Som en del av Pentest gör testare ändringar i proxyinställningarna, så rengöring bör göras och alla ändringar återställs.
Top Penetration Testing verktyg
Nu, eftersom du redan har läst hela artikeln, tror jag nu att du har en mycket bättre uppfattning om vad och hur kan vi penetrera testa en webbapplikation.
Så berätta för mig, kan vi manuellt utföra penetrationstestning eller händer det alltid genom att automatisera med hjälp av ett verktyg. Utan tvekan tror jag att majoriteten av er säger Automation. :)
hur man hanterar svåra situationer
Det är sant eftersom automatisering ger fart, undviker manuella mänskliga fel, utmärkt täckning och flera andra fördelar, men vad Pen Test beträffar kräver det att vi utför vissa manuella tester.
Manuell testning hjälper till att hitta sårbarheter relaterade till Business Logic, vilket minskar falska positiva effekter.
Verktyg är benägna att ge många falska positiva effekter och därför krävs manuell intervention för att avgöra om de är verkliga sårbarheter.
Läs också - Hur man testar webbapplikationssäkerhet med hjälp av Acunetix Web Vulnerability Scanner (WVS) -verktyg
Verktyg skapas för att automatisera vårt testarbete. Nedan hittar du en lista över några verktyg som kan användas för Pentest:
För fler verktyg kan du också hänvisa - 37 Kraftfulla testverktyg för penna för varje penetrationstestare
De bästa företagen för testning av penetration
Tjänsteleverantörer är företag som tillhandahåller tjänster som tillgodoser organisationernas testbehov. De utmärker sig vanligtvis och har expertis inom olika testområden och kan utföra test i sin värdmiljö.
Nedan nämns några av de ledande företagen som tillhandahåller penetrationstesttjänster:
- PSC (Överensstämmelse med betalningssäkerhet)
- Netragard
- Securestate
- Kol eld
- HIGHBIT Säkerhet
- Nettitude
- 360
- NetSPi
- ControlScan
- Skods Minotti
- 2 | Sek
- Säkerhetsbedömning
- Säkerhetsrevisionssystem
- Hacklabs
- CQR
Några certifieringar för penetrationstest:
Om du är intresserad av att bli certifierad på webbapppenetrering kan du välja certifiering nedan:
- OSWE (Offensive Security Web Expert)
- GWAPT (GIAC Web Application Penetration Tester)
- CWAPT (Certifierad webapppenetrationstester)
- eWPT (elearnSecurity Penetration Tester för webbapplikation)
Slutsats
I denna handledning presenterade vi en översikt över hur penetrationstester utförs för webbapplikationer.
Med denna information kan penetrationstestaren starta sårbarhetstester.
Helst kan penetrationstester hjälpa oss att skapa säker programvara. Det är en kostsam metod så frekvensen kan hållas som en gång per år.
Om du vill veta mer om penetrationstestning, läs nedan relaterade artiklar:
- Ett tillvägagångssätt för säkerhetstestning av webbapplikationer
- Penetration Testing - Komplett guide med exempel på testfall
- Hur man testar applikationssäkerhet - Testtekniker för webb- och skrivbordsapplikationer
Dela dina åsikter eller erfarenheter om Pentest nedan.
Rekommenderad läsning
- Guide för testning av webbapplikationssäkerhet
- Testning av nätverkssäkerhet och bästa verktyg för nätverkssäkerhet
- Bästa verktyg för testning av programvara 2021 (QA Test Automation Tools)
- Alpha Testing och Beta Testing (En komplett guide)
- Säkerhetstestning (En komplett guide)
- En fullständig testguide för penetration med exempel på testfall
- Verktyg för testning av mobila applikationer och tjänsteleverantörer
- Skillnad mellan Desktop, Client Server Testing och Web Testing