La maggior parte dei difetti di controllo / autorizzazione di accesso non verrebbe mai trovata da uno strumento (generico), perché non ha la comprensione di cosa dovrebbe essere accessibile e cosa no. (Detto questo, i pentesters esperti probabilmente sanno che un bel po 'di applicazioni non hanno questo documentato ...) Quindi questo è un esempio di un'intera classe di problemi.
Qualsiasi difetto logico (ad esempio un utente che è in grado di creare un altro utente con più privilegi in base alla progettazione) non verrebbe rilevato da uno strumento automatico.
Qualsiasi catena di vulnerabilità non sarebbe correlata, come ad esempio come utilizzare una perdita di informazioni a basso rischio, insieme a un DOM XSS a medio rischio insieme ad un'altra vulnerabilità a basso rischio per cambiare la password di un utente a qualsiasi cosa l'hacker voglia (questo è un esempio reale che ho visto).
Testare DOM XSS con uno scanner normale (come al solito) come la maggior parte di questi strumenti commerciali è abbastanza difficile in quanto non hanno un runtime Javascript, quindi perderanno la maggior parte di esso.
Anche per le cose testabili, uno strumento può avere diversi pattern da provare, ma probabilmente mancheranno casi più complessi. Ad esempio, cosa succede se un'applicazione ha un filtro della lista nera per XSS che blocca esplicitamente l'avviso (1) e tutti i vettori di attacco dello strumento lo hanno come payload? Passare attraverso un filtro della lista nera è quasi sempre possibile, ma è molto difficile per uno strumento automatico.
O considera il DoS. Come lo troverà uno strumento automatico?
Per un esempio finale, per quanto riguarda l'overflow del buffer in un file caricato ed elaborato, ad esempio un utente carica un'immagine che viene ridimensionata da una libreria lato server, vulnerabile a bof. Come potrebbe lo strumento automatizzato sapere che è il caso e in che modo creerebbe un exploit per questo?
Questi sono solo alcuni esempi, sono sicuro che altri citeranno molto di più.
In breve,
-
ci sono intere classi di vulnerabilità che non possono essere testate nel caso generico
-
anche per le vulnerabilità che sono automaticamente testabili, è praticamente impossibile scrivere test completi (una serie di test che trova tutte le istanze della vulnerabilità).
Naturalmente, considerando tutto questo, penso che non ci sia niente di sbagliato nell'usare strumenti per rendere più veloci molte cose. Tuttavia, qualsiasi risultato di uno strumento deve essere riprodotto dal tester e inoltre deve essere consapevole dei limiti dello strumento per poter aumentare i risultati con attacchi più creativi.