EITC/IS/WAPT Web Applications Penetration Testing è il programma di certificazione IT europea sugli aspetti teorici e pratici dei test di penetrazione delle applicazioni Web (hacking bianco), comprese varie tecniche per lo spidering, la scansione e le tecniche di attacco dei siti Web, inclusi strumenti e suite di test di penetrazione specializzati .
Il curriculum dell'EITC/IS/WAPT Web Applications Penetration Testing copre l'introduzione a Burp Suite, web spridering e DVWA, test di forza bruta con Burp Suite, rilevamento di web application firewall (WAF) con WAFW00F, target scope e spidering, scoperta di file nascosti con ZAP, scansione delle vulnerabilità di WordPress ed enumerazione del nome utente, scansione del bilanciamento del carico, scripting incrociato, XSS – riflesso, archiviato e DOM, attacchi proxy, configurazione del proxy in ZAP, attacchi di file e directory, rilevamento di file e directory con DirBuster, pratica di attacchi web , OWASP Juice Shop, CSRF – Cross Site Request Forgery, raccolta di cookie e reverse engineering, Attributi HTTP – furto di cookie, SQL injection, DotDotPwn – directory traversal fuzzing, iframe injection e HTML injection, Heartbleed exploit – discovery e sfruttamento, PHP code injection, bWAPP – Iniezione HTML, POST riflesso, iniezione di comandi OS con Commix, lato server include iniezione SSI, pentesting in Docker, OverTheWire Natas, LFI e command injection, Google hacking for pentesting, Google Dorks For penetration test, Apache2 ModSecurity e Nginx ModSecurity, all'interno della seguente struttura, che comprende contenuti didattici video completi come riferimento per questa certificazione EITC.
La sicurezza delle applicazioni Web (spesso indicata come Web AppSec) è il concetto di progettazione di siti Web in modo che funzionino normalmente anche quando vengono attaccati. L'idea consiste nell'integrare una serie di misure di sicurezza in un'applicazione Web per proteggere le sue risorse da agenti ostili. Le applicazioni Web, come tutti i software, sono soggette a difetti. Alcuni di questi difetti sono vere e proprie vulnerabilità che possono essere sfruttate e rappresentano un rischio per le aziende. Tali difetti sono protetti tramite la sicurezza delle applicazioni web. Implica l'adozione di approcci di sviluppo sicuri e l'attuazione di controlli di sicurezza durante tutto il ciclo di vita dello sviluppo del software (SDLC), assicurando che vengano affrontati i difetti di progettazione e i problemi di implementazione. Il test di penetrazione online, svolto da esperti che mirano a scoprire e sfruttare le vulnerabilità delle applicazioni Web utilizzando un cosiddetto approccio di hacking bianco, è una pratica essenziale per consentire una difesa adeguata.
Un test di penetrazione web, noto anche come test della penna web, simula un attacco informatico a un'applicazione web per trovare difetti sfruttabili. Il test di penetrazione viene spesso utilizzato per integrare un firewall di applicazioni Web nel contesto della sicurezza delle applicazioni Web (WAF). Il test delle penne, in generale, comporta il tentativo di penetrare in un numero qualsiasi di sistemi applicativi (ad es. API, server frontend/backend) al fine di trovare vulnerabilità, come input non disinfettati che sono vulnerabili agli attacchi di iniezione di codice.
I risultati del test di penetrazione online possono essere utilizzati per configurare le politiche di sicurezza WAF e affrontare le vulnerabilità rilevate.
Il test di penetrazione ha cinque passaggi.
La procedura di test della penna è suddivisa in cinque fasi.
- Progettazione e scouting
La prima fase è definire lo scopo e gli obiettivi di un test, compresi i sistemi da affrontare e le metodologie di test da utilizzare.
Per ottenere una migliore comprensione di come funziona un target e dei suoi potenziali punti deboli, raccogli informazioni (ad esempio, nomi di rete e di dominio, server di posta). - Scansione
La fase successiva consiste nel capire come reagirà l'applicazione di destinazione a diversi tipi di tentativi di intrusione. Questo di solito si ottiene impiegando i seguenti metodi:
Analisi statica: esame del codice di un'applicazione per prevedere come si comporterà quando verrà eseguita. In un unico passaggio, questi strumenti possono scansionare l'intero codice.
L'analisi dinamica è il processo di ispezione del codice di un'applicazione mentre è in funzione. Questo metodo di scansione è più pratico perché fornisce una visualizzazione in tempo reale delle prestazioni di un'applicazione. - Ottenere l'accesso
Per individuare i punti deboli di un obiettivo, questo passaggio utilizza attacchi alle applicazioni Web come scripting cross-site, SQL injection e backdoor. Per comprendere il danno che queste vulnerabilità potrebbero infliggere, i tester cercano di sfruttarle aumentando i privilegi, rubando dati, intercettando il traffico e così via. - Mantenendo l'accesso
Lo scopo di questa fase è valutare se la vulnerabilità può essere sfruttata per stabilire una presenza a lungo termine nel sistema compromesso, consentendo a un malintenzionato di ottenere un accesso approfondito. L'obiettivo è imitare le minacce persistenti avanzate, che possono rimanere in un sistema per mesi per rubare le informazioni più sensibili di un'azienda. - Analisi
I risultati del test di penetrazione vengono quindi inseriti in un rapporto che include informazioni quali:
Vulnerabilità che sono state sfruttate in dettaglio
Dati che sono stati ottenuti che erano sensibili
La quantità di tempo in cui il tester della penna è stato in grado di rimanere inosservato nel sistema.
Gli esperti di sicurezza utilizzano questi dati per aiutare a configurare le impostazioni WAF di un'azienda e altre soluzioni di sicurezza delle applicazioni al fine di correggere le vulnerabilità e prevenire ulteriori attacchi.
Metodi di test di penetrazione
- Il test di penetrazione esterno si concentra sulle risorse di un'azienda visibili su Internet, come l'applicazione Web stessa, il sito Web dell'azienda, nonché i server di posta elettronica e dei nomi di dominio (DNS). L'obiettivo è ottenere l'accesso ed estrarre informazioni utili.
- Il test interno prevede che un tester abbia accesso a un'applicazione dietro il firewall di un'azienda che simula un attacco interno ostile. Non è necessaria una simulazione di dipendenti canaglia. Un dipendente le cui credenziali sono state ottenute a seguito di un tentativo di phishing è un punto di partenza comune.
- Il blind testing è quando a un tester viene semplicemente fornito il nome dell'azienda che viene testata. Ciò consente agli esperti di sicurezza di vedere come potrebbe svolgersi un vero attacco alle applicazioni in tempo reale.
- Test in doppio cieco: in un test in doppio cieco, i professionisti della sicurezza non sono a conoscenza dell'attacco simulato in anticipo. Non avranno il tempo di puntellare le loro fortificazioni prima di un tentativo di sfondamento, proprio come nel mondo reale.
- Test mirati: in questo scenario, il tester e il personale di sicurezza collaborano e tengono traccia dei reciproci movimenti. Questo è un eccellente esercizio di formazione che fornisce un feedback in tempo reale a un team di sicurezza dal punto di vista di un hacker.
Firewall di applicazioni Web e test di penetrazione
Il test di penetrazione e i WAF sono due tecniche di sicurezza separate ma complementari. È probabile che il tester sfrutti i dati WAF, come i registri, per trovare e sfruttare le aree deboli di un'applicazione in molti tipi di test con penna (ad eccezione dei test in cieco e in doppio cieco).
A loro volta, i dati del test della penna possono aiutare gli amministratori WAF. Dopo il completamento di un test, le configurazioni WAF possono essere modificate per proteggersi dai difetti rilevati durante il test.
Infine, il test della penna soddisfa alcuni requisiti di conformità dei metodi di controllo della sicurezza, come PCI DSS e SOC 2. Alcuni requisiti, come PCI-DSS 6.6, possono essere soddisfatti solo se viene utilizzato un WAF certificato. Tuttavia, a causa dei vantaggi summenzionati e della possibilità di modificare le impostazioni WAF, ciò non rende il test con la penna meno utile.
Qual è il significato dei test di sicurezza web?
L'obiettivo dei test di sicurezza Web è identificare i difetti di sicurezza nelle applicazioni Web e nella loro configurazione. Il livello dell'applicazione è la destinazione principale (ovvero, ciò che è in esecuzione sul protocollo HTTP). L'invio di diverse forme di input a un'applicazione Web per indurre problemi e far sì che il sistema risponda in modi imprevisti è un approccio comune per verificarne la sicurezza. Questi "test negativi" cercano di vedere se il sistema sta facendo qualcosa che non era destinato a compiere.
È inoltre fondamentale rendersi conto che il test della sicurezza Web implica molto di più della semplice verifica delle funzionalità di sicurezza dell'applicazione (come l'autenticazione e l'autorizzazione). È inoltre fondamentale garantire che altre funzionalità siano implementate in modo sicuro (ad esempio, la logica aziendale e l'uso di una corretta convalida dell'input e codifica dell'output). Lo scopo è assicurarsi che le funzioni dell'applicazione Web siano sicure.
Quali sono i molti tipi di valutazioni della sicurezza?
- Test per la sicurezza delle applicazioni dinamiche (DAST). Questo test di sicurezza delle applicazioni automatizzato è più adatto per le app a basso rischio rivolte all'interno che devono soddisfare i requisiti di sicurezza delle normative. La combinazione di DAST con alcuni test di sicurezza online manuali per le vulnerabilità comuni è la strategia migliore per le app a rischio medio e le applicazioni cruciali che subiscono modifiche minori.
- Controllo di sicurezza per applicazioni statiche (SAST). Questa strategia di sicurezza delle applicazioni include metodi di test automatici e manuali. È l'ideale per rilevare bug senza dover eseguire app in un ambiente live. Consente inoltre agli ingegneri di eseguire la scansione del codice sorgente per rilevare e correggere i difetti di sicurezza del software in modo sistematico.
- Esame di penetrazione. Questo test di sicurezza dell'applicazione manuale è ideale per le applicazioni essenziali, in particolare quelle che stanno subendo modifiche significative. Per trovare scenari di attacco avanzati, la valutazione utilizza la logica aziendale e test basati sull'avversario.
- Autoprotezione dell'applicazione in runtime (RASP). Questo metodo di sicurezza delle applicazioni in crescita incorpora una varietà di tecniche tecnologiche per strumentare un'applicazione in modo che le minacce possano essere osservate e, si spera, prevenute in tempo reale mentre si verificano.
Che ruolo svolgono i test di sicurezza delle applicazioni nel ridurre il rischio dell'azienda?
La stragrande maggioranza degli attacchi alle applicazioni Web include:
- SQL Injection
- XSS (Scripting tra siti)
- Esecuzione di comandi a distanza
- Attacco di attraversamento del percorso
- Accesso limitato ai contenuti
- Account utente compromessi
- Installazione di codice dannoso
- Introiti di vendita persi
- La fiducia dei clienti si erode
- Danno alla reputazione del marchio
- E molti altri attacchi
Nell'ambiente Internet odierno, un'applicazione Web potrebbe essere danneggiata da una serie di sfide. Il grafico sopra illustra alcuni degli attacchi più comuni perpetrati dagli aggressori, ognuno dei quali può causare danni significativi a una singola applicazione oa un'intera azienda. Conoscere i numerosi attacchi che rendono vulnerabile un'applicazione, nonché i possibili risultati di un attacco, consente all'azienda di risolvere le vulnerabilità in anticipo e di testarle efficacemente.
È possibile stabilire controlli di attenuazione durante le prime fasi dell'SDLC per prevenire eventuali problemi identificando la causa principale della vulnerabilità. Durante un test di sicurezza delle applicazioni Web, la conoscenza del funzionamento di queste minacce può essere utilizzata anche per prendere di mira luoghi di interesse noti.
Riconoscere l'impatto di un attacco è importante anche per la gestione del rischio dell'azienda, poiché l'impatto di un attacco riuscito può essere utilizzato per determinare la gravità della vulnerabilità in generale. Se vengono rilevate vulnerabilità durante un test di sicurezza, determinarne la gravità consente all'azienda di dare priorità agli sforzi correttivi in modo più efficace. Per ridurre i rischi per l'azienda, inizia con problemi di gravità critica e scendi fino a quelli a basso impatto.
Prima di identificare un problema, valutare il possibile impatto di ciascun programma nella libreria delle applicazioni dell'azienda ti aiuterà a stabilire la priorità dei test di sicurezza delle applicazioni. I test di sicurezza Wenb possono essere programmati per indirizzare prima le applicazioni critiche dell'azienda, con test più mirati per ridurre il rischio per l'azienda. Con un elenco consolidato di applicazioni di alto profilo, i test di sicurezza wenb possono essere programmati per indirizzare prima le applicazioni critiche dell'azienda, con test più mirati per ridurre il rischio per l'azienda.
Durante un test di sicurezza di un'applicazione Web, quali funzionalità dovrebbero essere esaminate?
Durante i test di sicurezza delle applicazioni Web, considerare il seguente elenco non esaustivo di funzionalità. Un'implementazione inefficace di ciascuno di essi potrebbe comportare punti deboli, mettendo in pericolo l'azienda.
- Configurazione dell'applicazione e del server. Le impostazioni di crittografia/crittografia, le configurazioni del server Web e così via sono tutti esempi di potenziali difetti.
- Convalida dell'input e della gestione degli errori Una scarsa elaborazione dell'input e dell'output porta a SQL injection, cross-site scripting (XSS) e altri problemi tipici di injection.
- Autenticazione e mantenimento delle sessioni. Vulnerabilità che potrebbero portare alla rappresentazione dell'utente. Anche la forza e la protezione delle credenziali dovrebbero essere prese in considerazione.
- Autorizzazione. La capacità dell'applicazione di proteggere dall'escalation dei privilegi verticali e orizzontali è in fase di test.
- Logica negli affari. La maggior parte dei programmi che forniscono funzionalità aziendali si basano su questi.
- Logica a carico del cliente. Questo tipo di funzionalità sta diventando sempre più comune con le pagine Web moderne e ricche di JavaScript, nonché con le pagine Web che utilizzano altri tipi di tecnologie lato client (ad es. Silverlight, Flash, applet Java).
Per conoscere nel dettaglio il curriculum di certificazione puoi espandere e analizzare la tabella sottostante.
Il Curriculum di certificazione del test di penetrazione delle applicazioni Web EITC/IS/WAPT fa riferimento a materiali didattici ad accesso aperto in forma di video. Il processo di apprendimento è suddiviso in una struttura passo dopo passo (programmi -> lezioni -> argomenti) che copre le parti rilevanti del curriculum. Sono inoltre previste consulenze illimitate con esperti di dominio.
Per i dettagli sulla procedura di certificazione controllare Come Funziona?.
Scarica i materiali preparatori completi di autoapprendimento offline per il programma di Penetration Testing di applicazioni Web EITC/IS/WAPT in un file PDF
Materiali preparatori EITC/IS/WAPT – versione standard
Materiali preparatori EITC/IS/WAPT – versione estesa con domande di revisione