L’evoluzione del cyber crime porta alla nascita di figure professionali specifiche per contrastare le minacce alla cyber security aziendale: tra queste, il bug hunter. Vediamo di cosa si occupa questa figura e quali sono vantaggi e svantaggi dell’attività di bug hunting.
Indice degli argomenti
Chi è il bug hunter
Il bug hunter è un hacker etico che ricerca, in modo legalizzato, falle di sicurezza all’interno di siti, domini e applicazioni (web e mobile) appartenenti ad aziende, compagnie e istituzioni le quali autorizzano queste attività attraverso dei programmi di bug bounty, in cui vi definiscono le varie linee guida da seguire inclusi i domini autorizzati e le tipologie di falle accettate.
Quindi è totalmente legale svolgere tali attività di pen testing e segnalare le falle scoperte senza la preoccupazione di avere ripercussioni legali.
Le aziende che definiscono i propri programmi di bug bounty offrono ai ricercatori che hanno segnalato tramite un report valido una o più falle di sicurezza, premi quali ad esempio Hall of Fame pubbliche sui loro siti, regali come maglie e gadget di vario tipo e somme di denaro proporzionate alla criticità del bug segnalato.
Come si diventa bug hunter
Per prima cosa si deve avere “passione” nei confronti dell’informatica ed in particolare della sicurezza informatica che va coltivata giorno dopo giorno leggendo libri sul penetration testing e report scritti dai più grandi bug hunter del mondo.
È importante, inoltre, aver seguito corsi specializzati ottenendo le necessarie certificazioni che rappresentano una buona base iniziale, ma tutto questo non basta.
La pazienza è un requisito fondamentale, infatti passano giorni o anche settimane prima che si riesca a trovare un bug di sicurezza, considerando il numero elevato di ricercatori concorrenti, soprattutto su domini appartenenti a grandi organizzazioni (Google, Facebook, Microsoft ecc.) e il tutto deve essere ovviamente accompagnato da una dose di buona sorte.
Le competenze necessarie
Necessaria è una conoscenza profonda dei protocolli di rete (TCP/IP), dei meccanismi che stanno alla base dell’architettura client/server e dei principi basilari della crittografia.
Fondamentale è anche la conoscenza delle principali tecnologie utilizzate per creare applicazioni front-end lato client (per il web Javascript, Jquery, Angularjs e ReactJs mentre per il mobile Android e le tecnologie Apple) e dei principali framework utilizzati per creare le applicazioni back-end lato server (Spring, Nodejs e Django).
La conoscenza di un linguaggio di programmazione quale può essere C, Java o Python è basilare, può essere infatti utile scrivere dei propri script che aiutano nell’exploitation della falla di sicurezza individuata o per altre operazioni di propria utilità.
Per mettere in pratica tutte le proprie competenze si possono utilizzare svariate piattaforme che mettono a disposizione programmi di vulnerabilità (HackerOne, Bugcrowd, Google, Facebook e Microsoft sono alcuni dei più famosi) la cui scelta è esclusivamente personale.
Gli step dell’attività di bug hunter
Le fasi in cui si articola l’attività di bug hunting sono molteplici, si parte inizialmente con una ricerca approfondita che può durare anche giorni degli asset appartenenti all’organizzazione alcuni dei quali sono da ritenersi critici e quindi rappresentano una miniera d’oro.
Si passa successivamente alla fase più interessante e che impegna il maggior tempo, quella della ricerca delle falle di sicurezza la cui differenza la fa il ragionare in modo diverso dal comune, per così dire contorto, (Out Of Box), cercando di far eseguire all’applicazione operazioni non volute o non pensate dagli sviluppatori della stessa.
L’utilizzo dei tool commerciali o open-source che li rilevano automaticamente sono vietati dai programmi di bug bounty e va inoltre sottolineato che utilizzarli contro alcune compagnie (vedi Google o Facebook) non porterebbe ad alcun risultato poiché è predominante la fantasia e il ragionamento del ricercatore.
Il passo successivo all’identificazione di una falla è la stesura del report da inviare al team di sicurezza che deve essere preciso, dettagliato e suddiviso in alcune sezioni:
- il titolo descrive in modo sintetico la falla e il dominio su cui è stata identificata;
- l’introduzione approfondisce il tipo di falla e la causa per cui essa è presente sul dominio;
- gli step da seguire rappresentano la parte fondamentale del report perché descrivono tutti i passi che il team di sicurezza deve seguire per riprodurre il problema. In questa sezione si possono includere immagini o filmati per facilitare il lavoro del team soprattutto quando la falla è complessa;
- lo scenario di attacco riassume l’impatto della falla (più è grande l’impatto, maggiore è il premio), a quali dati sensibili può accedere l’attaccante e eventualmente come sfruttarla contro gli utenti;
- i consigli, opzionali, illustrano una possibile risoluzione del problema.
Pro e contro del bug hunting
Il mondo del bug hunting è caratterizzato da molti aspetti positivi e pochi negativi. Tra i pro:
- Confronto entusiasmante con i team di sicurezza di grandissime aziende/compagnie con cui si ha lo scambio di messaggi;
- Miglioramento nel tempo della lingua inglese scritta con le stesure dei report di sicurezza;
- Studio giornaliero delle falle scoperte da altri ricercatori e delle falle di tipo 0-day che potrebbero aiutare nella ricerca dei bug;
- Possibilità di guadagno dal punto di vista economico.
Tra i contro:
- Possibilità che un report inviato possa essere considerato duplicato, questo significa che un altro ricercatore ha trovato la falla prima;
- Ci sono alcune aziende o organizzazioni che impiegano molto tempo nel dare la risposta se considerano il report inviato valido.
Tra i contro, come detto, vi è la possibilità che un report sia duplicato, questo non deve assolutamente scoraggiare per molti motivi, uno dei quali è che si è riusciti a trovare comunque una falla e questo probabilmente è un indicatore che ve ne possano essere delle altre.
La sensazione che si ha nel momento in cui si riceve la notizia che il proprio report è considerato un duplicato può essere di scoraggiamento ma si deve subito reagire e ripartire.