beginners guide web application penetration testing
Penetrasjonstesting aka Pen Test er den mest brukte sikkerhetstesteteknikken for webapplikasjoner.
Testing av webapplikasjon gjøres ved å simulere uautoriserte angrep internt eller eksternt for å få tilgang til sensitive data.
En webpenetrering hjelper sluttbrukerne med å finne ut muligheten for en hacker å få tilgang til dataene fra internett, finne ut om sikkerheten til e-postserverne og også bli kjent med hvor sikre webhotelltsiden og serveren er.
Vel, la oss nå dekke innholdet i denne artikkelen.
hvordan åpner jeg en torrent
(bilde kilde )
I denne penetrasjonstestopplæringen har jeg prøvd å dekke:
- Behovet av Pentest for testing av webapplikasjoner,
- Standard metodikk tilgjengelig for Pentest,
- Tilnærming for nettsøknad Pentest,
- Hva er typene testing vi kan utføre,
- Fremgangsmåte for å utføre en penetrasjonstest,
- Verktøy som kan brukes til testing,
- Noen av tjenesteleverandørene for penetrasjonstesting og
- Noen av sertifiseringene for testing av webpenetrasjon
Anbefalte verktøy for skanning av sikkerhetsproblemer:
# 1) Nettparker
Netsparker er enkel å bruke og automatisert testing av plattformer for nettapplikasjonssikkerhet som du kan bruke til å identifisere reelle og utnyttbare sårbarheter på nettsteder.
#to) Kiuwan
Finn og fikse sårbarheter i koden din på hvert trinn av SDLC.
Kiuwan overholder de strengeste sikkerhetsstandardene, inkludert OWASP, CWE, SANS 25, HIPPA og mer. Integrer Kiuwan i IDE-en din for øyeblikkelig tilbakemelding under utviklingen. Kiuwan støtter alle de viktigste programmeringsspråkene og integreres med ledende DevOps-verktøy.
=> Skann koden din gratisHva du vil lære:
- Hvorfor er penetrasjonstesting påkrevd?
- Testmetodikk for webpenetrasjon
- Typer av webpenetrasjonstesting
- Testmetode for webpenn:
- Topp testverktøy for penetrasjon
- De beste selskapene for penetrasjonstesting
- Noen sertifiseringer for penetrasjonstesting:
- Konklusjon
- Anbefalt lesing
Hvorfor er penetrasjonstesting påkrevd?
Når vi snakker om sikkerhet, er det vanligste ordet vi hører Sårbarhet .
Da jeg først begynte å jobbe som sikkerhetstester, ble jeg veldig ofte forvirret med dette ordet Sårbarhet, og jeg er sikker på at mange av dere, leserne mine ville falle i samme båt.
Til fordel for alle leserne mine, vil jeg først avklare forskjellen mellom sårbarhet og pennetesting.
Så hva er det? Sårbarhet ? Sårbarheten er en terminologi som brukes til å identifisere feil i systemet som kan utsette systemet for sikkerhetstrusler.
Sårbarhetsskanning eller pennetesting?
Sårbarhetsskanning lar brukeren finne ut de kjente svakhetene i applikasjonen og definerer metoder for å fikse og forbedre den generelle sikkerheten til applikasjonen. Det finner i utgangspunktet ut om sikkerhetsoppdateringer er installert, om systemene er riktig konfigurert for å gjøre angrep vanskelig.
Pen Tests simulerer hovedsakelig sanntidssystemer og hjelper brukeren med å finne ut om systemet kan nås av uautoriserte brukere, hvis ja, hvilken skade som kan forårsakes og hvilke data osv.
Derfor er sårbarhetsskanning en detektivkontrollmetode som antyder måter å forbedre sikkerhetsprogrammet og sikre at kjente svakheter ikke dukker opp igjen, mens pennetest er en forebyggende kontrollmetode som gir et samlet overblikk over systemets eksisterende sikkerhetslag.
Selv om begge metodene har sin betydning, men det vil avhenge av hva som virkelig forventes som en del av testingen.
Som testere er det viktig å være klar over formålet med testingen før vi hopper ut i testingen. Hvis du er klar over målet, kan du veldig godt definere om du trenger å gjøre en sårbarhetsskanning eller pennetesting.
Viktigheten og behovet for Web App Pen Testing:
- Pentest Hjelper med å identifisere ukjente sårbarheter.
- Hjelper med å kontrollere effektiviteten av den generelle sikkerhetspolitikken.
- Hjelp til å teste komponentene som er eksponert offentlig som brannmurer, rutere og DNS.
- Lar brukeren finne ut den mest sårbare ruten gjennom et angrep
- Hjelper med å finne smutthull som kan føre til tyveri av sensitive data.
Hvis du ser på dagens etterspørsel etter markedet, har det vært en kraftig økning i mobilbruk, noe som blir et stort potensial for angrep. Å få tilgang til nettsteder via mobiltelefoner er utsatt for hyppigere angrep og dermed kompromittering av data.
Penetrasjonstesting blir dermed veldig viktig for å sikre at vi bygger et sikkert system som kan brukes av brukere uten bekymringer for hacking eller tap av data.
Testmetodikk for webpenetrasjon
Metodikken er bare et sett med retningslinjer for sikkerhetsbransjen om hvordan testingen skal gjennomføres. Det er noen veletablerte og berømte metoder og standarder som kan brukes til testing, men siden hver webapplikasjon krever forskjellige typer test som skal utføres, kan testere lage sine egne metoder ved å henvise til standardene som er tilgjengelige i markedet.
Noen av metodene og standardene for sikkerhetstesting er -
- OWASP (Åpne sikkerhetsprosjektet for webapplikasjon)
- OSSTMM (Open Source Security Testing Methodology Manual)
- PTF (Penetration Testing Framework)
- ISSAF (Framework for sikkerhetsvurdering av informasjonssystemer)
- PCI DSS (Betalingskortsektorens datasikkerhetsstandard)
Test scenarier:
Nedenfor er noen av testscenariene som kan testes som en del av Testing av webapplikasjon (WAPT):
- Cross Site Scripting
- SQL Injection
- Brutt autentisering og øktadministrasjon
- Filopplastingsfeil
- Caching-serverangrep
- Feilkonfigurasjoner
- Forfalskning på tvers av nettstedet
- Passordsprekker
Selv om jeg har nevnt listen, bør ikke testere blindt lage sin testmetodikk basert på de ovennevnte konvensjonelle standardene.
Her er eneksempelfor å bevise hvorfor jeg sier det.
Tenk på at du blir bedt om å penetrere et e-handelsnettsted, og tenk nå om alle sårbarheter på et e-handelsnettsted kan identifiseres ved hjelp av de konvensjonelle metodene for OWASP som XSS, SQL-injeksjon etc.
Svaret er et nei fordi e-handel fungerer på en veldig annen plattform og teknologi sammenlignet med andre nettsteder. For å gjøre pennetesting for netthandelsnettstedet effektivt, bør testere utforme en metodikk som involverer mangler som ordrehåndtering, kupong- og belønningshåndtering, betalingsgatewayintegrasjon og innholdsstyringssystemintegrasjon.
Så før du bestemmer deg for metodikken, må du være veldig sikker på hvilke typer nettsteder som forventes å bli testet, og hvilken metode som vil hjelpe deg med å finne maksimale sårbarheter.
Typer av webpenetrasjonstesting
Webapplikasjoner kan penetrasjonstestes på to måter. Tester kan utformes for å simulere et angrep på innsiden eller utsiden.
# 1) Intern penetrasjonstesting -
Som navnet antyder, gjøres den interne pennetestingen i organisasjonen over LAN, og inkluderer derfor testing av webapplikasjoner som er vert på intranettet.
Dette hjelper deg med å finne ut om det kan være sårbarheter som finnes i bedriftens brannmur.
Vi tror alltid at angrep bare kan skje eksternt, og mange ganger blir intern Pentest oversett eller ikke gitt stor betydning.
beste enhetstestingsrammeverk for java
I utgangspunktet inkluderer det ondsinnede ansattangrep av misfornøyde ansatte eller entreprenører som ville ha trukket seg, men som var klar over de interne sikkerhetspolitikkene og passordene, sosialtekniske angrep, simulering av phishing-angrep og angrep ved bruk av brukerrettigheter eller misbruk av en ulåst terminal.
Testing skjer hovedsakelig ved å få tilgang til miljøet uten riktig legitimasjon og identifisere om en
#to) Testing av ekstern penetrasjon -
Dette er angrep utført utenfor organisasjonen og inkluderer testing av webapplikasjoner som er vert på internett.
Testere oppfører seg som hackere som ikke er veldig klar over det interne systemet.
For å simulere slike angrep, får testere IP til målsystemet og ikke gitt annen informasjon. De er pålagt å søke og skanne offentlige nettsider og finne informasjonen vår om målverter og deretter kompromittere de funnet vertene.
I utgangspunktet inkluderer det testing av servere, brannmurer og IDS.
Testmetode for webpenn:
Det kan gjennomføres i 3 faser:
# 1) Planleggingsfase (før testing)
Før testing starter, anbefales det å planlegge hvilke typer testing som skal utføres, hvordan testingen skal utføres, avgjøre om QA trenger ytterligere tilgang til verktøy osv.
- Definisjon av omfang - Dette er det samme som funksjonell testing der vi definerer omfanget av testingen før vi starter testinnsatsen.
- Tilgjengelighet av dokumentasjon til testere - Forsikre deg om at testere har alle nødvendige dokumenter som dokumenter som beskriver nettarkitekturen, integreringspunkter, integrering av webtjenester osv. Testeren bør være oppmerksom på grunnleggende HTTP / HTTPS-protokoll og vite om webapplikasjonsarkitektur, trafikkavskjæringsmåter.
- Bestemme suksesskriteriene - I motsetning til våre funksjonelle testtilfeller, der vi kan hente forventede resultater fra brukerkrav / funksjonskrav, fungerer pennetesting på en annen modell. Suksesskriteriene eller kriteriene for prøvesaken må defineres og godkjennes.
- Gjennomgang av testresultatene fra den forrige testen - Hvis det tidligere ble utført tidligere tester, er det bra å gjennomgå testresultatene for å forstå hvilke sårbarheter som eksisterte tidligere, og hvilke utbedringer som ble tatt for å løse. Dette gir alltid et bedre bilde av testerne.
- Forstå miljøet - Testere bør få kunnskap om miljøet før de begynner å teste. Dette trinnet skal sikre dem forståelse av brannmurer eller andre sikkerhetsprotokoller som kreves for å bli deaktivert for å utføre testingen. Nettleser som skal testes, bør konverteres til en angrepsplattform, vanligvis gjøres ved å endre fullmakter.
# 2) Angrep / utførelsesfase (under testing):
Webpenetrasjonstesting kan gjøres fra hvor som helst, gitt at det ikke bør være begrensninger på porter og tjenester fra internettleverandøren.
hvordan du finner standard nettmaske
- Sørg for å kjøre en test med forskjellige brukerroller - Testere bør sørge for å kjøre tester med brukere som har forskjellige roller, siden systemet kan oppføre seg annerledes med hensyn til brukere som har forskjellige privilegier.
- Bevissthet om hvordan man skal håndtere etter utnyttelse - Testere må følge suksesskriteriene definert som en del av fase 1 for å rapportere om utnyttelse, og de bør også følge den definerte prosessen med å rapportere sårbarheter som ble funnet under testing. Dette trinnet involverer hovedsakelig testeren for å finne ut hva som må gjøres etter at de har funnet ut at systemet er kompromittert.
- Generering av testrapporter - Enhver testing som gjøres uten riktig rapportering, hjelper ikke organisasjonen mye. Det samme er tilfelle med penetrasjonstesting av webapplikasjoner. For å sikre at testresultatene deles riktig med alle interessenter, bør testere lage riktige rapporter med detaljer om sårbarheter som er funnet, metoden som er brukt for testing, alvorlighetsgrad og plasseringen av problemet som er funnet.
# 3) Etter kjøring (etter testing):
Når testingen er fullført og testrapporter deles med alle berørte team, bør følgende liste bearbeides av alle -
- Foreslå utbedring - Pennetesting bør ikke bare avsluttes med å identifisere sårbarheter. Det berørte teamet, inkludert et QA-medlem, bør gjennomgå funnene rapportert av Testers og deretter diskutere utbedringen.
- Test sårbarheter på nytt - Etter at utbedringen er tatt og implementert, bør testere teste på nytt for å sikre at de faste sårbarhetene ikke dukket opp som en del av omprøvingen.
- Rydde opp - Som en del av Pentest gjør testere endringer i proxy-innstillingene, så det må gjøres opprydding og alle endringene tilbakestilles.
Topp testverktøy for penetrasjon
Nå, siden du allerede har lest hele artikkelen, tror jeg nå at du har en mye bedre ide om hva og hvordan kan vi penetrere en webapplikasjon.
Så fortell meg, kan vi manuelt utføre penetrasjonstesting, eller skjer det alltid ved å automatisere ved hjelp av et verktøy. Ingen tvil, jeg tror de fleste av dere sier automatisering. :)
Det er sant fordi automatisering gir fart, unngår manuell menneskelig feil, utmerket dekning og flere andre fordeler, men når det gjelder Pen Test, krever det at vi utfører manuell testing.
Manuell testing hjelper med å finne sårbarheter relatert til forretningslogikk, og reduserer falske positive.
Verktøy er tilbøyelige til å gi mange falske positive, og det er derfor nødvendig med manuell inngrep for å avgjøre om de er reelle sårbarheter.
Verktøy er laget for å automatisere testinnsatsen. Nedenfor finner du en liste over noen av verktøyene som kan brukes til Pentest:
For flere verktøy kan du også referere - 37 Kraftige verktøy for test av penner for hver penetrasjonstester
De beste selskapene for penetrasjonstesting
Tjenesteleverandører er selskaper som leverer tjenester som imøtekommer organisasjonenes testbehov. De utmerker seg vanligvis og har ekspertise innen forskjellige testområder, og kan utføre testing i sitt vertsmiljø.
Nedenfor er noen av de ledende selskapene som tilbyr tjenester for penetrasjonstesting:
- PSC (Overholdelse av betalingssikkerhet)
- Netragard
- Securestate
- Kull brann
- HIGHBIT Sikkerhet
- Nettitude
- 360
- NetSPi
- ControlScan
- Skods Minotti
- 2 | Sek
- Sikkerhetsvurdering
- Sikkerhetsrevisjonssystemer
- Hacklabs
- CQR
Noen sertifiseringer for penetrasjonstesting:
Hvis du er interessert i å bli sertifisert på penetrasjonssertifisering for webapp, kan du velge sertifiseringer nedenfor:
- OSWE (Offensive Security Web Expert)
- GWAPT (GIAC Web Application Penetration Tester)
- CWAPT (Sertifisert webapp-penetrasjonstester)
- eWPT (elearnSecurity Web Application Penetration Tester)
Konklusjon
I denne veiledningen presenterte vi en oversikt over hvordan penetrasjonstesting utføres for webapplikasjoner.
Med denne informasjonen kan penetrasjonstesteren starte sårbarhetstester.
Ideelt sett kan penetrasjonstesting hjelpe oss med å lage sikker programvare. Det er en kostbar metode, så frekvensen kan holdes som en gang i året.
Hvis du vil vite mer om penetrasjonstesting, kan du lese relaterte artikler nedenfor:
- En tilnærming for sikkerhetstesting av webapplikasjoner
- Penetrasjonstesting - Komplett guide med eksempler på testtilfeller
- Hvordan teste applikasjonssikkerhet - Internett- og skrivebordssikkerhetstestteknikker
Del dine synspunkter eller opplevelser om Pentest nedenfor.
Anbefalt lesing
- Veiledning for testing av webapplikasjoner
- Testing av nettverkssikkerhet og beste verktøy for nettverkssikkerhet
- Beste verktøy for testing av programvare 2021 (QA Test Automation Tools)
- Alpha Testing og Beta Testing (En komplett guide)
- Sikkerhetstesting (en komplett guide)
- En komplett gjennomgangstestveiledning med eksempler på testtilfeller
- Verktøy og tjenesteleverandører for testing av mobilapplikasjon
- Forskjellen mellom stasjonær, klientservertesting og nettesting