L'esecuzione di uno scanner automatico delle vulnerabilità delle applicazioni è sufficiente per certificare la sicurezza dell'applicazione? Perché non lo è?
L'esecuzione di uno scanner automatico delle vulnerabilità delle applicazioni è sufficiente per certificare la sicurezza dell'applicazione? Perché non lo è?
Sicuramente i controlli automatici non sono sufficienti e crediamo che non lo saranno mai. Bene, fino a quando non verrà creata un'intelligenza artificiale. Come ad esempio i fuzzer, possono coprire solo i controlli che falliscono per input severi. I bug logici verranno persi. L'analisi del codice sorgente mostra buoni risultati quando si parla di bug veramente gravi e di quelle vulnerabilità che richiedono diverse condizioni per essere soddisfatte. L'analisi binaria potrebbe essere scoraggiante per una persona non così esperta, ma è possibile ispezionare l'applicazione del codice sorgente chiuso e inoltre tiene conto delle specifiche del compilatore che sono impossibili da diagnosticare durante l'analisi del codice sorgente. Quindi, ogni metodo ha il suo vantaggio e non dovrebbe essere usato da solo.
Affidarsi solo alla scansione automatica delle vulnerabilità per controllare la sicurezza della maggior parte delle applicazioni è terribilmente inadeguato.
Perché? Perché gli strumenti automatizzati non rileveranno le vulnerabilità (errori di tipo II / falsi negativi) .
L'implicazione più brutta di questa domanda è che la sicurezza dell'applicazione è importante ma è stata ignorata durante lo sviluppo.
Le applicazioni non possono essere certificate come sicure nello stesso modo in cui i veicoli non possono essere certificati come sicuri da guidare. Il tuo meccanico potrebbe darti un elenco di cose che ha controllato e forse anche verificato come sicure. Tuttavia, ciò non significa che qualcosa non andrà storto una volta che avrai messo la tua auto su strada o in pista.
Solo i meccanici che cercano di derubarti forniranno un'ispezione di sicurezza completamente automatizzata. Sarebbe folle pensare che nei prossimi 50 anni sarebbe giusto considerare qualsiasi applicazione completamente sicura o protetta, anche con intelligenza artificiale. Anche i metodi formali con specifiche formali sono noti per fallire.
Suggerisco di definire correttamente l'ambito della situazione unica di un'applicazione prima di determinare i risultati.
Sufficiente per cosa?
Sufficiente per difendersi da altri attacchi puramente automatizzati come i worm? Probabilmente.
Sufficiente per difendersi da attacchi mirati di aggressori esperti? Certamente no.
Una domanda migliore è "Una scansione automatica riduce il rischio a un livello accettabile per la mia applicazione?" La risposta è, ovviamente, dipende ...
Per usare un'analogia, non faresti la domanda: "È sufficiente andare dal mio medico generico?" senza il contesto di "Ho bisogno di un controllo annuale" o "Mi sono appena tagliato metà del busto con la motosega".
Una scansione automatica potrebbe essere sufficiente per un sito di brochureware a bassa criticità nel proprio dominio, ma sicuramente non lo è sufficiente per un'app bancaria. La maggior parte dei siti cade da qualche parte nel mezzo, quindi ... Dipende ;-)