beginners guide web application penetration testing
Test di penetrazione aka Pen Test è la tecnica di test di sicurezza più comunemente utilizzata per le applicazioni web.
Il test di penetrazione delle applicazioni Web viene eseguito simulando attacchi non autorizzati internamente o esternamente per ottenere l'accesso a dati sensibili.
Una penetrazione web aiuta l'utente finale a scoprire la possibilità per un hacker di accedere ai dati da Internet, scoprire la sicurezza dei propri server di posta elettronica e anche sapere quanto sono sicuri il sito di hosting web e il server.
Bene, passiamo ora al contenuto di questo articolo.
quali sono alcuni buoni siti Web di anime
(Immagine fonte )
In questo tutorial sui test di penetrazione ho cercato di coprire:
- La necessità di Pentest per il test delle applicazioni web,
- Metodologia standard disponibile per Pentest,
- Approccio per l'applicazione web Pentest,
- Quali sono i tipi di test che possiamo eseguire,
- Passaggi da adottare per eseguire un test di penetrazione,
- Strumenti che possono essere utilizzati per il test,
- Alcuni dei fornitori di servizi di test di penetrazione e
- Alcune delle certificazioni per i test di penetrazione web
Strumenti di scansione delle vulnerabilità consigliati:
# 1) Net parker
Netsparker è una piattaforma di test della sicurezza delle applicazioni web automatizzata e facile da usare che puoi utilizzare per identificare le vulnerabilità reali e sfruttabili nei tuoi siti web.
#Due) Kiuwan
Trova e correggi le vulnerabilità nel tuo codice in ogni fase dell'SDLC.
Kiuwan è conforme ai più severi standard di sicurezza tra cui OWASP, CWE, SANS 25, HIPPA e altri. Integra Kiuwan nel tuo IDE per un feedback immediato durante lo sviluppo. Kiuwan supporta tutti i principali linguaggi di programmazione e si integra con i principali strumenti DevOps.
=> Scansiona il tuo codice gratuitamenteCosa imparerai:
- Perché è richiesto il test di penetrazione?
- Metodologia del test di penetrazione web
- Tipi di test di penetrazione web
- Approccio al test della penna Web:
- I migliori strumenti di Penetration Test
- Le migliori società di test di penetrazione
- Alcune certificazioni di Penetration Test:
- Conclusione
- Lettura consigliata
Perché è richiesto il test di penetrazione?
Quando parliamo di sicurezza, la parola più comune che sentiamo è Vulnerabilità .
Quando ho iniziato a lavorare come tester di sicurezza, mi confondevo molto spesso con questa parola Vulnerabilità e sono sicuro che molti di voi, i miei lettori, sarebbero caduti nella stessa barca.
A beneficio di tutti i miei lettori, chiarirò innanzitutto la differenza tra vulnerabilità e test della penna.
Allora, cos'è Vulnerabilità ? La vulnerabilità è una terminologia utilizzata per identificare i difetti nel sistema che possono esporre il sistema a minacce alla sicurezza.
Scansione delle vulnerabilità o test della penna?
La scansione delle vulnerabilità consente all'utente di scoprire i punti deboli noti dell'applicazione e definisce i metodi per correggere e migliorare la sicurezza complessiva dell'applicazione. Fondamentalmente scopre se sono installate patch di sicurezza, se i sistemi sono configurati correttamente per rendere difficili gli attacchi.
Pen Tests simula principalmente sistemi in tempo reale e aiuta l'utente a scoprire se il sistema è accessibile da utenti non autorizzati, in caso affermativo quali danni possono essere causati ea quali dati ecc.
Pertanto, la scansione delle vulnerabilità è un metodo di controllo investigativo che suggerisce modi per migliorare il programma di sicurezza e garantire che i punti deboli noti non riaffiorino, mentre il pen test è un metodo di controllo preventivo che fornisce una visione globale del livello di sicurezza esistente del sistema.
Tuttavia, entrambi i metodi hanno la loro importanza, ma dipenderà da ciò che ci si aspetta veramente come parte del test.
Come tester, è imperativo essere chiari sullo scopo del test prima di passare al test. Se sei chiaro sull'obiettivo, puoi definire molto bene se devi eseguire una scansione delle vulnerabilità o un test della penna.
Importanza e necessità del test della penna dell'app Web:
- Pentest aiuta a identificare le vulnerabilità sconosciute.
- Aiuta a verificare l'efficacia delle politiche di sicurezza generali.
- Aiuta a testare i componenti esposti pubblicamente come firewall, router e DNS.
- Consente all'utente di scoprire il percorso più vulnerabile attraverso il quale può essere effettuato un attacco
- Aiuta a trovare le scappatoie che possono portare al furto di dati sensibili.
Se si guarda all'attuale domanda di mercato, si è verificato un forte aumento dell'utilizzo dei dispositivi mobili, che sta diventando un importante potenziale per gli attacchi. L'accesso a siti Web tramite dispositivi mobili è soggetto ad attacchi più frequenti e quindi a compromettere i dati.
Il Penetration Testing diventa quindi molto importante per garantire la creazione di un sistema sicuro che possa essere utilizzato dagli utenti senza alcuna preoccupazione di hacking o perdita di dati.
Metodologia del test di penetrazione web
La metodologia non è altro che una serie di linee guida del settore della sicurezza su come eseguire i test. Esistono alcune metodologie e standard ben consolidati e famosi che possono essere utilizzati per i test, ma poiché ogni applicazione Web richiede l'esecuzione di diversi tipi di test, i tester possono creare le proprie metodologie facendo riferimento agli standard disponibili sul mercato.
Alcune delle metodologie e degli standard di test di sicurezza sono:
domande e risposte dell'intervista al test del selenio
- OWASP (Open Web Application Security Project)
- OSSTMM (Manuale metodologico di test di sicurezza open source)
- PTF (Framework di test di penetrazione)
- ISSAF (Quadro di valutazione della sicurezza dei sistemi informativi)
- PCI DSS (Payment Card Industry Data Security Standard)
Scenari di prova:
Di seguito sono elencati alcuni degli scenari di test che possono essere testati come parte di Test di penetrazione delle applicazioni Web (WAPT):
- Cross Site Scripting
- SQL Injection
- Autenticazione interrotta e gestione delle sessioni
- Difetti di caricamento dei file
- Attacchi ai server di cache
- Errate configurazioni di sicurezza
- Richiesta tra siti falsi
- Cracking delle password
Anche se ho menzionato l'elenco, i tester non dovrebbero creare ciecamente la loro metodologia di test sulla base degli standard convenzionali di cui sopra.
Ecco un fileesempioper dimostrare perché lo dico.
Considera che ti viene chiesto di eseguire un test di penetrazione su un sito Web di e-commerce, ora pensa se tutte le vulnerabilità di un sito Web di e-commerce possono essere identificate utilizzando i metodi convenzionali di OWASP come XSS, SQL injection ecc.
La risposta è No perché l'eCommerce funziona su una piattaforma e una tecnologia molto diverse rispetto ad altri siti web. Per rendere efficace il test della penna per il sito Web di e-commerce, i tester dovrebbero progettare una metodologia che includa difetti come la gestione degli ordini, la gestione dei coupon e dei premi, l'integrazione del gateway di pagamento e l'integrazione del sistema di gestione dei contenuti.
Quindi, prima di decidere sulla metodologia, essere molto sicuri di quali tipi di sito web dovrebbero essere testati e quale metodo aiuterà a trovare le vulnerabilità massime.
Tipi di test di penetrazione web
Le applicazioni Web possono essere testate in due modi. I test possono essere progettati per simulare un attacco interno o esterno.
# 1) Test di penetrazione interna -
Come suggerisce il nome, il test della penna interno viene eseguito all'interno dell'organizzazione tramite la LAN, quindi include il test delle applicazioni Web ospitate sulla intranet.
Questo aiuta a scoprire se potrebbero esserci delle vulnerabilità esistenti all'interno del firewall aziendale.
Crediamo sempre che gli attacchi possano avvenire solo esternamente e molte volte la Pentest interna viene trascurata o non viene data molta importanza.
Fondamentalmente, include attacchi dannosi di dipendenti da parte di dipendenti o appaltatori scontenti che si sarebbero dimessi ma consapevoli delle politiche e delle password di sicurezza interne, attacchi di ingegneria sociale, simulazione di attacchi di phishing e attacchi che utilizzano privilegi utente o uso improprio di un terminale sbloccato.
Il test viene eseguito principalmente accedendo all'ambiente senza le credenziali appropriate e identificando se un file
#Due) Test di penetrazione esterno -
Si tratta di attacchi effettuati esternamente dall'esterno dell'organizzazione e includono il test di applicazioni Web ospitate su Internet.
I tester si comportano come gli hacker che non sono molto consapevoli del sistema interno.
Per simulare tali attacchi, ai tester viene fornito l'IP del sistema di destinazione e non vengono fornite altre informazioni. Sono tenuti a cercare e scansionare pagine Web pubbliche e trovare le nostre informazioni sugli host di destinazione e quindi compromettere gli host trovati.
Fondamentalmente, include test di server, firewall e IDS.
Approccio al test della penna Web:
Può essere condotto in 3 fasi:
# 1) Fase di pianificazione (prima del test)
Prima di iniziare il test, è consigliabile pianificare quali tipi di test verranno eseguiti, come verranno eseguiti i test, determinare se il QA necessita di un accesso aggiuntivo agli strumenti, ecc.
- Definizione dell'ambito - Questo è lo stesso dei nostri test funzionali in cui definiamo l'ambito dei nostri test prima di iniziare i nostri sforzi di test.
- Disponibilità della documentazione ai tester - Assicurarsi che i tester dispongano di tutti i documenti richiesti, come i documenti che descrivono in dettaglio l'architettura web, i punti di integrazione, l'integrazione dei servizi web, ecc. Il tester deve essere a conoscenza delle basi del protocollo HTTP / HTTPS e conoscere l'architettura dell'applicazione web e le modalità di intercettazione del traffico.
- Determinazione dei criteri di successo - A differenza dei nostri casi di test funzionali, in cui possiamo derivare i risultati attesi dai requisiti dell'utente / requisiti funzionali, il test della penna funziona su un modello diverso. I criteri di successo oi criteri di superamento del test case devono essere definiti e approvati.
- Revisione dei risultati del test dal test precedente - Se è mai stato eseguito un test precedente, è bene rivedere i risultati del test per capire quali vulnerabilità esistevano in passato e quale rimedio è stato adottato per risolverlo. Questo dà sempre un'immagine migliore dei tester.
- Capire l'ambiente - I tester dovrebbero acquisire conoscenze sull'ambiente prima di iniziare i test. Questo passaggio dovrebbe garantire loro una comprensione dei firewall o altri protocolli di sicurezza che dovrebbero essere disabilitati per eseguire il test. Il browser da testare dovrebbe essere convertito in una piattaforma di attacco, di solito eseguita modificando i proxy.
# 2) Attacchi / Fase di esecuzione (durante il test):
Il test di penetrazione web può essere eseguito da qualsiasi luogo, dato che non dovrebbero esserci restrizioni su porte e servizi da parte del provider Internet.
- Assicurati di eseguire un test con diversi ruoli utente - I tester devono assicurarsi di eseguire test con utenti che hanno ruoli diversi poiché il sistema potrebbe comportarsi in modo diverso rispetto agli utenti che hanno privilegi diversi.
- Consapevolezza su come gestire il post-sfruttamento - I tester devono seguire i criteri di successo definiti come parte della Fase 1 per segnalare qualsiasi sfruttamento, inoltre devono seguire il processo definito di segnalazione delle vulnerabilità rilevate durante il test. Questo passaggio coinvolge principalmente il tester per scoprire cosa è necessario fare dopo aver scoperto che il sistema è stato compromesso.
- Generazione di rapporti di prova - Qualsiasi test eseguito senza un reporting appropriato non aiuta molto l'organizzazione, lo stesso vale per i test di penetrazione delle applicazioni web. Per garantire che i risultati del test siano condivisi correttamente con tutte le parti interessate, i tester dovrebbero creare report appropriati con i dettagli sulle vulnerabilità rilevate, la metodologia utilizzata per i test, la gravità e la posizione del problema riscontrato.
# 3) Fase di post-esecuzione (dopo il test):
Una volta completato il test e i rapporti sui test condivisi con tutti i team interessati, il seguente elenco dovrebbe essere elaborato da tutti:
- Suggerisci riparazione - Il Pen Testing non dovrebbe finire solo con l'identificazione delle vulnerabilità. Il team interessato, incluso un membro del QA, dovrebbe esaminare i risultati riportati dai tester e quindi discutere la riparazione.
- Testare nuovamente le vulnerabilità - Dopo che la correzione è stata adottata e implementata, i tester dovrebbero ripetere il test per assicurarsi che le vulnerabilità corrette non compaiano come parte del loro nuovo test.
- Pulire - Come parte del Pentest, i tester apportano modifiche alle impostazioni del proxy, quindi la pulizia dovrebbe essere eseguita e tutte le modifiche ripristinate.
I migliori strumenti di Penetration Test
Ora, poiché hai già letto l'articolo completo, credo che ora tu abbia un'idea molto migliore su cosa e come possiamo testare una applicazione web.
Quindi dimmi, possiamo eseguire manualmente il Penetration test o accade sempre automatizzando utilizzando uno strumento. Senza dubbio, penso che la maggior parte di voi stia dicendo Automazione. :)
Questo è vero perché l'automazione porta velocità, evita errori umani manuali, copertura eccellente e molti altri vantaggi, ma per quanto riguarda il Pen Test, ci richiede di eseguire alcuni test manuali.
Il test manuale aiuta a trovare le vulnerabilità legate alla logica di business, riducendo i falsi positivi.
Gli strumenti tendono a fornire molti falsi positivi e quindi è necessario un intervento manuale per determinare se si tratta di vulnerabilità reali.
Leggi anche - Come testare la sicurezza delle applicazioni Web utilizzando lo strumento Acunetix Web Vulnerability Scanner (WVS)
Gli strumenti vengono creati per automatizzare i nostri sforzi di test. Di seguito è riportato un elenco di alcuni degli strumenti che possono essere utilizzati per Pentest:
Per ulteriori strumenti, puoi anche fare riferimento - 37 potenti strumenti di test della penna per ogni penetration tester
Le migliori società di test di penetrazione
I fornitori di servizi sono aziende che forniscono servizi per soddisfare le esigenze di verifica delle organizzazioni. Di solito eccellono e possiedono esperienza in diverse aree di test e possono eseguire test nel loro ambiente di test ospitato.
Di seguito sono menzionate alcune delle aziende leader che forniscono servizi di test di penetrazione:
- PSC (Conformità alla sicurezza dei pagamenti)
- Netragard
- Securestate
- CoalFire
- HIGHBIT Security
- Nettitude
- 360
- NetSPi
- ControlScan
- Skods Minotti
- 2 | Sez
- Valutazione della sicurezza
- Sistemi di controllo della sicurezza
- Hacklabs
- CQR
Alcune certificazioni di Penetration Test:
Se sei interessato a ottenere la certificazione sulla certificazione della penetrazione di app web, puoi optare per le seguenti certificazioni:
come aprire l'estensione del file json
- OSWE (Esperto Web di sicurezza offensiva)
- GWAPT (GIAC Web Application Penetration Tester)
- CWAPT (Tester di penetrazione di app Web certificato)
- eWPT (elearnSecurity Web Application Penetration Tester)
Conclusione
In questo tutorial, abbiamo presentato una panoramica di come vengono eseguiti i test di penetrazione per le applicazioni web.
Con queste informazioni, il penetration tester può avviare i test di vulnerabilità.
Idealmente, i test di penetrazione possono aiutarci a creare software sicuro. È un metodo costoso, quindi la frequenza può essere mantenuta una volta all'anno.
Per saperne di più sui Penetration Test, leggi gli articoli correlati di seguito:
- Un approccio per il test di sicurezza delle applicazioni Web
- Penetration Testing - Guida completa con esempi di test case
- Come testare la sicurezza delle applicazioni - Tecniche di test della sicurezza delle applicazioni Web e desktop
Per favore condividi le tue opinioni o esperienze su Pentest di seguito.
Lettura consigliata
- Guida al test di sicurezza delle applicazioni Web
- Test di sicurezza di rete e migliori strumenti di sicurezza di rete
- Migliori strumenti di test del software 2021 (Strumenti di automazione del test QA)
- Alpha test e beta test (una guida completa)
- Test di sicurezza (una guida completa)
- Una guida completa ai test di penetrazione con casi di test di esempio
- Strumenti di Penetration Test per applicazioni mobili e fornitori di servizi
- Differenza tra desktop, test server client e test Web