Che cos'è il test Fuzz?

Fuzz Testing è considerato il tipo di test in cui sono necessarie tecniche di test automatizzate o semi-automatizzate per scoprire errori nella codifica e le lacune nella sicurezza nel software o nei sistemi operativi fornendo l'input di dati casuali al sistema. Questi dati casuali si chiamano FUZZ. Dopotutto, questo avviene, il sistema viene controllato per diversi tipi di eccezioni come l'arresto anomalo del sistema o persino il codice incorporato non riesce e molto altro. Questo è stato originariamente sviluppato da qualcuno chiamato Barton Miller, che era dell'Università del Wisconsin. Si chiama anche fuzzing è considerato il tipo di test di sicurezza.

Perché abbiamo bisogno del test Fuzz?

  • Spesso, i test Fuzz hanno la capacità di individuare i più gravi errori di sicurezza nel sistema.
  • Fornisce risultati molto più efficaci quando lo utilizziamo insieme a Black Box Testing, Beta Testing o diversi metodi di debug.
  • È inoltre necessario verificare la vulnerabilità del software. È anche una tecnica di test davvero conveniente.
  • È considerata una tecnica di test in scatola nera. È anche uno degli hacker di metodo più utilizzati che trova la vulnerabilità del sistema.

Come viene eseguito il Fuzzy Testing?

I passaggi per i test fuzzy includono i passaggi di test di base

Passaggio 1 : riconoscimento del sistema di destinazione.

Passaggio 2 : riconoscimento degli input.

Passaggio 3 : generazione di dati fuzzed.

Passaggio 4 : test dell'esecuzione utilizzando dati fuzzy.

Passaggio 5 : monitoraggio del comportamento del sistema.

Passaggio 6 : registrazione dei difetti.

Esempi di fuzzer

Ci sono molti fuzzer come di seguito:

  • Fuzzer basati sulla mutazione: questi fuzzer modificano i campioni di dati esistenti in modo da creare nuovi dati di prova. Questo è abbastanza facile come il metodo diretto, inizia con un protocollo ragionevole e continua a mescolare ogni singolo byte o anche come file.
  • Fuzzer basati sulla generazione: definiscono dati nuovi a seconda dell'input del modello. Inizia la generazione di input da zero a seconda delle specifiche.
  • Fuzzer basato su protocollo: è considerato un fuzzer di maggior successo che ha una conoscenza abbastanza spiegata del formato del protocollo che deve essere testato. Questa comprensione dipende dalle specifiche. Include la scrittura di una serie di specifiche all'interno dello strumento e successivamente utilizza la tecnica basata sul modello. È anche noto come test di sintassi o test di grammatica o test di robustezza.

Abbiamo due limiti di questo fuzzing basato su protocollo che è come sotto:

  1. Non possiamo procedere con i test fino a quando le specifiche non saranno abbastanza mature.
  2. Esistono molti protocolli che sono un'estensione dei protocolli pubblicati. Nel caso in cui il test fuzz si basi su queste specifiche che vengono pubblicate, la copertura del test per questi nuovi protocolli verrebbe limitata.

Esiste la forma più semplice di test di fuzzing che sta inviando l'input casuale nel software sotto forma di pacchetti di protocollo o anche sotto forma di un evento. Questo particolare modo di trasmettere input casuali è considerato abbastanza potente per localizzare i bug in varie applicazioni e servizi. Esistono anche altre tecniche disponibili e anche abbastanza facili da implementare.

Tipi di bug rilevati da Fuzz Testing

  • Perdite di memoria e errori di asserzione: questo metodo è ampiamente utilizzato in ampie applicazioni in cui i bug influiscono sulla sicurezza della memoria che è considerata una grave vulnerabilità.
  • Input non valido: i fuzzer sono necessari per generare l'input non valido necessario per testare le routine di gestione degli errori nel test fuzz. Inoltre, è del tutto necessario per software che non controlla l'input. Il fuzzing è considerato un modo per automatizzare i test negativi.
  • La correttezza dei bug: il fuzzing è necessario per rilevare alcuni tipi di bug di "correttezza" come un database corrotto o scarsi risultati di ricerca e molto altro.

Strumenti di test Fuzz

Gli strumenti che sono abbastanza utili nella sicurezza web possono anche essere ampiamente utilizzati nei test fuzz o fuzzy. Ad esempio Peach Fuzzer, Burp Suite, ecc.

1. Peach Fuzzer

Questo strumento offre una copertura molto più robusta e di sicurezza rispetto allo scanner. Se parliamo di altri strumenti di test, tuttavia, hanno la capacità di cercare solo le minacce conosciute. Ma Peach Fuzzer fa scoprire agli utenti minacce note e sconosciute.

2. Proxy di Spike

Spike è considerato lo strumento di livello professionale che cerca vulnerabilità a livello di applicazione in varie applicazioni Web. SPIKE Proxy considera solo le basi come SQL Injection o cross-site-scripting. Tuttavia, è un'infrastruttura completamente aperta di Python. SPIKE Proxy è presente sia per Linux che per Windows.

vantaggi

  • I bug scoperti nei test fuzz sono spesso considerati gravi e per lo più vengono utilizzati dagli hacker che consistono in arresti anomali, perdite di memoria o un'eccezione non gestita e molto altro.
  • Se i tester non rilevano errori o bug a causa della limitazione del tempo e delle risorse, tali errori possono essere rilevati nel test Fuzz.

svantaggi

  • Tutto solo, i test fuzz da soli non hanno la capacità di fornire lo scenario generale di tutte le minacce alla sicurezza.
  • Inoltre, il test fuzz non è considerato molto efficace quando si tratta di bug di sicurezza che non causano arresti anomali del programma come virus, worm, ecc.
  • Ha la capacità di rilevare solo minacce semplici.
  • Per dare una prestazione efficace, richiede tempo significativo.

Conclusione

Quindi possiamo concludere che nell'ingegneria del software questo test, ovvero il test Fuzz dimostra la presenza dei bug in qualsiasi applicazione. Questo test non garantisce il rilevamento completo dei bug in nessuna delle applicazioni. Tuttavia, se utilizziamo questa tecnica Fuzz, garantisce che l'applicazione sia abbastanza robusta, oltre a garantire la ragione che i test fuzz aiutano molto nell'esporre molte vulnerabilità comuni.

Articoli consigliati

Questa è una guida al Fuzz Testing. Qui discutiamo cos'è il test fuzz? strumenti di test, vantaggi e svantaggi rispettivamente. Puoi anche consultare i nostri altri articoli suggeriti per saperne di più -

  1. Test di benchmark
  2. Tipi di test del software
  3. Che cos'è il test di usabilità?
  4. Test statici

Categoria: