L’applicazione non risponde, un software si chiude all’improvviso, un gioco si blocca per un errore: bene o male, chiunque si sarà imbattuto in uno o più bug durante l’utilizzo del proprio computer o telefono. I dispositivi tecnologici sono ovunque e il numero di programmi è aumentato a dismisura nell’ultimo decennio, così come il numero di bug.
Proprio come un errore in un’operazione matematica o un errore grammaticale all’interno di un testo, un bug non è altro che un errore compiuto durante la scrittura del codice di un software da parte di uno sviluppatore. I bug possono colpire anche le periferiche e si trovano praticamente in ogni tipo di software: a volte sono innocui e causano il malfunzionamento solo di alcune funzioni.
In altri casi, i bug possono compromettere l’uso del software stesso o addirittura farlo crashare (ovvero interromperne l’esecuzione). Negli scenari peggiori, ci sono hacker malintenzionati (chiamati in gergo “cracker”) che vanno alla ricerca di bug nei software per poterli sfruttare a loro vantaggio. E poi ci sono i bug hunter: mai sentito parlare di questa figura?
Come funziona una piattaforma di bug bounty
Se gli hacker malintenzionati cercano i bug per rubare dati agli utenti o anche usarli per veicolare del malware, i bug hunter fanno l’esatto opposto: anche loro vanno a caccia di bug, ma il loro obiettivo è solo quello di individuarli e segnalarli. Esistono centinaia di migliaia di aziende che sviluppano software di ogni genere e molti dei programmi che vengono rilasciati contengono più bug diversi.
Per aiutare le aziende a individuare eventuali bug, qui entrano in gioco le piattaforme di bug bounty (la più famosa è Bugcrowd). Si tratta di piattaforme dove le aziende possono registrarsi e lanciare i propri programmi di bug bounty. In pratica, le aziende lanciano una sfida ai bug hunter, chiedendogli di trovare dei bug nei loro software o anche solo testare le proprie difese dei server aziendali.
Ogni azienda deve anche specificare le ricompense sulle piattaforme per il bug hunting: a seconda della gravità del bug che viene scoperto, l’azienda pagherà una somma diversa ai bug hunter. Ovviamente ci sono delle regole molto stringenti da seguire, che ogni azienda è tenuta a descrivere nel proprio programma. Spesso, infatti, vengono poste delle limitazioni sulle parti di software da “attaccare” per individuare bug, così come vengono specificati i tipi di attacchi che si possono fare.
L’importanza di risolvere i bug per le aziende
Considerato che nel 2020 erano stati contati 27 milioni di sviluppatori attivi nel mondo (secondo il report di State of The Developer Nation), cifra che dovrebbe raggiungere i 45 milioni entro il 2030, si può facilmente immaginare che il numero di software e sistemi prodotti ogni anno sia in costante aumento. E più persone scrivono codice, più errori vengono ovviamente commessi.
Spesso vengono risolti in un momento successivo tramite delle patch, ovvero scrivendo delle correzioni nel codice per sistemare l’errore scritto in precedenza al lancio del software stesso (patch che devono essere installate dagli utenti che usano quello specifico software). Inoltre, ogni azienda dispone di un team interno che si dedica al bug hunting prima di procedere con la pubblicazione e vendita dei software sul mercato.
Infatti, per un’azienda non esiste cosa peggiore che una vulnerabilità zero-day: stiamo parlando di una vulnerabilità, dovuta a un bug, che gli sviluppatori del software non conoscono. E queste vulnerabilità possono rimanere nascoste per anni e anni, con il rischio sempre presente che un gruppo di hacker potrebbe individuarle e usarle a proprio vantaggio (o magari rivendere la scoperta sul mercato nero del dark web).
Ma oltre alle vulnerabilità zero-day, ogni tipo di bug può costare potenzialmente milioni e milioni in danni (sia dovuti al bug, sia dovuti al danno di immagine). In certi casi, i bug possono arrivare a costare centinaia di milioni, come nel caso di un bug che ha colpito un fondo di investimenti, Knight Capital Group, nel 2012.
In questo caso, un bug nei server aziendali aveva portato all’attivazione di un algoritmo per il trading. Non un algoritmo qualsiasi, bensì un algoritmo pensato per l’uso in ambienti di testing e per valutare altri software per il trading. Lo scopo di questo algoritmo era comprare a qualsiasi prezzo un titolo azionario per poi rivenderlo immediatamente.
Questo algoritmo fu però attivato e usato all’apertura della borsa di New York. In soli 45 minuti, ovvero il tempo richiesto per accorgersi del problema e disattivare il software con il bug, ormai erano stati già bruciati 460 milioni di dollari in operazione sbagliate compiute dall’algoritmo.
Ecco perché la figura del bug hunter è molto ricercata: esperti di programmazione e sicurezza informatica possono non solo lavorare all’interno di grosse compagnie, ma anche partecipare a questi programmi di bug bounty per aiutare le aziende a scovare potenziali bug e vulnerabilità. Infatti, non sempre basta avere un team interno e molte società si affidano a piattaforme come Bugcrowd, così come assumono esperti esterni all’azienda per effettuare test specifici.