Data la complessità del software, è difficile garantire che non ci siano bug. Questo è semplicemente il modo in cui le cose sono progettate dall'uomo e altamente complesse. Per ridurre al minimo il problema, le società di sviluppo software includono revisioni del codice nel ciclo di vita dello sviluppo del software. Ma anche un'attenta revisione degli esperti non può catturare tutto. I limiti in tempo reale e di budget lo aggravano. Per questo motivo, i bug si fanno strada verso i sistemi di produzione. Alcuni bug hanno poco o nessun effetto, ma altri possono introdurre brutte vulnerabilità di sicurezza.
Una vulnerabilità di sicurezza è una classe di bug che influisce in qualche modo sulla sicurezza del sistema. Esiste un'ampia gamma di possibili risultati, ma alla fine tutte le vulnerabilità della sicurezza sono dannose per tutti. Sfortunatamente, trovare bug può essere difficile e richiedere molto tempo. Mentre gli sviluppatori possono dedicare solo una quantità limitata di tempo a testare i bug, un altro gruppo combinato impiega molto più tempo a utilizzare l'applicazione: gli utenti.
Gli utenti di un sistema, messi insieme, trascorrono molto più tempo su un sistema di quanto potrebbero mai fare gli sviluppatori di quel sistema. Usano anche una varietà molto più ampia di dispositivi. Combinato, questo rende l'ambiente perfetto per trovare bug: molti occhi e casi limite.
Mettere gli utenti al lavoro
Il modo tradizionale di utilizzare gli utenti per risolvere i bug è disporre di una funzione di segnalazione degli errori che consenta agli utenti di segnalare un bug che incontrano. Gli sviluppatori possono utilizzare queste informazioni per replicare, identificare e risolvere il problema. Il problema è che c'è un incentivo minimo per l'utente a segnalare eventuali problemi. È un processo che richiede tempo, ha potenziali implicazioni sulla privacy e generalmente non comporta alcun feedback, anche se il problema è stato risolto.
Le vulnerabilità della sicurezza sono anche peggiori. Un utente malintenzionato potrebbe scegliere di utilizzare attivamente una vulnerabilità che trova. A seconda del problema, potrebbe essere possibile ottenere l'accesso a qualcosa di prezioso, sul mercato nero o tramite riscatto o ricatto. In alternativa, è possibile vendere la conoscenza della vulnerabilità sul mercato nero. In ogni caso, gli utenti non sono incentivati a segnalare bug e sono disincentivati a segnalare vulnerabilità di sicurezza.
Girando i tavoli
Un sistema di bug bounty è un modo per ribaltare la situazione e incoraggiare la segnalazione attiva di problemi di sicurezza. Il metodo è semplice, li premia. Il metodo standard prevede il pagamento di una taglia in denaro e il riconoscimento pubblico del contributo. Questo premia direttamente gli utenti per aver segnalato una vulnerabilità della sicurezza e li incoraggia a fare la cosa giusta.
I sistemi di bug bounty sono in genere aperti a chiunque. Qualsiasi utente che identifichi una vulnerabilità di sicurezza può segnalarlo e farsi pagare. Ci sono alcuni avvertimenti, però. Per essere pagato, in genere devi essere la prima persona a segnalare un problema, anche se a volte ci sono rare eccezioni in circostanze eccezionali. Devi anche seguire le regole.
Le regole di un sistema di bug bounty forniscono una protezione totale da azioni legali se rimani all'interno di esse. Sono spesso dettagliate ma relativamente semplici. Non accedere ai dati di altre persone, non utilizzare le vulnerabilità in modo dannoso e divulgarli in modo privato e responsabile. Potrebbero esserci anche alcune cose che sono considerate vietate.
Come sono le ricompense?
Realisticamente, le ricompense si basano sulla buona volontà. C'è anche un elemento di "se questo ha causato una violazione dei dati, dovremmo pagare una multa molto più grande". In genere, l'azienda paga un importo relativamente basso per questo. Questo, tuttavia, può essere molto per il giornalista. Alcuni bug possono essere pagati per meno di cento dollari. In casi estremi, però, alcune aziende hanno pagato centomila dollari per gravi vulnerabilità. Naturalmente, la maggior parte delle ricompense sono molto inferiori.
Storicamente, le taglie dei bug sono state molto più basse e talvolta più di un semplice ringraziamento. Ad esempio, inviare una maglietta gratuita o fornire un abbonamento gratuito a vita al servizio. Tuttavia, le grandi aziende tecnologiche hanno potenziato il mercato, così come l'arrivo delle piattaforme di bug bounty. Le piattaforme di bug bounty sono siti Web che ospitano i programmi di bug bounty di molti clienti. Raggruppano tutto in un unico posto. Ciò rende molto più semplice per un'organizzazione più piccola eseguire un sistema di bug bounty. Uno dei modi in cui lo fa è semplicemente standardizzando il processo.
Ovviamente, la ricompensa in una taglia di bug è molto inferiore a quella che si potrebbe ottenere vendendo il bug sul mercato nero. Il concetto si basa sul fatto che, generalmente, la maggior parte delle persone vuole fare la cosa giusta. O almeno non vogliono che il rischio di infrangere la legge torni a perseguitarli.
Conclusione
Un bug bounty è un sistema di pagamento di una ricompensa per aver trovato e divulgato responsabilmente una vulnerabilità di sicurezza. Incoraggia attivamente gli utenti a testare e migliorare la sicurezza dei prodotti. Porta molti nuovi occhi al processo di test, il tutto a un costo minimo per l'azienda. Ovviamente, come qualcuno che prende parte a un sistema di bug bounty, è essenziale stare attenti e capire le regole.
L'hacking è illegale; il programma bug bounty consente di testare alcune cose ma in genere include limitazioni. Se non segui le regole, potresti essere penalmente responsabile. Se segui le regole, trovi e segnali un bug, potresti ottenere un buon compenso e aumentare la sicurezza per te stesso e per gli altri utenti.