[Recensione] Corso di Penetration Testing

Student v2 è un corso di penetration testing online e multimediale, realizzato da eLearnSecurity.

Ho avuto la possibilità di visionarlo, e per questo motivo voglio condividere con i lettori di PillolHacking la mia esperienza e le mie impressioni.

Esistono due strade per diventare penetration tester: una via autonoma, faticosa, fatta di ricerche, di errori, ma anche di soddisfazioni. Questa prima strada necessita di molto tempo, ed è insidiosa: talvolta porta a vicoli ciechi, motivo per il quale molti rinunciano.

Poi c’è un’altra strada: seguire un pecorso già tracciato, dove i materiali didattici vengono presentati da chi ha già fatto le ricerche, ha sbagliato, si è migliorato e alla fine ha deciso di mettere a disposizione la propria esperienza.

E qui entra in scena eLearnSecurity, che ha creato un corso base di penetration testing, corso che già nei numeri si prennucnia interessantissimo. Si parla infatti di più di 900 slides e 3 ore di tutorial video.

In questo corso lo studente viene preso per mano da due tutor virtuali e condotto verso tutti gli argomenti fondamentali della materia, passando dalla teoria alla pratica. Si parla di strumenti (come Nessus e Nmap) e di tecniche (Password Cracking, SQL-Injection), ma anche di networking e programmazione.

Alla fine del corso, ogni studente sarà in grado di effettuare un vero penetration test, dalla fase di intelligence (information gathering) all’intrusione vera e propria, sfruttando le tecniche imparate seguendo lelezioni e già utilizzate da ethical hacker di tutto il mondo.

A chi si rivolge questo corso? Al semplice appassionato che vuole fare il salto di qualità, passando dal dilettantismo ad un approccio più professionale; a chi è già professionista nel campo IT e vuol crescere verso la direzione dell’information security; a piccole e medie imprese, che abbiano la necessità di “allevare” un team di sicurezza interno, o specializzare in modo qualificato una struttura già esistente.

E ovviamente, a tutti i curiosi che attratti da questo mondo, non sono mai riusciti a trovare il bandolo della matassa, o un centro di gravità permanente ingrado di dar loro un punto di partenza e di orientamento, elementi necessari nello studio di una materia affascinante ma compessa, che raramente è stata trattata in modo organico e completo.

Come si svolge

Il corso dipenetration testing eLearnsecurity si svolge completamente online, è suddiviso in diversi capitoli, si compone di slides, video di approfondimento ed esercizi. Alla fine di ogni sezione è presente un quiz che consente di mettere alla prova le nozioni acquisite durante la lezione.

Il training è diviso in due grandi sezioni, Preliminary Skill e Penetration Testing. A guidarci in queste sezioni sono presenti due tutor virtuali, Alice, che ci accompagnerà nella sezione preliminare introduttiva e prettamente teorica, e Davide. che ha il compito di condurre lo studente verso la scoperta delle vere tecniche di penetration testing, utilizzate dai migliori professionisti di tutto il mondo.

Preliminary Skill

Nella prima sezione del corso, contraddistinta dal colore rosso, Alice ci introduce alla pratica del penetration testing,  delle varie fasi di cui si compone, della differenza tra penetration testing e vulnerability assessmente. Quindi, quasi a percorrere dal basso verso l’alto lo schema dello stack ISO/OSI, la nostra tutor digitale affronta tutti gli aspetti teorici del networking, come si compongono i pacchetti dati, come sono instradati attraverso router, switch e hub, e poi verso gli strati più alti del networking, verso i protocolli di risoluzione degli indirizzi fisici (ARP), protocolli di rete e di trasporto (IP,TCP,UDP), fino ad arrivare nel dominio delle web applications, tra cookies e sessioni, passando per HTTP e HTTPS.

Tutta questa teoria è necessaria per comprendere le più sofisticate tecniche di basso livello, come l’intercettazione del traffico di rete (Man-in-the-middle attack) basate su ARP o IP spoofing, e di alto livello, come gli attacchi XSS (Cross-Site Scripting).

Come dicevo, questa sezione è essenzialmente teorica, ma introduce anche alcuni importanti strumenti con i quali “sporcarsi le mani”, ovvero Nessun per la ricerca di vulnerabilità, Wireshark per l’analisi del traffico di rete, e Burp per l’analisi delle web application.

Introduzione alla programmazione

Come se gli argomenti trattatti non fossero già abbastanza interessanti, all’interno della prima sezione troviamo un’introduzione alla programmazione, quasi un corso nel corso.

Naturalmente l’argomento programmazione è stato inserito perchè un buon esperto di sicurezza deve essere in si in grado di utilizzare i vari tools esistenti, ma deve anche essere in grado di scriverseli da se, non fosse altro che per risolvere situazioni in maniera tattica, non risolvibili con strumenti standard. E non dimentichiamo che un bughunter, un ricercatore o penetration tester, deve essere in grado di scrivere o adattare/modificare gli exploit, “armi” fondamentali del mestiere.

