Red Hot Cyber

La cybersecurity è condivisione.
Riconosci il rischio, combattilo, condividi le tue esperienze ed 
incentiva gli altri a fare meglio di te.

Cerca

Cosa sono i bug di sicurezza. Un viaggio tra PoC, exploit, programmi di bug bounty e lavoro

Massimiliano Brolli : 5 Marzo 2023 09:07

  

Un bug di sicurezza, anche noto come bug di sicurezza informatica, è un tipo di errore o di difetto nel software che può essere sfruttato da un attaccante per compromettere la sicurezza di un sistema informatico.

Questi bug possono essere causati da diversi fattori, tra cui errori di programmazione, problemi di progettazione o di configurazione del sistema, problemi di sicurezza nelle librerie di terze parti o in altri software utilizzati dal sistema, e così via. In alcuni casi, i bug di sicurezza possono essere introdotti anche durante la fase di manutenzione del software, ad esempio attraverso l’applicazione di patch o aggiornamenti di sicurezza non correttamente testati.

I bug di sicurezza possono essere sfruttati da un attaccante in diversi modi, a seconda della natura del bug e del sistema interessato. Ad esempio, un bug di sicurezza in un’applicazione web potrebbe consentire a un attaccante di ottenere accesso non autorizzato a dati sensibili, di eseguire codice malevolo sul sistema, di eseguire attacchi di tipo denial-of-service, o di compromettere altri sistemi connessi alla rete.

È importante sottolineare che i bug di sicurezza sono sempre stati una realtà nell’ambito della sicurezza informatica e non esiste alcun software completamente privo di difetti. Tuttavia, attraverso l’adozione di buone pratiche di sviluppo del software e di sicurezza informatica, è possibile ridurre significativamente il rischio di introdurre bug di sicurezza nei sistemi informatici e di mitigare gli effetti di eventuali bug scoperti dagli attaccanti.

Come si rilevano i bug di sicurezza

Un bug di sicurezza è un errore o una falla nel codice di un software che può essere sfruttato da un hacker o un malintenzionato per ottenere accesso non autorizzato a un sistema informatico o per compromettere la sicurezza dei dati.

Per rilevare un bug di sicurezza, gli esperti di sicurezza utilizzano una varietà di tecniche, come i test di penetrazione e l’analisi del codice sorgente. I test di penetrazione sono condotti per identificare le vulnerabilità di sicurezza eseguendo attivamente degli attacchi al sistema. L’analisi statica del codice, d’altra parte, consiste nell’analizzare il codice sorgente del software per identificare eventuali vulnerabilità o falle di sicurezza.

Una volta rilevati i bug di sicurezza, gli sviluppatori possono correggerli attraverso l’applicazione di patch di sicurezza o l’aggiornamento del software, anche se gli occorre una prova di concetto (PoC) che dimostri come è stato sfruttato quel bug.

Tuttavia, è importante notare che l’eliminazione di un singolo bug di sicurezza non garantisce la sicurezza completa del sistema. Gli hacker possono sfruttare molteplici vulnerabilità per penetrare un sistema, quindi gli sviluppatori dovrebbero lavorare costantemente per identificare e correggere le vulnerabilità di sicurezza.

Una divulgazione responsabile è importante per evitare il cybercrime

La Coordinated Vulnerability Disclosure (CVD) è un processo attraverso il quale un ricercatore di sicurezza che ha rilevato un bug, informa un’azienda o un’organizzazione di una vulnerabilità del software da lui scoperta, affinché questa possa essere corretta prima che venga sfruttata dai malintenzionati.

In pratica, il ricercatore di sicurezza informa l’azienda della vulnerabilità e, se possibile, fornisce una descrizione dettagliata del problema, delle cause e delle possibili soluzioni. L’azienda, a sua volta, si impegna a verificare la validità della vulnerabilità e a correggerla il prima possibile. In questo modo, la CVD mira a minimizzare il rischio per gli utenti finali e a garantire la sicurezza del software.

