Quando si guarda il codice sorgente, può essere molto difficile individuare tutti gli errori.
La fonte è una descrizione di cosa fa il programma, ma non di come. Se uno sviluppatore commette un errore, potrebbe non essere ovvio che lo abbia fatto, o anche che sia un errore, se non influisce sull'apparente funzionalità del programma
Per assicurarti che non ci siano vulnerabilità, il codice deve essere esaminato per i bug. Questo richiede a chi capisce cosa dovrebbe fare il programma (in questo caso implementando un heartbeat TLS) per leggere il codice sorgente ed eseguire test sul programma, che richiede tempo e denaro. Il team di OpenSSL non ha la capacità di cercare tutti i potenziali bug, soprattutto perché è composto da volontari. È per questo motivo che il bug è passato inosservato. È stato solo dopo che un ricercatore di sicurezza su Google ha esaminato OpenSSL che la vulnerabilità è stata scoperta e corretta.
Hai bisogno della capacità di trovare bug per poterli risolvere.
Viene rilasciata una patch, c'è sempre una finestra tra quando la patch viene rilasciata e quando viene applicata dagli utenti. Gli aggressori hanno la possibilità di attaccare gli utenti in quella finestra poiché sono ancora vulnerabili. È lo stesso con tutto il software.