Cos'è il test fuzz?

Test fuzz, o fuzzing, è un metodo per verificare come un programma o un sistema per computer risponderà a vari input e informazioni a volte casuali. Il processo prevede la generazione di un qualche tipo di dati, completamente casuale o casuale all'interno di determinati vincoli, e quindi alimentare tali dati nel programma per testare come gestisce le informazioni impreviste. La forma più elementare di test fuzz prevede l'invio di una sequenza casuale di pressioni o caratteri del tasto al programma e controllando che li elabora correttamente. Una versione più complessa di Fuzz Testing utilizza dati strutturati che vengono quindi manipolati in modo casuale e inviato al programma. I dati possono raggiungere il programma come eventi di sistema, input della tastiera, segnali di rete deridere o anche come file da caricare.

Esistono varie parti di un programma per computer che può essere testato con un generatore fuzz. L'interfaccia utente grafica (GUI) può essere TEStato creando una sequenza di eventi casuali di mouse e tastiera e verificando che la GUI sia in grado di gestire l'input senza arrestare, congelare o eseguire un'attività inaspettata. I protocolli di rete possono essere testati consentendo al generatore fuzz di modificare casualmente parti di un pacchetto di dati valido e quindi garantendo che il protocollo possa continuare a funzionare dopo aver ricevuto dati malformati. Gli elementi di input di base di quasi tutti i programmi possono essere verificati per la loro capacità di resistere agli errori, come l'input che è troppo lungo per il tipo di archiviazione, input di un tipo diverso da quello previsto e input che è in qualche modo incompleto o errato.

L'industria della sicurezza informatica può utilizzare i test fuzz per garantire che non esistano fori di sicurezza evidenti in determinati sistemi. Questo può essere fatto utilizzando un generatore fuzz progettato per testare la sicurezza del computer. Questi programmi tenteranno di utilizzare le parole chiave di sistema, le password dell'amministratore predefinite note, le funzioni all'interno delle librerie utilizzate dal programma e Cal casualeLe funzioni di sistema per vedere come reagirà il programma.

I diversi tipi di test fuzz possono essere personalizzati per essere all'interno di determinati intervalli o persino per testare solo tipi specifici di input. Ciò significa che un programma potrebbe avere solo comandi validi inviati ad esso, ma potrebbero essere in un ordine senza senso. Esistono programmi di test fuzz più complessi che possono prendere elementi del programma target e manipolarli per produrre situazioni che potrebbero essere sfruttate maliziosamente. Ciò può includere la modifica dell'ordine dei processi generati, le modifiche delle autorizzazioni o la modifica dei dati di dati e della libreria.

Il risultato finale dei test fuzz è vedere se un programma è sicuro e si comporta come dovrebbe confrontarsi con una situazione inaspettata. Se utilizzato in tandem con software di profilazione e analisi, può anche rilevare perdite di memoria nelle aree del programma come la gestione degli errori o le bottiglia delle prestazioni. In caso di sicurezza informatica, problemi pericolosi come gli overflow che possono comprendereOmise un sistema può essere catturato con la configurazione corretta. I test Fuzz, tuttavia, non possono essere utilizzati come unico metodo di test del software e devono far parte di un più ampio processo di garanzia della qualità e ispezione del software.

ALTRE LINGUE

Questo articolo è stato utile? Grazie per il feedback Grazie per il feedback

Come possiamo aiutare? Come possiamo aiutare?