È in esecuzione uno scanner di vulnerabilità delle applicazioni automatizzate sufficiente a certificare che la nostra applicazione è sicura? Perché non lo è?
Dall'area51 originale proposta .
Certi controlli automatici non sono sufficienti e crediamo che non lo sarà mai. Bene, fino a quando non viene fatta una IA. Come per esempio i fuzzer - possono coprire solo i controlli che falliscono per un input aspro. I bug logici saranno 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 incontrarsi. L'analisi binaria potrebbe essere scoraggiante per una persona non così esperta, ma è possibile ispezionare l'applicazione del codice sorgente chiusa e inoltre, tiene conto delle specifiche del compilatore impossibili da diagnosticare durante l'analisi del codice sorgente. Quindi, ogni metodo ha il vantaggio e non dovrebbe essere usato da solo.
Affidarsi solo alla scansione automatica delle vulnerabilità per controllare la sicurezza della maggior parte delle applicazioni è tristemente inadeguato.
Perché? Perché gli strumenti automatici mancheranno le vulnerabilità (tipo II errori / falsi negativi) .
La peggiore implicazione di questa domanda è la sicurezza dell'applicazione è importante ma è stata ignorata durante lo sviluppo.
Le applicazioni non possono essere certificate sicure nello stesso modo in cui i veicoli non possono essere certificati come sicuri da guidare. Il tuo meccanico potrebbe consegnarti una lista di cose che lui o lei ha controllato e forse addirittura verificato come sicuro. Tuttavia, ciò non significa che qualcosa non andrà storto una volta che avrai la tua auto in viaggio o in pista.
Solo i meccanici che cercano di derubarti forniranno un controllo di sicurezza completamente automatico. Sarebbe assurdo pensare che nei prossimi 50 anni sarebbe ok considerare qualsiasi applicazione completamente sicura o sicura, anche con l'intelligenza artificiale. Anche i metodi formali con specifiche formali sono noti per fallire.
Ti suggerisco di esaminare correttamente la situazione unica di un'applicazione prima di determinarne i risultati.
Sufficiente per cosa?
Sufficiente per difendersi da altri attacchi puramente automatizzati come i worm? Probabilmente.
Sufficiente per difendersi dagli attacchi mirati di aggressori esperti? Certamente no.
Una domanda migliore è "Una scansione automatizzata riduce il rischio a un livello accettabile per la mia applicazione?" La risposta è, ovviamente, dipende ...
Per usare un'analogia, non faresti la domanda: "Il mio medico generico è sufficiente?" senza il contesto di "Ho bisogno di un controllo annuale" o "Ho appena tagliato a metà il mio tronco".
Una scansione automatica potrebbe essere sufficiente per un sito di brochureware a bassa criticità nel proprio dominio, ma non è sicuramente sufficiente per un'applicazione bancaria. La maggior parte dei siti cade da qualche parte nel mezzo, quindi ... Dipende; -)
Leggi altre domande sui tag appsec penetration-test automated-testing