La mia domanda è piuttosto generica. È probabile che la gente elimini la domanda e gli amministratori saranno tentati di chiuderla a off-topic
ecc. Ma non potevo evitare di porre la domanda per cercare risposte fruttuose.
Numerosi bug / vulnerabilità / exploit del software vengono rilevati ogni giorno. I forum sulla sicurezza e le mailing list vengono sopraffatti ricevendo la quantità di post che ricercatori / utenti / ingegneri pubblicano ogni giorno. I database CVE / NVD si riempiono alla velocità della luce. Ciò che mi ha sorpreso per un po 'di tempo è come le persone trovino così tanti bug in un breve lasso di tempo, a meno che un gran numero di software siano esplorati / cacciati sistematicamente per scappatoie. Ad esempio, questo tizio ha segnalato finora sei bug in questo anno.
Per quanto riguarda le tecniche di caccia agli insetti, quello che posso pensare sono i seguenti:
- Black-box fuzzing (per COTS)
- Fuzzing della casella bianca (solo per prodotti open source)
- Ricerca guidata per esecuzione simbolica (non così scalabile, per quanto ne so)
- Reverse engineering (frenetica, un bel po 'di ore lavorative coinvolte)
- Colpire un bug per caso (probabilmente applicabile ai casi segnalati dalla maggior parte degli utenti finali)
- Procedura dettagliata del codice (richiede l'accesso al codice sorgente, adatto al controllo interno o ai prodotti open source)
- Strumenti di analisi statica che aiutano a trovare bug di pattern conosciuti
- Strumenti di analisi dinamica (non ho molta familiarità con questo)
Ancora mi chiedo se una combinazione di tutto quanto sopra possa portare alla scoperta di così tanti bug a un ritmo così rapido. / Ci sono tecniche importanti che mi mancano?