La scelta dei linguaggi utilizzati da questo corso è razionale: C++, oggi forse il più potente linguaggio di programmazione esistente, scorciatoia verso il basso livello (C e Assembler), e ponte verso le astrazioni di alto livello della programmazione Object Oriented, verso Java, Php e quindi il web; dall’altra parte Python, linguaggio dinamico e utile per situazioni tattiche, linguaggio utilizzatissimo nell’ambito dello sviluppo di tools di hacking, penso ad esempio a sqlmap, potentissimo strumento di attacco tramite SQL-Injection.

Il corso, seppur introduttivo e per forza di cose limitato (vista la complessità dell’argomento che meriterebbe una trattazione a parte), è ricco di esempi; sono inoltre disponibili una cinquantina di codici sorgenti sviluppati con entrambi i linguaggi.

Penetration Testing

Nella sezione “Penetration Testing”, il tutor virtuale Davide, tramite una serie impressionante di slides in cui domina il colore blu, illustra le tecniche di base per poter effettuare un vero penetration test. Con le conoscenze acquisite al termine di questa sezione, unitamente a quelle apprese nella fase di cui sopra, lo studente avrà appresso a tutti gli effetti il modus operandi del penetration tester di professione.

La sezione si apre, com’è logico che sia, con il tutor Davide che spiega le tecniche di information gathering; ricordo che una raccolta di informazioni ben fatta è in grado di determinare il buon esito di un penetration test: padroneggiare queste tecniche è di importanza fondamentale. Vengono illustrate le tecniche di perlustrazione remota (scanning), identificazione di servizi (port scanning), identificazione del sistema (os fingerprinting). La parte del leone di questa sezione la fa sicuramente Nmap, il principe dei newtork scanner.

La lezione prosegue ed entra nel vivo della materia con la sezione dedicata agli attacchi. Vengono affrontate tutte le tecniche che, statistiche alla mano, sono utilizzate quotidianamente da ethical (ma anche un po’ meno ethical) hackers. Si parte con la spiegazione degli attacchi XSS (persistent e reflected), e su come sfruttarli; successivamente si affronta l’argomento delle letali SQL-Injection, e degli strumenti per eseguire gli attacchi basati su queste vulnerabilità.

Un corso di hacking non può essere completo senza trattare il password cracking. E infatti il nostro tutor Davide illustra tecniche, strumenti e approcci, dal brute force al dictionary attack, che consentono di padroneggiare questo argomento complesso e spesso determinante.

Il corso si conclude con una lezione su quello che probabilmente è l’argomento più complesso per il neofita che non abbia basi di programmazione a basso livello (vedi Assembler), ovvero il buffer-oveflow. Ma anche i meno ferrati in codice macchina possono sfruttare questo tipo di exploit, utilizzando uno degli strumenti più potenti a disposizione del penetration tester: Metasploit. Ed è proprio con l’introduzione a Metasploit che si chiude il corso.

Queste lezioni sono accompagnate da video di approfondimento, e alla fine di ogni lezione il tutor suggerisce risorse come link o libri, alle quali attingere per approfondire l’argomento.

Laboratorio

Se dopo aver letto fin qui questo corso vi sembra già spettacolare, sappiate che c’è un altro elemento (che ho tenuto in serbo fino ad ora) che credo renda questa esperienza unica nel suo genere. Parlo del laboratorio HERA.

Tutti gli argomenti che ho tentanto di illustrarvi prima, oltre ad essere spiegati tramite slides interattive, approfonditi da completissimi video e testati da utili quiz, possono essere provati di persona, “hands-on”, in un laboratorio messo a disposizione da eLearnSecurity.

In questo laboratorio è possibile sperimentare, in un ambiente controllato, tutte le tecniche illustrate, dalla scansione di un host, ad un attacco ad una web application (appositamente predisposta) via sql-injection, utilizzando sqlmap; oppure ancora è possibile sperimentare gli exploit di Metasploit, o effettuare le scansioni con Nmap.

Il laboratorio è accessibile da qualsiasi piattaforma (Windows,Linux,Mac), tramite una tunnel cifrato OpenVPN.

Conclusioni

Ho provato a presentare in questo articolo tutti gli aspetti del corso, ma credo di non esserci riuscito. Dopotutto non è facile racchiudere in un articolo la vastità e la densità di argomenti trattati in modo estremamente professionale e completo da questo corso.

Ci vogliono ore per affrontare le quasi 1000 (!) slide e seguire le elezioni video; ma sono ore che volano, quasi come si trattasse di un sogno, e che ci lasciano un senso di meraviglia per le cose imparate, e la curiosità per altre cosa ancora da imparare, verso, forse una carriera da penetration tester professionale, da ricercatore di sicurezza indipendente, o da semplice appassionato, che per un attimo è riuscito a squarciare il velo di mistero che circonda l’affascinante figura dell’ethical hacker.

 

3 Commenti

  1. Sembra davvero molto interessante e ben fatto dalla tua descrizione! Viene anche rilasciato un attestato (di partecipazione o di superamento di un esame)? Ed ha qualche validità? Grazie 🙂

I commenti sono bloccati.