Il ruolo dell’Hacker Etico o Penetration Tester è tra quelli al momento più richiesti nel mercato del lavoro e tra le figure tecniche più ricercate in ambito IT.
Il motivo di questa forte domanda dipende dal fatto che le aziende rivolgono sempre maggiore importanza alla sicurezza dei propri sistemi informatici e asset critici data anche la sempre maggiore occorrenza di data breach o attacchi subiti e alle compliance da rispettare specialmente da parte di realtà che devono trattare dati finanziari e la pubblica amministrazione.
Infine, figure tecniche di questo tipo sono molto rare in quanto richiedono una notevole multidisciplinarità, dal punto di vista strettamente tecnico, ma non solo.
Come scritto da Alec Ross nel suo libro del 2016 intitolato “Il nostro futuro – Come affrontare il mondo dei prossimi venti anni”, la cybersecurity, insieme a robotica, Big Data, genomica e Intelligenza Artificiale, farà parte delle principali industrie del futuro.
Lo scopo di questo articolo è dunque quello di andare ad elencare le skill principali che ogni Ethical Hacker dovrebbe avere.
E’ necessario che un Ethical Hacker sappia programmare bene?
Questa è una delle domande più comuni che viene fatta da parte di chi vorrebbe intraprendere la professione di Penetration Tester.
Nonostante ogni conoscenza aggiuntiva sia da intendersi chiaramente come un vantaggio, la realtà è che non è necessario saper programmare in un linguaggio specifico, quanto più che altro essere in grado di saper leggere e, quindi, comprendere il codice sottostante l’applicazione.
Ciò consente ad un Ethical Hacker di effettuare un reverse engineering dell’implementazione realizzata dallo sviluppatore, in modo da intuire dove potrebbero essere presenti le vulnerabilità, e di avere la capacità di adattare le proprie conoscenze a qualunque linguaggio o framework che venga utilizzato.
Ovviamente, la conoscenza almeno a livello teorico dei concetti di programmazione ad oggetti (OOP) è tuttavia molto utile ed è un prerequisito per sapere interpretare adeguatamente il codice.
Eventualmente la conoscenza di linguaggi di programmazione quali Python e Bash potrebbe consentire la creazione di tool qualora questi non siano già disponibili oppure siano da modificare.
A questo proposito è possibile seguire il seguente diagramma di flusso.
Quali sono dunque gli aspetti principali sui quali focalizzarsi?
E’ necessario innanzitutto chiarire che quella del Penetration Tester è una professione vera e propria e, in quanto tale, può risultare molto differente dall’idea spesso stereotipata che si ha di essa.
La professionalità richiesta è infatti non solo di stampo tecnico, ma anche umanistico.
Ad esempio, il fatto di dover consegnare al cliente finale un report tecnico, ma accessibile anche ai livelli meno tecnici dell’organizzazione, impone al Penetration Tester di saper scrivere molto bene in italiano, talvolta anche in inglese, e con la chiarezza necessaria per farsi capire anche da persone che preferiscono avere una visione d’insieme della situazione piuttosto che entrare nel dettaglio.
E’ necessario inoltre sviluppare il pensiero laterale e un notevole spirito critico, spesso necessari per individuare bypass di sicurezza sull’applicazione o per saper cercare le risorse migliori su uno specifico argomento tecnico.
L’utilizzo di Google, per quanto dato spesso per scontato, è infatti molto importante. E’ fondamentale che un Penetration Tester sia in grado di individuare in modo autonomo le soluzioni ai problemi che incontra durante la sua attività, e ad utilizzare le cosiddette Google Dork per effettuare ricerche avanzate sul motore di ricerca.
A livello invece di competenze più tecniche, è necessario sviluppare una conoscenza razionale ed efficace dei tool maggiormente utilizzati dai professionisti.
Tra questi si segnalano i seguenti:
- Burp Suite: proxy utilizzato per intercettare il traffico inviato tra l’applicazione e il server;
- Nessus: il tool più utilizzato in ambito di Vulnerability Assessment;
- Metasploit: una piattaforma di Penetration Testing modulare che consente la scrittura ed esecuzione di exploit;
- Nmap: il tool di port scanning più famoso.
Inoltre, è molto importante conoscere le principali reference utilizzate in Sicurezza Informatica, ovvero:
- OWASP (Open Web Application Security Project), utilizzata principalmente per la sicurezza delle Web Application;
- OSSTMM (Open Source Security Testing Methodology Manual), utilizzata principalmente per la sicurezza infrastrutturale.
E’ infine necessario aggiornarsi costantemente dal punto di vista tecnico in modo da conoscere da subito gli eventuali nuovi exploit disponibili o accrescere la propria competenza come attaccante. A tale scopo è possibile utilizzare il subreddit “r/netsec”, Twitter, oppure seguire le vulnerabilità pubblicate su piattaforme di Bug Bounty Program quali HackerOne e BugCrowd.
Conclusioni
La professione dell’Ethical Hacker o Penetration Tester è attualmente tra le più richieste in ambito IT ed è necessario sviluppare non solo competenze tecniche, ma anche numerose soft skill, tra cui una continua curiosità e voglia di mettersi in gioco, se si vogliono massimizzare le probabilità di avere successo in tale carriera.
Per questo motivo, ti proponiamo infine un’interessante ma facile sfida: sei in grado di decifrare la frase seguente?
Va obppn ny yhcb cre yn ghn pneevren!
Segui gli spunti forniti dall’articolo e prova ad individuare la soluzione!