La CVD è importante perché consente di mantenere un equilibrio tra la divulgazione pubblica delle vulnerabilità e la necessità di correggere i problemi di sicurezza. Quando un ricercatore di sicurezza scopre una vulnerabilità, ha diverse opzioni su come procedere. Una opzione è quella di divulgare pubblicamente la vulnerabilità, ma questo può mettere a rischio gli utenti finali che utilizzano il software. In alternativa, il ricercatore può informare direttamente l’azienda, che ha la responsabilità di correggere la vulnerabilità il prima possibile, senza mettere a rischio gli utenti.

Inoltre, la CVD è importante anche per promuovere una cultura della sicurezza informatica basata sulla collaborazione tra ricercatori di sicurezza, aziende e utenti finali. Quando i ricercatori di sicurezza informano le aziende delle vulnerabilità, queste ultime possono lavorare con i ricercatori per migliorare la sicurezza del software, evitando così problemi futuri. Questo processo può aiutare a creare un ecosistema di sicurezza informatica più resiliente e sicuro per tutti gli utenti.

Cosa è un Proof of Concept (PoC)

Una volta rilevato un bug di sicurezza, viene redatto quello che viene chiamato Proof of Concept (PoC).

Si dice Proof of Concept (PoC), in italiano “prova di concetto”, quando ci si riferisce a un esempio pratico che dimostra la presenza e l’efficacia di un bug di sicurezza in un sistema informatico.

Una PoC è di solito un codice sorgente, uno script o un esempio di input/output che dimostra in modo concreto l’esistenza di una vulnerabilità di sicurezza nel software, mostrando la possibilità di un attacco. Questo può aiutare gli sviluppatori e gli operatori di sicurezza informatica a comprendere meglio il bug e sviluppare un modo per risolverlo.

Le PoC possono essere utilizzate in modo positivo come strumento per migliorare la sicurezza informatica, ma possono anche essere utilizzate da hacker o criminali informatici per dimostrare l’esistenza di una vulnerabilità e di come sfruttarla.

Questo può rappresentare una minaccia per la sicurezza informatica, in quanto può essere utilizzata da attaccanti per creare malware o per condurre attacchi informatici su larga scala.

In sintesi, una PoC è un esempio pratico che dimostra l’esistenza di una vulnerabilità di sicurezza in un sistema informatico. Può essere utilizzata per migliorare la sicurezza informatica, ma anche per scopi maligni da hacker o criminali informatici.

Cosa è un exploit

Un exploit è un codice o una tecnica utilizzata per sfruttare una vulnerabilità di sicurezza esistente in un sistema informatico, al fine di compromettere la sicurezza del sistema o di ottenere un accesso non autorizzato.

Gli exploit possono essere utilizzati in vari contesti e per scopi diversi. Ad esempio, gli exploit possono essere utilizzati per:

  • Compromettere il sistema informatico e ottenere accesso non autorizzato a dati sensibili;
  • Eseguire codice malevolo sul sistema, ad esempio installando malware o ransomware;
  • Espandere l’attacco ad altri sistemi connessi alla stessa rete (movimenti laterali);
  • Effettuare attacchi di tipo denial-of-service (DoS) per interrompere il funzionamento del sistema.

Gli exploit possono essere scritti in diversi linguaggi di programmazione e possono essere distribuiti in vari modi, ad esempio attraverso malware, e-mail di phishing, siti web compromessi, applicazioni scaricate da fonti non attendibili e così via.

È importante notare che gli exploit sono spesso specifici per una particolare vulnerabilità e versione del software, il che significa che gli hacker devono continuamente cercare nuove vulnerabilità e sviluppare nuovi exploit per sfruttarle.

Tuttavia, una volta scoperta una vulnerabilità, gli exploit possono essere distribuiti su larga scala e utilizzati da molteplici attaccanti.

Differenza tra PoC ed Exploit

Potrebbe risultare ancora complicato riconoscere la differenza tra un PoC ed un exploit.

