I Penetration Test e i programmi di Bug Bounty vengono entrambi utilizzati per scovare le vulnerabilità e i bug nelle piattaforme di sviluppo software simulando potenziali attacchi al fine di prevenirli. Ma qual è la differenza tra i due? Quando usare il Penetration Test e quando il Bug Bounty?
Che cos'è il Penetration Test?
Il Penetration Test o Pen Test è un tipo di test di sicurezza utilizzato per trovare errori, bug, falle, minacce e vulnerabilità in sistemi software o web app che un hacker (black hat) potrebbe sfruttare. È un attacco simulato che i penetration tester - o ethical hacker - compiono per trovare possibili vulnerabilità.
Come funziona un Penetration Test
Il Penetration Test consiste in un attacco mirato per valutare i livelli di sicurezza di un'applicazione o di una rete. L'obiettivo è identificare e correggere le vulnerabilità, ovvero tutte quelle falle di sicurezza che espongono il software ad alti rischi, prima che qualcuno possa trarne vantaggio. Il Pen Test è considerato un “hacking etico” in cui la procedura di test si svolge nel seguente modo:
- Riconoscimento: per determinare e comprendere l'ambiente su cui verrà applicato il test.
- Enumerazione: si fa ricerca e analisi delle possibili vulnerabilità che la struttura di destinazione può avere.
- Sfruttamento: una volta identificate le possibili vulnerabilità, si utilizzano strumenti per cercare di “penetrare”.
- Elevazione: dopo aver ottenuto l'accesso all'infrastruttura interna, si cerca di prendere il controllo di altri sistemi dell'organizzazione o di aumentare i privilegi di un account utente.
- Reporting e rimedio: report finale che descrive tutte le falle di sicurezza rilevate e le misure da adottare per rimediare.
Tipologie di Penetration Test: White, Grey e Black Box
Esistono diverse tipologie di Penetration Test, ciascuna con caratteristiche specifiche che permettono di valutare la sicurezza da differenti prospettive. Di seguito, vediamo le principali tipologie:
- White Box Penetration Test (Pentesting in Scatola Bianca)
In un “test white box” si conosce la composizione interna e si ha pieno accesso al software o al sistema di cui si vogliono rilevare le vulnerabilità. In altre parole, si ha pieno accesso al codice sorgente, alla documentazione dell'architettura e alle credenziali degli utenti. Questo è il motivo per cui si parla di white box, perché la struttura su cui si vuole lavorare è totalmente chiara. Da questo test, è possibile ottenere una valutazione completa delle vulnerabilità interne ed esterne dell'infrastruttura IT.
- Grey Box Penetration Test (Pentesting in Scatola Grigia)
Il “grey box penetration test” presenta alcune analogie con il precedente, con la differenza che si ha accesso solo alle credenziali e non al codice sorgente o alla documentazione dell'architettura. In questo caso si simulano attacchi che potrebbero avvenire per mano stessa degli utenti che hanno un accesso parziale al sistema, al fine di determinare l'impatto che un malintenzionato potrebbe avere.
- Black Box Penetration Test (Pentesting in Scatola Nera)
Nel “black box pentesting” non si dispone di ulteriori informazioni rispetto a quelle già pubbliche e note a chiunque altro. Ci si mette in sostanza nella prospettiva di un hacker esterno. Senza credenziali o accesso a informazioni private. Qui l'obiettivo principale è scoprire se un attaccante esterno, senza informazioni preliminari, possa accedere al sistema, all'applicazione o ai dati dell'organizzazione.
Leggi altri articoli sul Pen Test:
Che cos'è il programma di Bug Bounty?
Il programma di Bug Bounty è un accordo che propongono numerosi siti web, aziende e sviluppatori di software che garantisce agli ethical hacker di ricevere una ricompensa qualora scovassero una vulnerabilità o un bug di sicurezza. Sono programmi che rimangono attivi per un lungo periodo, di solito continuano durante il ciclo di vita del prodotto e permettono agli hacker di trovare vulnerabilità via via che il software si evolve.
Quando utilizzare un Penetration Test rispetto a un Bug Bounty
Il Pentesting e il Bug Bounty sono due approcci complementari che, se usati insieme, contribuiscono a blindare la sicurezza di un'organizzazione.
Indicativamente, un'azienda dovrebbe utilizzare un Penetration Test quando ha bisogno di un'analisi strutturata e approfondita della sicurezza, soprattutto in momenti critici come il lancio di un nuovo prodotto o per conformarsi a normative di settore. Il Pen Test è condotto da esperti che seguono un approccio metodico e forniscono un'analisi completa delle vulnerabilità rilevate, delle tecniche utilizzate per scoprirle e delle raccomandazioni per risolverle o mitigarle.
Il Bug Bounty è adatto quando un’azienda cerca una copertura di sicurezza continua per individuare vulnerabilità su una superficie d'attacco ampia, coinvolgendo una comunità di “cacciatori di bug” attraverso un sistema di ricompense, in modo scalabile e costante nel tempo. è un’attività più flessibile e orientata a lungo termine.
Differenze tra Pen Test e Bug Bounty
1. Costi
I costi del Penetration Test generalmente vanno fai 4.000 ai 100.000 dollari, in base alla natura del sistema software, la grandezza del network e lo scopo dell'assessment. Applicazioni complesse ed estese possono costare anche di più. Secondo RSI e u-tor, in media i Penetration Test di alta qualità svolti da professionisti possono costare tra i 10.000 e i 30.000 dollari.
I programmi di Bug Bounty sono relativamente più economici del pen test, visto che gli hacker vengono retribuiti per bug trovato. Aziende come Facebook e Apple offrono ingenti investimenti in programma di Bug Bounty:
“Facebook offre un payout minimo di 500$ per bug accettato e senza un massimale, ovvero non c'è un limite massimo stabilito di quanto può valere un bug. Ad oggi, il più grande payout di Facebook è stato di 50.000$, mentre Apple pagherà fino a un milione di dollari per il bug più di valore su iOS.”
Fonte: Wired
Alcuni programmi di Bug Bounty sono gratuiti e vengono offerti altri incentivi ai ricercatori, come fargli scalare le classifiche.
2. Vantaggi
Tra i vantaggi del Penetration Test ci sono i seguenti:
- permette di scoprire le vulnerabilità del sistema e di ottenere un report che descrive le vulnerabilità e gli errori
- svela le strategie degli hacker e dunque come potrebbero sfruttare le falle del sistema. Può anche evidenziare quali parti dell'applicazione necessitano miglioramenti
- sfrutta piccoli team dedicati per scoprire più velocemente le vulnerabilità
- permette ai tester di testare sistemi sia interni che esterni
I vantaggi dei programmi di Bug Bounty sono:
- nei programmi di Bug Bounty ci sono molteplici possibilità per il tuo test perché possono prendere parte molti ricercatori e tester con competenze diversificate
- può essere meno costoso del Pen Test
- puoi mettere dei paletti e stabilire regole sul test. Decidi tu cosa testare e quanto approfonditamente vuoi svolgere i test
- non paghi un extra: se il ricercatore non trova nulla nell'assessment, non devi pagarlo.
3. Svantaggi
Gli svantaggi dei Pen Test sono:
- se i test non vengono condotti propriamente, possono causare addirittura danno al sistema. Possono danneggiarlo o crashare il server
- viene coinvolto un piccolo gruppo di tester competenti
- il costo dipende molto dai tempi e dallo scopo del progetto
- il Penetration test non è continuativo
Gli svantaggi del Bug Bounty sono:
- durante il programma di Bug Bounty, nessuno prende l'ownership del programma. Sono i singoli tester/ hacker che sanno che verranno pagati solo se scoprono vulnerabilità
- possono esserci diversi trust issues quando si affida il progetto a degli "sconosciuti"
- consente di testare siti e web app solo una volta che sono aperti al pubblico
4. Gli obiettivi del Pen test vs Bug Bounty
L'obiettivo del Pen Test dipende dal bisogno dell'azienda e dall’oggetto di analisi del test. Ci sono infatti diversi tipi di Pen Testing in base alla sezione del sistema IT su cui ci si focalizza. Ad esempio:
- Il penetration testing delle applicazioni web si concentra specificamente sulle applicazioni web che l'organizzazione utilizza o offre ai propri utenti. Gli attaccanti cercano di identificare e sfruttare vulnerabilità comuni nelle applicazioni web, come SQL injection, cross-site scripting (XSS) e cross-site request forgery (CSRF).
- Il penetration testing dei sistemi embedded si concentra sui dispositivi con software integrato progettati per svolgere funzioni specifiche, come dispositivi IoT, sistemi di controllo industriale e dispositivi medicali. Questi sistemi sono spesso utilizzati in ambienti critici e possono rappresentare un rischio significativo se compromessi. Gli attaccanti cercano di identificare vulnerabilità nei dispositivi embedded, testando la sicurezza del firmware, delle interfacce di comunicazione e delle funzionalità integrate.
I programmi di Bug Bounty vengono condotti per testare siti o web app disponibili al pubblico. È per questo che non vengono utilizzati in pre-rilascio.
5. Durata del test
Il Penetration Test viene solitamente condotto in un periodo breve di tempo, ad esempio 2-3 giorni, due volte all'anno.
I programmi di Bug Bounty invece hanno limiti di tempo più elastici. Questo è il motivo per cui spesso vengono usati in ottica di continuous testing. Sono perfetti per le aziende che rilasciano nuovi aggiornamenti e prodotti a intervalli regolari.
6. Penetration Test e Bug Bounty: come svolgerli
Step per performare un Penetration Test
- Planning phase
- Discovery phase
- Attack phase
- Reporting vulnerability phase
Step per lanciare un programma di Bug Bounty
- Set up del programma di vulnerability assessment
- Decidere attentamente l'obiettivo e il premio
- Decidere il tipo di programma di Bug Bounty: pubblico o privato
- Set up di un testing environment connesso alla natura dell'applicazione
- Decidere le blackout date e i quite period
- Ottenere il supporto degli altri dipartimenti connessi
- Iniziare con un test di estensione limitata
- Reclutare il giusto personale
- Lanciare il programma di Bug Bounty al pubblico
- Prepararsi a risolvere le vulnerabilità
7. Chi conduce i test?
I Pen tests sono svolti da ethical hacker esperti assunti da aziende specializzate in cyber security. Per diventare ethical hacker professionista, si devono ottenere qualificazioni in cyber security, che assicurano una profonda conoscenza degli aspetti legali, tecnici ed etici del testing. Prima di intraprendere un lavoro di questo tipo, è comune che l'ethical hacker si identifichi e firmi un contratto nel quale conferma lo scopo del suo lavoro.
Anche i programmi di Bug Bounty attraggono ethical hacker professionisti, ma in questo caso chiunque può partecipare al programma. I test vengono svolti autonomamente sia da professionisti che da principianti, che portano con sé una vastità di esperienze, conoscenze ed etica.
8. Feedback
Nel Penetration Test, non solo ricevi una lista di vulnerabilità, ma un bravo pen tester ti dà anche feedback sulla tua applicazione. In più, fornisce tutto il supporto necessario per correggere e risolvere le vulnerabilità.
Dall'altra parte, il Bug Bounty ti fornisce solo un report che descrive le vulnerabilità senza dare alcun feedback. Può succedere comunque che le aziende chiedano all'ethical hacker di approfondire.
Pen Test Costanti? Chiedi a UNGUESS Security!
UNGUESS Security è la soluzione che ti permette di lanciare pen test costanti. Aziende e centinaia di ethical hackers esperti si incontrano sulla piattaforma di collaborazione di UNGUESS Security per iniziare progetti a breve o lungo termine. Affidandosi a una community, le aziende possono finalmente superare il gap esistente tra le skill richieste e la disponibilità del mercato.