complete penetration testing guide with sample test cases
Este procesul de identificare a vulnerabilităților de securitate într-o aplicație prin evaluarea sistemului sau a rețelei cu diferite tehnici dăunătoare. Punctele slabe ale unui sistem sunt exploatate în acest proces printr-un atac simulat autorizat.
Scopul acestui test este de a asigura date importante de la externi, cum ar fi hackeri care pot avea acces neautorizat la sistem. Odată ce vulnerabilitatea este identificată, aceasta este utilizată pentru a exploata sistemul pentru a obține acces la informații sensibile.
Un test de penetrare este, de asemenea, cunoscut sub numele de testul pen și un tester de penetrare este, de asemenea, denumit un hacker etic.
Ce veți învăța:
- Ce este testul de penetrare?
- Cauzele vulnerabilităților
- Instrumente și companii de testare a penetrării
- Instrumente de testare a penetrării recomandate
- Compania recomandată de testare a penetrării
- De ce testarea penetrării?
- Ce ar trebui testat?
- Tipuri de testare a penetrării
- Tehnici de testare a stiloului
- Test de penetrare Mostre de cazuri de testare (scenarii de testare)
- Concluzie
Ce este testul de penetrare?
Putem descoperi vulnerabilitățile unui sistem informatic, al unei aplicații web sau ale unei rețele prin teste de penetrare.
Un test de penetrare arată dacă măsurile defensive existente utilizate în sistem sunt suficient de puternice pentru a preveni orice încălcare a securității. Rapoartele testelor de penetrare sugerează, de asemenea, contramăsurile care pot fi luate pentru a reduce riscul ca sistemul să fie piratat.
Cauzele vulnerabilităților
- Erori de proiectare și dezvoltare : Pot exista defecte în proiectarea hardware-ului și software-ului. Aceste erori vă pot pune datele critice pentru afaceri la risc de expunere.
- Configurare slabă a sistemului : Aceasta este o altă cauză de vulnerabilitate. Dacă sistemul este slab configurat, atunci poate introduce lacune prin care atacatorii pot intra în sistem și fura informațiile.
- Erori umane : Factorii umani precum eliminarea necorespunzătoare a documentelor, lăsarea documentelor nesupravegheate, erori de codare, amenințări din interior, partajarea parolelor pe site-uri de phishing etc. pot duce la încălcări ale securității.
- Conectivitate : Dacă sistemul este conectat la o rețea nesecurizată (conexiuni deschise), atunci acesta ajunge la îndemâna hackerilor.
- Complexitate : Vulnerabilitatea de securitate crește proporțional cu complexitatea unui sistem. Cu cât un sistem are mai multe caracteristici, cu atât sunt mai multe șanse ca sistemul să fie atacat.
- Parole : Parolele sunt folosite pentru a preveni accesul neautorizat. Ar trebui să fie suficient de puternici încât nimeni să nu-ți poată ghici parola. Parolele nu ar trebui să fie partajate cu nicio persoană cu niciun cost, iar parolele ar trebui schimbate periodic. În ciuda acestor instrucțiuni, uneori oamenii își dezvăluie parolele altora, le notează undeva și păstrează parole ușoare care pot fi ghicite.
- Introducere utilizator : Trebuie să fi auzit de injecție SQL, depășiri de tampon etc. Datele primite electronic prin aceste metode pot fi folosite pentru a ataca sistemul de recepție.
- Management : Securitatea este greu și scump de gestionat. Uneori, organizațiile nu au un management adecvat al riscurilor și, prin urmare, vulnerabilitatea este indusă în sistem.
- Lipsa instruirii personalului : Acest lucru duce la erori umane și alte vulnerabilități.
- Comunicare : Canalele precum rețelele mobile, internetul, telefonul deschid domeniul furtului de securitate.
Instrumente și companii de testare a penetrării
Instrumentele automate pot fi utilizate pentru a identifica unele vulnerabilități standard prezente într-o aplicație. Instrumentele Pentest scanează codul pentru a verifica dacă există un cod rău intenționat care poate duce la o posibilă încălcare a securității. Instrumentele Pentest pot verifica lacunele de securitate prezente în sistem prin examinarea tehnicilor de criptare a datelor și identificarea valorilor codificate în mod dur, precum numele de utilizator și parola.
Criterii pentru selectarea celui mai bun instrument de penetrare:
- Ar trebui să fie ușor de implementat, configurat și utilizat.
- Ar trebui să vă scaneze sistemul cu ușurință.
- Ar trebui să clasifice vulnerabilitățile pe baza severității care necesită o soluție imediată.
- Ar trebui să poată automatiza verificarea vulnerabilităților.
- Ar trebui să verifice din nou exploatările găsite anterior.
- Ar trebui să genereze rapoarte și jurnale detaliate de vulnerabilitate.
Odată ce știți ce teste trebuie să efectuați, vă puteți antrena resursele de testare interne sau puteți angaja consultanți experți pentru a face sarcina de penetrare pentru dvs.
Instrumente de testare a penetrării recomandate
# 1) Acunetix
Acunetix WVS oferă profesioniștilor în securitate și inginerilor de software, deopotrivă, o serie de caracteristici uimitoare într-un pachet ușor, direct și foarte robust.
=> Încercați aici cel mai bun instrument de testare stilou
# 2) Intrus
Intrus este un puternic scaner de vulnerabilități care identifică punctele slabe ale securității cibernetice în proprietatea dvs. digitală, explică riscurile și ajută la remedierea acestora înainte de a se produce o încălcare. Este instrumentul perfect pentru a vă ajuta să vă automatizați eforturile de testare a penetrării.
Caracteristici cheie :
- Peste 9.000 de verificări automate pe întreaga infrastructură IT.
- Verificări ale infrastructurii și ale stratului web, cum ar fi injecția SQL și scripturile între site-uri.
- Scanează automat sistemele dvs. atunci când sunt descoperite noi amenințări.
- Integrări multiple: AWS, Azure, Google Cloud, API, Jira, Teams și multe altele.
- Intruder oferă o perioadă de încercare gratuită de 30 de zile a planului său Pro.
Compania recomandată de testare a penetrării
# 1) ImmuniWeb®
ImmuniWeb® este o companie de testare a penetrării cu sediul în Geneva, Elveția. Platforma sa de testare a penetrării aplicațiilor, compatibilă cu DevSecOps, combină oamenii cu inteligența artificială și vine cu SLA zero fals pozitiv, detectarea vulnerabilității cele mai ridicate și raportarea acționabilă.
ImmuniWeb oferă teste complete de penetrare a aplicațiilor de aplicații web și mobile interne și externe, API-uri și servicii web, servere de poștă, dispozitive IoT și multe altele.
Caracteristici cheie:
- Detectarea continuă a codului nou.
- Testare manuală rapidă și rentabilă.
- Capacități de patch-uri virtuale cu un singur clic.
- Acces nonstop la analiști de securitate.
- Integrare DevSecOps și CI / CD.
- Comandă instantanee și livrare rapidă.
- Tablou de bord cu mai multe roluri.
Alte instrumente gratuite:
Servicii comerciale:
Puteți consulta, de asemenea, lista de mai jos disponibilă la STH, care vorbește despre 37 de instrumente puternice de testare a penetrării => Instrumente puternice de testare a penetrării pentru fiecare tester de penetrare
care sunt site-urile bune de vizionat anime
De ce testarea penetrării?
Probabil ați auzit de atacul de ransomware WannaCry care a început în mai 2017. A blocat mai mult de 2 lakh-uri din întreaga lume și a cerut plăți de răscumpărare în criptocurrency Bitcoin. Acest atac a afectat multe organizații mari din întreaga lume.
Cu astfel de atacuri cibernetice masive și periculoase care au loc în aceste zile, a devenit inevitabil să se facă teste de penetrare la intervale regulate pentru a proteja sistemele de informații împotriva încălcărilor de securitate.
Deci, testarea penetrării este necesară în principal pentru:
- Datele financiare sau critice trebuie securizate în timp ce le transferăm între diferite sisteme sau prin rețea.
- Mulți clienți solicită testarea stiloului ca parte a ciclului de lansare a software-ului.
- Pentru a securiza datele utilizatorului.
- Pentru a găsi vulnerabilități de securitate într-o aplicație.
- Pentru a descoperi lacune în sistem.
- Pentru a evalua impactul de afaceri al atacurilor de succes.
- Pentru a satisface conformitatea securității informațiilor în organizație.
- Pentru a implementa o strategie de securitate eficientă în organizație.
Orice organizație trebuie să identifice problemele de securitate prezente în rețeaua internă și în computere. Utilizarea acestei organizații de informații poate planifica o apărare împotriva oricărei încercări de hacking. Confidențialitatea utilizatorului și securitatea datelor sunt cele mai mari preocupări în zilele noastre.
Imaginați-vă dacă un hacker reușește să obțină detalii despre utilizatorii site-ului de rețele sociale precum Facebook. Organizația se poate confrunta cu probleme legale din cauza unei mici lacune rămase într-un sistem software. Prin urmare, organizațiile mari caută certificări de conformitate PCI (Industry Card Card) înainte de a face afaceri cu clienți terți.
Ce ar trebui testat?
- Software (sistem de operare, servicii, aplicație)
- Hardware
- Reţea
- Procese
- Comportamentul utilizatorului final
Tipuri de testare a penetrării
# 1) Test de inginerie socială: În acest test, se încearcă o persoană care să dezvăluie informații sensibile, cum ar fi parola, date critice pentru afaceri etc. Aceste teste se efectuează în principal prin telefon sau internet și vizează anumite birouri de asistență, angajați și procese.
Erorile umane sunt principalele cauze ale vulnerabilității de securitate. Standardele și politicile de securitate ar trebui să fie urmate de toți membrii personalului pentru a evita încercările de penetrare a ingineriei sociale. Un exemplu al acestor standarde include să nu menționăm nicio informație sensibilă în comunicarea prin e-mail sau telefon. Auditurile de securitate pot fi efectuate pentru a identifica și corecta defectele procesului.
# 2) Testul aplicației web: Folosind metode software se poate verifica dacă aplicația este expusă vulnerabilităților de securitate. Verifică vulnerabilitatea de securitate a aplicațiilor web și a programelor software poziționate în mediul țintă.
# 3) Test de penetrare fizică: Pentru a proteja datele sensibile se aplică metode de securitate fizică puternice. Acest lucru este utilizat în general în instalațiile militare și guvernamentale. Toate dispozitivele fizice de rețea și punctele de acces sunt testate pentru posibilitățile de încălcare a securității. Acest test nu este foarte relevant pentru scopul testării software-ului.
# 4) Test de servicii de rețea : Acesta este unul dintre cele mai frecvent efectuate teste de penetrare în care sunt identificate deschiderile din rețea prin care se face intrarea în sistemele din rețea pentru a verifica ce fel de vulnerabilități există. Se poate face local sau de la distanță.
# 5) Test pe partea clientului : Își propune să caute și să exploateze vulnerabilitățile în programele software din partea clientului.
# 6) Dial de apel de la distanță : Se caută modemuri în mediu și încearcă să se conecteze la sistemele conectate prin intermediul acestor modemuri prin ghicirea parolei sau forțarea brută.
# 7) Test de securitate wireless : Descoperă hotspoturile sau rețelele Wi-Fi deschise, neautorizate și mai puțin securizate și se conectează prin ele.
Cele 7 categorii de mai sus pe care le-am văzut sunt o modalitate de clasificare a tipurilor de teste pen. De asemenea, putem organiza tipurile de teste de penetrare în trei părți, după cum se vede mai jos:
Să discutăm aceste abordări de testare unul câte unul:
- Testarea penetrării cutiei negre : În această abordare, testerul evaluează sistemul, rețeaua sau procesul țintă fără să știe detaliile sale. Au doar un nivel foarte ridicat de intrări, cum ar fi adresa URL sau numele companiei, prin care pătrund în mediul țintă. Niciun cod nu este examinat în această metodă.
- Testarea penetrării cutiei albe : În această abordare, testerul este echipat cu detalii complete despre mediul țintă - Sisteme, rețea, sistem de operare, adresă IP, cod sursă, schemă etc. Acesta examinează codul și află erorile de proiectare și dezvoltare. Este o simulare a unui atac de securitate internă.
- Testarea penetrării cutiei gri : În această abordare, testerul are detalii limitate despre mediul țintă. Este o simulare a atacurilor de securitate externe.
Tehnici de testare a stiloului
- Test de penetrare manuală
- Utilizarea instrumentelor de testare automată a penetrării
- Combinație atât a procesului manual, cât și automat
Al treilea proces este mai frecvent pentru identificarea tuturor tipurilor de vulnerabilități.
Test de penetrare manuală
Este dificil să găsești toate vulnerabilitățile folosind instrumente automate. Există unele vulnerabilități care pot fi identificate numai prin scanare manuală. Testerii de penetrare pot efectua atacuri mai bune asupra aplicațiilor pe baza abilităților și cunoștințelor lor despre sistemul pătruns.
Metodele precum ingineria socială pot fi realizate numai de oameni. Verificarea manuală include proiectarea, logica de afaceri, precum și verificarea codului.
Procesul de testare a penetrării:
Să discutăm despre procesul real urmat de agențiile de testare sau testerii de penetrare. Identificarea vulnerabilităților prezente în sistem este primul pas important în acest proces. Se iau măsuri corective asupra acestei vulnerabilități și se repetă aceleași teste de penetrare până când sistemul este negativ pentru toate aceste teste.
Putem clasifica acest proces în următoarele metode:
# 1) Colectarea datelor: Diferite metode, inclusiv căutarea Google, sunt utilizate pentru a obține date țintă de sistem. Se poate utiliza, de asemenea, tehnica de analiză a codului sursă a paginii web pentru a obține mai multe informații despre versiuni de sistem, software și plugin.
Există multe instrumente și servicii gratuite disponibile pe piață, care vă pot oferi informații precum nume de baze de date sau tabele, versiuni de baze de date, versiuni de software, hardware-ul utilizat și diferite pluginuri de la terți utilizate în sistemul țintă.
# 2) Evaluarea vulnerabilității: Pe baza datelor colectate în primul pas se poate găsi slăbiciunea de securitate în sistemul țintă. Acest lucru ajută testerii de penetrare să lanseze atacuri folosind puncte de intrare identificate în sistem.
# 3) Exploatare reală: Acesta este un pas crucial. Este nevoie de abilități și tehnici speciale pentru a lansa un atac asupra sistemului țintă. Testerii cu penetrare experimentați își pot folosi abilitățile pentru a lansa un atac asupra sistemului.
# 4) Rezultatul analizei și pregătirea raportului: După finalizarea testelor de penetrare, sunt pregătite rapoarte detaliate pentru luarea măsurilor corective. Toate vulnerabilitățile identificate și metodele corective recomandate sunt enumerate în aceste rapoarte. Puteți personaliza formatul raportului de vulnerabilitate (HTML, XML, MS Word sau PDF) în funcție de nevoile organizației dvs.
Test de penetrare Mostre de cazuri de testare (scenarii de testare)
Amintiți-vă că acest lucru nu este testare funcțională. În Pentest obiectivul tău este să găsești găuri de securitate în sistem. Mai jos sunt câteva cazuri de testare generice și nu neapărat aplicabile tuturor aplicațiilor.
- Verificați dacă aplicația web este capabilă să identifice atacurile de spam pe formularele de contact utilizate pe site.
- Server proxy - Verificați dacă traficul de rețea este monitorizat de dispozitivele proxy. Serverul proxy face dificilă accesarea de către hackeri a detaliilor interne ale rețelei, protejând astfel sistemul de atacuri externe.
- Filtre de e-mail spam - Verificați dacă traficul de e-mail de intrare și de ieșire este filtrat și e-mailurile nesolicitate sunt blocate.
- Mulți clienți de e-mail vin cu filtre de spam încorporate care trebuie configurate conform nevoilor dvs. Aceste reguli de configurare pot fi aplicate antetelor de e-mail, subiectului sau corpului.
- Firewall - Asigurați-vă că întreaga rețea sau computerele sunt protejate cu firewall-uri. Un firewall poate fi software sau hardware pentru a bloca accesul neautorizat la un sistem. Un firewall poate împiedica trimiterea de date în afara rețelei fără permisiunea dvs.
- Încercați să exploatați toate serverele, sistemele desktop, imprimantele și dispozitivele de rețea.
- Verificați dacă toate numele de utilizator și parolele sunt criptate și transferate prin conexiuni securizate precum https.
- Verificați informațiile stocate în cookie-uri de pe site . Nu ar trebui să fie într-un format lizibil.
- Verificați vulnerabilitățile găsite anterior pentru a verifica dacă remedierea funcționează.
- Verificați dacă nu există port deschis în rețea.
- Verificați toate dispozitivele telefonice.
- Verificați securitatea rețelei WIFI.
- Verificați toate metodele HTTP. Metodele PUT și Delete nu trebuie activate pe un server web.
- Verificați dacă parola îndeplinește standardele solicitate. Parola trebuie să aibă cel puțin 8 caractere, conținând cel puțin un număr și un caracter special.
- Numele de utilizator nu ar trebui să fie ca „administrator” sau „administrator”.
- Pagina de autentificare a aplicației trebuie blocată la câteva încercări nereușite de autentificare.
- Mesajele de eroare trebuie să fie generice și nu trebuie să menționeze detalii specifice despre erori precum „Nume de utilizator nevalid” sau „Parolă nevalidă”.
- Verificați dacă caracterele speciale, etichetele HTML și scripturile sunt tratate corect ca valoare de intrare.
- Detaliile interne ale sistemului nu ar trebui să fie dezvăluite în niciunul dintre mesajele de eroare sau de alertă.
- Mesajele de eroare personalizate ar trebui afișate utilizatorilor finali în caz de blocare a paginii web.
- Verificați utilizarea intrărilor de registru. Informațiile sensibile nu trebuie păstrate în registru.
- Toate fișierele trebuie scanate înainte de a le încărca pe server.
- Datele sensibile nu trebuie transmise în URL-uri în timp ce comunicați cu diferite module interne ale aplicației web.
- Nu ar trebui să existe niciun nume de utilizator sau parolă codificate în sistem.
- Verificați toate câmpurile de intrare cu șir de intrare lung cu și fără spații.
- Verificați dacă funcționalitatea de resetare a parolei este sigură.
- Verificați aplicația pentru Injecție SQL .
- Verificați aplicația pentru Scripturi între site-uri .
- Validările importante de intrare trebuie făcute la partea serverului în loc de verificări JavaScript la partea clientului.
- Resursele critice din sistem ar trebui să fie disponibile numai persoanelor și serviciilor autorizate.
- Toate jurnalele de acces ar trebui menținute cu permisiuni de acces adecvate.
- Verificați sesiunea utilizatorului se încheie la deconectare.
- Verificați dacă navigarea directorului este dezactivată pe server.
- Verificați dacă toate aplicațiile și versiunile bazei de date sunt actualizate.
- Verificați manipularea adreselor URL pentru a verifica dacă o aplicație web nu afișează informații nedorite.
- Verificați scurgerile de memorie și depășirea bufferului.
- Verificați dacă traficul de rețea de intrare este scanat pentru a găsi atacuri troieni.
- Verificați dacă sistemul este ferit de atacurile Brute Force - o metodă de încercare și eroare pentru a găsi informații sensibile, cum ar fi parolele.
- Verificați dacă sistemul sau rețeaua este securizată împotriva atacurilor DoS (denial-of-service). Hackerul poate viza rețeaua sau un singur computer cu solicitări continue din cauza căruia resursele din sistemul țintă sunt supraîncărcate, rezultând refuzul de serviciu pentru solicitările legitime.
- Verificați aplicația pentru atacuri de injecție de script HTML.
- Verificați împotriva atacurilor COM și ActiveX.
- Verificați împotriva atacurilor de falsificare. Spoofing-ul poate fi de mai multe tipuri - spoofing de adrese IP, spoofing ID-uri de e-mail,
- Spoofing ARP, spoofing referrer, spoofing ID apelant, otrăvire a rețelelor de partajare a fișierelor, spoofing GPS.
- Verificați dacă există un atac de șir de format necontrolat - un atac de securitate care poate provoca blocarea aplicației sau executarea scriptului dăunător de pe ea.
- Verificați atacul cu injecție XML - utilizat pentru a modifica logica intenționată a aplicației.
- Verificați împotriva atacurilor de canonizare.
- Verificați dacă paginile de eroare afișează informații care pot fi utile pentru ca un hacker să intre în sistem.
- Verificați dacă datele critice, cum ar fi parola, sunt stocate în fișiere secrete ale sistemului.
- Verificați dacă aplicația returnează mai multe date decât este necesar.
Acestea sunt doar scenariile de testare de bază pentru a începe cu Pentest. Există sute de metode avansate de penetrare care pot fi realizate fie manual, fie cu ajutorul instrumentelor de automatizare.
Lecturi suplimentare:
Standarde de testare stilou
- PCI DSS (Standard de securitate a datelor din industria cardurilor de plată)
- OWASP (Deschideți proiectul de securitate a aplicațiilor web)
- ISO / IEC 27002 , OSSTMM (Manualul metodologiei de testare a securității sursei deschise)
Certificări
- GPEN
- Tester de securitate asociat ( AST )
- Tester de securitate senior (SST)
- Tester de penetrare certificat ( CPT )
Concluzie
În cele din urmă, ca tester de penetrare, ar trebui să colectați și să înregistrați toate vulnerabilitățile din sistem. Nu ignorați niciun scenariu, având în vedere că acesta nu va fi executat de utilizatorii finali.
cum arată un fișier json
Dacă sunteți un tester de penetrare, vă rugăm să ne ajutați cititorii cu experiența, sfaturile și exemplele de cazuri de testare cu privire la modul de efectuare eficientă a testelor de penetrare.
Lectură recomandată
- 19 instrumente puternice de testare a penetrării utilizate de profesioniști în 2021
- Ghid pentru începători la testarea penetrării aplicațiilor web
- Testarea alfa și testarea beta (un ghid complet)
- Testarea securității rețelei și cele mai bune instrumente de securitate a rețelei
- Ghid de testare a securității aplicațiilor web
- Test de verificare a construcției (testare BVT) Ghid complet
- Testarea funcțională Vs testarea nefuncțională
- Cele mai bune instrumente de testare software 2021 (Instrumente de automatizare a testelor de calitate)