La differenza principale tra una PoC e un exploit è il loro scopo. Come abbiamo visto, una PoC è un esempio pratico che dimostra l’esistenza di una vulnerabilità di sicurezza in un sistema informatico, mentre un exploit è un codice o una tecnica utilizzata per sfruttare quella vulnerabilità per ottenere un accesso non autorizzato o compromettere la sicurezza del sistema.

In altre parole, una PoC è uno strumento utilizzato dagli esperti di sicurezza per dimostrare che una vulnerabilità esiste e funziona. Gli sviluppatori possono poi utilizzare il PoC per generare degli exploit funzionanti distribuiti su larga scala.

Sintetizzando, una PoC è uno strumento utilizzato per dimostrare l’esistenza di una vulnerabilità di sicurezza, mentre un exploit viene utilizzato per sfruttare quella vulnerabilità a scopo malintenzionato.

Ricercare i bug per lavoro è possibile e i guadagni sono alti

I ricercatori di sicurezza informatica possono guadagnare denaro attraverso i programmi di bug bounty. In generale, le aziende offrono una ricompensa economica per ogni vulnerabilità segnalata che viene confermata come valida e corretta. Le ricompense variano a seconda dell’azienda e della gravità della vulnerabilità scoperta, ma possono andare da alcune centinaia a diverse migliaia di dollari.

Esistono diverse piattaforme che raccolgono i programmi di bug bounty di diverse aziende. Tra queste, le più popolari sono HackerOne, Bugcrowd e Synack. Queste piattaforme offrono ai ricercatori di sicurezza informatica un elenco di programmi di bug bounty attivi, permettendo loro di selezionare quelli che sono di loro interesse.

I programmi di bug bounty sono offerti da diverse aziende, tra cui grandi colossi del settore tecnologico come Google, Microsoft, Facebook e Amazon, ma anche da aziende di medie e piccole dimensioni. Le ricompense per le vulnerabilità segnalate possono variare notevolmente a seconda dell’azienda e della gravità della vulnerabilità stessa.

Ad esempio, Google ha offerto fino a 31.337 dollari per la segnalazione di vulnerabilità critica, mentre Facebook ha offerto fino a 40.000 dollari per la scoperta di vulnerabilità simili. Tuttavia, la maggior parte delle ricompense offerte dalle aziende oscilla tra i 500 e i 5.000 dollari.

Inoltre, alcune aziende offrono anche programmi di bug bounty continuativi, che prevedono il pagamento di una ricompensa mensile o annuale ai ricercatori di sicurezza che segnalano regolarmente vulnerabilità nel loro software.

In generale, il guadagno derivante dalla ricerca dei bug di sicurezza dipende dal numero di vulnerabilità scoperte e dalla loro gravità, ma può rappresentare un’opportunità di reddito interessante per i ricercatori di sicurezza informatica che hanno le giuste competenze e conoscenze.

Al momento, la persona che ha guadagnato di più attraverso i programmi di bug bounty è stato Santiago Lopez, un giovane hacker argentino di 19 anni. Ha guadagnato oltre un milione di dollari attraverso i programmi di bug bounty, lavorando su piattaforme come HackerOne e Bugcrowd.

Lopez ha scoperto oltre 1.600 vulnerabilità di sicurezza in diverse aziende, tra cui Twitter, Verizon e Shopify. La maggior parte delle vulnerabilità scoperte sono state di bassa o media gravità, ma ha anche segnalato diverse vulnerabilità critiche.

Il successo di Santiago Lopez dimostra che la ricerca dei bug di sicurezza può essere una professione molto redditizia per chi ha le giuste competenze e abilità, e che i programmi di bug bounty offrono una buona opportunità per guadagnare denaro e fare carriera nel settore della sicurezza informatica.

Massimiliano Brolli
Responsabile del RED Team di TIM S.p.a. e dei laboratori di sicurezza informatica in ambito 4G/5G. Ha rivestito incarichi manageriali in Telecom Italia che vanno dal ICT Risk Management all’ingegneria del software alla docenza.