complete penetration testing guide with sample test cases
Det er prosessen for å identifisere sikkerhetsproblemer i et program ved å evaluere systemet eller nettverket med forskjellige ondsinnede teknikker. De svake punktene i et system utnyttes i denne prosessen gjennom et autorisert simulert angrep.
Hensikten med denne testen er å sikre viktige data fra utenforstående som hackere som kan ha uautorisert tilgang til systemet. Når sårbarheten er identifisert, brukes den til å utnytte systemet for å få tilgang til sensitiv informasjon.
En penetrasjonstest er også kjent som pennetesten, og en penetrasjonstester blir også referert til som en etisk hacker.
Hva du vil lære:
- Hva er penetrasjonstesting?
- Konklusjon
Hva er penetrasjonstesting?
Vi kan finne ut sårbarhetene til et datasystem, en webapplikasjon eller et nettverk gjennom penetrasjonstesting.
En penetrasjonstest forteller om de eksisterende defensive tiltakene som brukes i systemet er sterke nok til å forhindre sikkerhetsbrudd. Penetrasjonstestrapporter antyder også mottiltak som kan tas for å redusere risikoen for at systemet blir hacket.
Årsaker til sårbarheter
- Design- og utviklingsfeil : Det kan være feil i utformingen av maskinvare og programvare. Disse feilene kan sette virksomhetskritiske data i fare for eksponering.
- Dårlig systemkonfigurasjon : Dette er en annen årsak til sårbarhet. Hvis systemet er dårlig konfigurert, kan det introdusere smutthull gjennom hvilke angripere kan gå inn i systemet og stjele informasjonen.
- Menneskelige feil : Menneskelige faktorer som feilaktig avhending av dokumenter, å la dokumentene være uten tilsyn, kodefeil, insidertrusler, deling av passord over phishing-nettsteder, etc. kan føre til sikkerhetsbrudd.
- Tilkobling : Hvis systemet er koblet til et usikret nettverk (åpne forbindelser), kommer det innen rekkevidde for hackere.
- Kompleksitet : Sikkerhetsproblemet stiger proporsjonalt med kompleksiteten i et system. Jo flere funksjoner et system har, jo flere sjanser for at systemet blir angrepet.
- Passord : Passord brukes for å forhindre uautorisert tilgang. De skal være sterke nok til at ingen kan gjette passordet ditt. Passord bør ikke deles med noen for enhver pris, og passord bør endres med jevne mellomrom. Til tross for disse instruksjonene, avslører noen ganger passordene sine for andre, skriver dem ned et sted og beholder enkle passord som kan gjettes.
- Brukerinngang : Du må ha hørt om SQL-injeksjon, bufferoverløp osv. Dataene som mottas elektronisk gjennom disse metodene kan brukes til å angripe mottakersystemet.
- Ledelse : Sikkerhet er vanskelig og dyrt å administrere. Noen ganger mangler organisasjoner riktig risikostyring, og sårbarhet blir derfor indusert i systemet.
- Mangel på opplæring til personalet : Dette fører til menneskelige feil og andre sårbarheter.
- Kommunikasjon : Kanaler som mobilnett, internett, telefon åpner omfanget av sikkerhetstyveri.
Penetrasjonstestverktøy og selskaper
Automatiserte verktøy kan brukes til å identifisere noen standard sårbarheter som finnes i et program. Pentest-verktøy skanner kode for å sjekke om det finnes en ondsinnet kode som kan føre til et potensielt sikkerhetsbrudd. Pentest-verktøy kan verifisere smutthull i systemet ved å undersøke datakrypteringsteknikker og finne ut hardkodede verdier som brukernavn og passord.
Kriterier for å velge det beste penetrasjonsverktøyet:
- Det skal være enkelt å distribuere, konfigurere og bruke.
- Det skal skanne systemet enkelt.
- Den bør kategorisere sårbarheter basert på alvorlighetsgrad som trenger en umiddelbar løsning.
- Det skal kunne automatisere verifisering av sårbarheter.
- Den bør bekrefte utnyttelser som er funnet tidligere.
- Det bør generere detaljerte sårbarhetsrapporter og logger.
Når du vet hvilke tester du trenger å utføre, kan du enten trene dine interne testressurser eller ansette ekspertkonsulenter til å gjøre penetrasjonsoppgaven for deg.
Anbefalte verktøy for penetrasjonstesting
# 1) Acunetix
Acunetix WVS tilbyr sikkerhetsfagfolk og programvareingeniører en rekke fantastiske funksjoner i en enkel, rett frem og veldig robust pakke.
=> Prøv det beste pennetestverktøyet her
# 2) Inntrenger
Inntrenger er en kraftig sårbarhetsskanner som finner cybersikkerhetssvakheter i din digitale eiendom, forklarer risikoen og hjelper til med utbedring før brudd kan oppstå. Det er det perfekte verktøyet for å automatisere din penetrasjonstest.
Nøkkelegenskaper :
- Over 9000 automatiserte sjekker på tvers av hele IT-infrastrukturen.
- Infrastruktur- og web-lagsjekker, for eksempel SQL-injeksjon og skript på tvers av nettsteder.
- Skanner automatisk systemene dine når nye trusler oppdages.
- Flere integrasjoner: AWS, Azure, Google Cloud, API, Jira, Teams og mer.
- Intruder tilbyr en 30-dagers gratis prøveversjon av Pro-planen.
Anbefalt penetrasjonstestfirma
# 1) ImmuniWeb®
ImmuniWeb® er et penetrasjonstestfirma med base i Genève, Sveits. Den DevSecOps-aktiverte applikasjonsgjennomtrengningstestplattformen kombinerer mennesker med kunstig intelligens og kommer med null falsk positiv SLA, deteksjon av høyeste sårbarhet og rapporterbar handling.
ImmuniWeb tilbyr omfattende applikasjonspenetreringstesting av interne og eksterne nett- og mobilapper, API-er og webtjenester, e-postservere, IoT-enheter og mer.
Nøkkelegenskaper:
- Kontinuerlig ny kodedeteksjon.
- Rask og kostnadseffektiv manuell testing.
- Virtuelt oppdateringskapasitet med ett klikk.
- 24/7 tilgang til sikkerhetsanalytikere.
- DevSecOps og CI / CD integrasjon.
- Øyeblikkelig bestilling og rask levering.
- Multirole dashbord.
Andre gratis verktøy:
Kommersielle tjenester:
Du kan også referere til listen nedenfor som er tilgjengelig på STH som snakker om 37 kraftige penetrasjonstestverktøy => Kraftige verktøy for penetrasjonstesting for hver penetrasjonstester
smart identifikasjon i qtp med eksempel
Hvorfor penetrasjonstesting?
Du må ha hørt om WannaCry ransomware-angrepet som startet i mai 2017. Det låste mer enn 2 lakh-datamaskiner over hele verden og krevde løsepenger i Bitcoin-kryptokurrency. Dette angrepet har påvirket mange store organisasjoner over hele verden.
Med slike massive og farlige cyberangrep som skjer i disse dager, har det blitt uunngåelig å gjøre penetrasjonstesting med jevne mellomrom for å beskytte informasjonssystemene mot sikkerhetsbrudd.
Så, penetrasjonstesting er hovedsakelig nødvendig for:
- Finansielle eller kritiske data må sikres mens de overføres mellom forskjellige systemer eller over nettverket.
- Mange kunder ber om pennetesting som en del av programvarens utgivelsessyklus.
- For å sikre brukerdata.
- For å finne sikkerhetsproblemer i et program.
- Å oppdage smutthull i systemet.
- For å vurdere forretningseffekten av vellykkede angrep.
- For å oppfylle informasjonssikkerhetsoverensstemmelsen i organisasjonen.
- Å implementere en effektiv sikkerhetsstrategi i organisasjonen.
Enhver organisasjon trenger å identifisere sikkerhetsproblemer i det interne nettverket og datamaskiner. Bruk av denne informasjonsorganisasjonen kan planlegge et forsvar mot ethvert hackingsforsøk. Brukers personvern og datasikkerhet er den største bekymringen i dag.
Tenk deg om noen hackere klarer å få brukerinformasjon om sosiale nettverk som Facebook. Organisasjonen kan møte juridiske problemer på grunn av et lite smutthull som er igjen i et programvaresystem. Derfor leter store organisasjoner etter PCI (Payment Card Industry) -sertifiseringssertifiseringer før de gjør forretninger med tredjepartskunder.
Hva bør testes?
- Programvare (operativsystem, tjenester, applikasjon)
- Maskinvare
- Nettverk
- Prosesser
- Sluttbrukeratferd
Penetrasjonstesttyper
# 1) Social Engineering Test: I denne testen blir det forsøkt å få en person til å avsløre sensitiv informasjon som passord, forretningskritiske data osv. Disse testene gjøres for det meste via telefon eller internett, og den retter seg mot bestemte hjelpepulter, ansatte og prosesser.
Menneskelige feil er hovedårsakene til sikkerhetssårbarhet. Sikkerhetsstandarder og retningslinjer bør følges av alle ansatte for å unngå sosialteknisk penetrasjon. Et eksempel på disse standardene inkluderer å ikke nevne sensitiv informasjon i e-post eller telefonkommunikasjon. Sikkerhetsrevisjoner kan utføres for å identifisere og korrigere prosessfeil.
# 2) Nettapplikasjonstest: Ved hjelp av programvaremetoder kan man verifisere om applikasjonen er utsatt for sikkerhetsproblemer. Den sjekker sikkerhetsproblemet til webapper og programvarer som er plassert i målmiljøet.
# 3) Fysisk penetrasjonstest: Sterke fysiske sikkerhetsmetoder brukes for å beskytte sensitive data. Dette brukes vanligvis i militære og offentlige anlegg. Alle fysiske nettverksenheter og tilgangspunkter er testet for muligheter for sikkerhetsbrudd. Denne testen er ikke særlig relevant for omfanget av programvaretesting.
# 4) Test av nettverkstjenester : Dette er en av de mest utførte penetrasjonstestene der åpningene i nettverket identifiseres ved hvilken oppføring som blir gjort i systemene på nettverket for å sjekke hva slags sårbarhet som er der. Det kan gjøres lokalt eller eksternt.
# 5) Test på klientsiden : Det tar sikte på å søke etter og utnytte sårbarheter i programvare på klientsiden.
# 6) Ekstern oppringt krigsskive : Den søker etter modemer i miljøet og prøver å logge inn på systemene som er koblet til via disse modemene ved å gjette passord eller tvinge brute.
# 7) Trådløs sikkerhetstest : Den oppdager de åpne, uautoriserte og mindre sikre hotspots eller Wi-Fi-nettverk og kobles gjennom dem.
Ovennevnte 7 kategorier vi har sett er en måte å kategorisere typene pennetester på. Vi kan også organisere typene av penetrasjonstesting i tre deler som vist nedenfor:
La oss diskutere denne testtilnærmingen en etter en:
- Black Box Penetration Testing : I denne tilnærmingen vurderer testeren målsystemet, nettverket eller prosessen uten kjennskap til detaljene. De har bare et veldig høyt nivå av innganger som URL eller firmanavn som de trenger inn i målmiljøet. Ingen kode undersøkes i denne metoden.
- White Box Penetration Testing : I denne tilnærmingen er testeren utstyrt med komplette detaljer om målmiljøet - Systemer, nettverk, OS, IP-adresse, kildekode, skjema osv. Den undersøker koden og finner ut av design- og utviklingsfeil. Det er en simulering av et internt sikkerhetsangrep.
- Testing av grå boks penetrasjon : I denne tilnærmingen har testeren begrensede detaljer om målmiljøet. Det er en simulering av eksterne sikkerhetsangrep.
Pennetesteteknikker
- Manuell penetrasjonstest
- Ved hjelp av automatiserte penetrasjonstestverktøy
- Kombinasjon av både manuell og automatisert prosess
Den tredje prosessen er mer vanlig å identifisere alle slags sårbarheter.
Manuell penetrasjonstest
Det er vanskelig å finne alle sårbarheter ved hjelp av automatiserte verktøy. Det er noen sårbarheter som bare kan identifiseres ved manuell skanning. Penetrasjonstestere kan utføre bedre angrep på applikasjoner basert på deres ferdigheter og kunnskap om systemet som blir penetrert.
Metodene som sosial engineering kan bare gjøres av mennesker. Manuell kontroll inkluderer design, forretningslogikk samt kodeverifisering.
Penetrasjonstestprosess:
La oss diskutere den faktiske prosessen fulgt av testbyråer eller penetrasjonstestere. Å identifisere sårbarheter i systemet er det første viktige trinnet i denne prosessen. Korrigerende tiltak iverksettes på dette sikkerhetsproblemet, og de samme penetrasjonstestene gjentas til systemet er negativt for alle disse testene.
Vi kan kategorisere denne prosessen på følgende måter:
# 1) Datainnsamling: Ulike metoder, inkludert Google-søk, brukes for å få målsystemdata. Man kan også bruke kildekodeanalyseteknikken til websiden for å få mer informasjon om system-, programvare- og pluginversjoner.
Det er mange gratis verktøy og tjenester tilgjengelig i markedet som kan gi deg informasjon som database- eller tabellnavn, DB-versjoner, programvareversjoner, maskinvaren som brukes og forskjellige plugins fra tredjeparter som brukes i målsystemet.
Nr. 2) Sårbarhetsvurdering: Basert på dataene som ble samlet inn i det første trinnet, kan man finne sikkerhetssvakheten i målsystemet. Dette hjelper penetrasjonstestere med å starte angrep ved hjelp av identifiserte inngangspunkter i systemet.
# 3) Faktisk utnyttelse: Dette er et avgjørende trinn. Det krever spesielle ferdigheter og teknikker for å starte et angrep på målsystemet. Erfarne penetrasjonstestere kan bruke sine ferdigheter til å starte et angrep på systemet.
# 4) Resultat i analyse og forberedelse av rapporten: Etter gjennomføring av penetrasjonstester blir det utarbeidet detaljerte rapporter for korrigerende tiltak. Alle identifiserte sårbarheter og anbefalte korrigerende metoder er oppført i disse rapportene. Du kan tilpasse sårbarhetsrapportformat (HTML, XML, MS Word eller PDF) i henhold til organisasjonens behov.
Penetrasjonstesting Eksempel på testtilfeller (testscenarier)
Husk at dette ikke er funksjonstesting. I Pentest er målet ditt å finne sikkerhetshull i systemet. Nedenfor er noen generiske testsaker og ikke nødvendigvis anvendelige for alle applikasjoner.
- Sjekk om webapplikasjonen er i stand til å identifisere spamangrep på kontaktskjemaer som brukes på nettstedet.
- Proxy-server - Sjekk om nettverkstrafikk overvåkes av proxy-apparater. Proxy-serveren gjør det vanskelig for hackere å få interne detaljer i nettverket og dermed beskytte systemet mot eksterne angrep.
- Spam-e-postfiltre - Bekreft om innkommende og utgående e-posttrafikk er filtrert og uønsket e-post er blokkert.
- Mange e-postklienter leveres med innebygde spamfiltre som må konfigureres etter dine behov. Disse konfigurasjonsreglene kan brukes på e-postoverskrifter, emne eller kropp.
- Brannmur - Kontroller at hele nettverket eller datamaskinene er beskyttet med brannmurer. En brannmur kan være programvare eller maskinvare for å blokkere uautorisert tilgang til et system. En brannmur kan forhindre sending av data utenfor nettverket uten din tillatelse.
- Prøv å utnytte alle servere, stasjonære systemer, skrivere og nettverksenheter.
- Bekreft at alle brukernavn og passord er kryptert og overført over sikre forbindelser som https.
- Bekreft informasjon som er lagret i nettstedets informasjonskapsler . Det skal ikke være i et lesbart format.
- Bekreft tidligere funnet sårbarheter for å sjekke om reparasjonen fungerer.
- Kontroller om det ikke er noen åpen port i nettverket.
- Bekreft alle telefonenheter.
- Bekreft WIFI-nettverkssikkerhet.
- Bekreft alle HTTP-metoder. PUT- og Delete-metoder bør ikke være aktivert på en webserver.
- Kontroller om passordet oppfyller de nødvendige standardene. Passordet skal inneholde minst 8 tegn som inneholder minst ett nummer og ett spesialtegn.
- Brukernavnet skal ikke være som “admin” eller “administrator”.
- Påloggingssiden for applikasjonen skal være låst ved noen få mislykkede påloggingsforsøk.
- Feilmeldinger skal være generelle og bør ikke nevne spesifikke feildetaljer som 'Ugyldig brukernavn' eller 'Ugyldig passord'.
- Kontroller om spesialtegn, HTML-koder og skript håndteres riktig som en inngangsverdi.
- Interne systemdetaljer skal ikke avsløres i noen av feilmeldingene.
- Egendefinerte feilmeldinger skal vises for sluttbrukere i tilfelle en webside krasjer.
- Bekreft bruken av registeroppføringer. Sensitiv informasjon bør ikke oppbevares i registeret.
- Alle filer må skannes før de lastes opp til serveren.
- Sensitive data skal ikke sendes i URL-er mens de kommuniserer med forskjellige interne moduler i webapplikasjonen.
- Det skal ikke være noe hardkodet brukernavn eller passord i systemet.
- Bekreft alle inndatafelt med lang inngangsstreng med og uten mellomrom.
- Bekreft om funksjonen for tilbakestilling av passord er sikker.
- Bekreft søknad for SQL Injection .
- Bekreft søknad for Tverrstedsskripting .
- Viktige inndatavalideringer bør gjøres på serversiden i stedet for JavaScript-sjekker på klientsiden.
- Kritiske ressurser i systemet skal bare være tilgjengelig for autoriserte personer og tjenester.
- Alle tilgangslogger bør opprettholdes med riktig tilgangstillatelse.
- Bekreft at brukersesjonen avsluttes når du logger av.
- Kontroller at katalogsurfing er deaktivert på serveren.
- Kontroller at alle applikasjoner og databaseversjoner er oppdatert.
- Bekreft URL-manipulering for å sjekke om et webapplikasjon ikke viser noen uønsket informasjon.
- Bekreft minnelekkasje og bufferoverløp.
- Bekreft om innkommende nettverkstrafikk er skannet for å finne Trojan-angrep.
- Bekreft om systemet er trygt fra Brute Force Attacks - en prøve-og-feilsøkingsmetode for å finne sensitiv informasjon som passord.
- Kontroller om systemet eller nettverket er sikret mot DoS (denial-of-service) -angrep. Hacker kan målrette mot nettverk eller en enkelt datamaskin med kontinuerlige forespørsler på grunn av hvilke ressurser på målsystemet som blir overbelastet, noe som resulterer i tjenestenekt for legitime forespørsler.
- Bekreft søknad for HTML-skriptinjeksjonsangrep.
- Bekreft mot COM- og ActiveX-angrep.
- Bekreft mot falske angrep. Spoofing kan være av flere typer - IP-adresse spoofing, Email ID spoofing,
- ARP spoofing, Referrer spoofing, Caller ID spoofing, Forgiftning av fildelingsnettverk, GPS spoofing.
- Se etter et ukontrollert formatangrep - et sikkerhetsangrep som kan føre til at applikasjonen krasjer eller utfører det skadelige skriptet på den.
- Verifiser XML-injeksjonsangrep - brukes til å endre den tiltenkte logikken til applikasjonen.
- Bekreft mot kanoniseringsangrep.
- Kontroller om feilsidene viser informasjon som kan være nyttig for en hacker å komme inn i systemet.
- Kontroller om kritiske data som passordet er lagret i hemmelige filer på systemet.
- Bekreft om applikasjonen returnerer mer data enn det er nødvendig.
Dette er bare de grunnleggende testscenariene for å komme i gang med Pentest. Det er hundrevis av avanserte penetrasjonsmetoder som kan gjøres enten manuelt eller ved hjelp av automatiseringsverktøy.
Videre lesning:
Pennestandarder
- PCI DSS (Betalingskortsektorens datasikkerhetsstandard)
- OWASP (Åpne webapplikasjonssikkerhetsprosjekt)
- ISO / IEC 27002 , OSSTMM (Open Source Security Testing Methodology Manual)
Sertifiseringer
- GPEN
- Associate Security Tester ( AST )
- Senior sikkerhetstester (SST)
- Sertifisert penetrasjonstester ( CPT )
Konklusjon
Til slutt, som en penetrasjonstester, bør du samle og logge alle sårbarheter i systemet. Ikke se bort fra noe scenario med tanke på at det ikke vil bli utført av sluttbrukere.
programvare testing intervju spørsmål for erfarne
Hvis du er en penetrasjonstester, kan du hjelpe leserne våre med din erfaring, tips og eksempler på testtilfeller om hvordan du utfører penetrasjonstesting effektivt.
Anbefalt lesing
- 19 Kraftige penetrasjonstestverktøy brukt av proffer i 2021
- Nybegynnerveiledning for testing av webapplikasjon
- Alpha Testing og Beta Testing (En komplett guide)
- Testing av nettverkssikkerhet og beste verktøy for nettverkssikkerhet
- Veiledning for testing av webapplikasjoner
- Build Verification Testing (BVT Testing) Komplett guide
- Funksjonstesting mot ikke-funksjonell testing
- Beste verktøy for testing av programvare 2021 (QA Test Automation Tools)