ClusterFuzzLite, un sistema per organizzare i test di fuzzing del codice

recentemente Google ha presentato tramite un post sul blog il progetto ClusterFuzzLite, che permette di organizzare test fuzzing di codice per la rilevazione precoce di potenziali vulnerabilità nella fase di funzionamento dei sistemi di integrazione continua.

Attualmente, ClusterFuzz può essere utilizzato per automatizzare il test fuzz delle richieste pull in GitHub Actions, Google Cloud Build e Prow, ma si prevede che in futuro sarà compatibile con altri sistemi IC. Il progetto si basa sulla piattaforma ClusterFuzz, creata per coordinare il lavoro dei cluster di test fuzzing, ed è distribuito sotto licenza Apache 2.0.

Va notato che dopo l'introduzione del servizio OSS-Fuzz da parte di Google nel 2016, più di 500 importanti progetti open source sono stati accettati nel programma di test fuzzing continuo. Dalle verifiche effettuate sono state eliminate più di 6.500 vulnerabilità accertate e corretti più di 21.000 errori.

Informazioni su ClusterFuzzLite

ClusterFuzzLite continua a sviluppare meccanismi di test fuzzing con la capacità di identificare i problemi in anticipo nella fase di revisione tra pari delle modifiche proposte. ClusterFuzzLite è già stato introdotto nei processi di revisione delle modifiche nei progetti systemd e curl, e ha permesso di identificare gli errori che non sono stati rilevati negli analizzatori statici e nei linter utilizzati nella fase iniziale di verifica del nuovo codice.

Oggi siamo lieti di annunciare ClusterFuzzLite, una soluzione di fuzzing continuo che viene eseguita come parte dei flussi di lavoro CI/CD per trovare le vulnerabilità più velocemente che mai. Con poche righe di codice, gli utenti di GitHub possono integrare ClusterFuzzLite nel loro flusso di lavoro e richieste pull fuzz per rilevare i bug prima che vengano effettuati, migliorando la sicurezza complessiva della catena di fornitura del software.
Dal suo lancio nel 2016, più di 500 progetti open source critici sono stati integrati nel programma OSS-Fuzz di Google, con conseguente correzione di oltre 6.500 vulnerabilità e 21.000 bug funzionali. ClusterFuzzLite va di pari passo con OSS-Fuzz, rilevando gli errori di regressione molto prima nel processo di sviluppo.

ClusterFuzzLite supporta la convalida del progetto in C, C ++, Java (e altri linguaggi basati su JVM), Go, Python, Rust e Swift. I test di fuzzing vengono eseguiti utilizzando il motore LibFuzzer. È inoltre possibile richiamare gli strumenti AddressSanitizer, MemorySanitizer e UBSan (UndefinedBehaviorSanitizer) per rilevare errori e anomalie di memoria.

Delle caratteristiche principali ClusterFuzzLite mette in evidenza ad esempio il rapida verifica delle modifiche proposte trovare errori nella fase precedente all'accettazione del codice, nonché il download di report sulle condizioni di accadimento dei crash, la capacità di trasferirsi test di fuzzing più avanzati per identificare errori più profondi che non sono comparsi dopo aver verificato la modifica del codice, anche la generazione di report di copertura per valutare la copertura del codice durante i test e l'architettura modulare che consente di scegliere la funzionalità richiesta.

Grandi progetti tra cui systemd e curlya utilizzano ClusterFuzzLite durante la revisione del codice, con risultati positivi. Secondo Daniel Stenberg, autore di curl, “Quando i revisori umani sono d'accordo e hanno approvato il codice e i loro analizzatori di codice statici e linter non sono in grado di rilevare altri problemi, il fuzzing è ciò che ti porta al livello successivo di maturità e robustezza del codice. OSS-Fuzz e ClusterFuzzLite ci aiutano a mantenere il curl come un progetto di qualità, tutto il giorno, ogni giorno e ad ogni impegno.

Dobbiamo ricordare che i test fuzzing generano un flusso di tutti i tipi di combinazioni casuali di dati di input vicini ai dati effettivi (ad esempio pagine html con parametri di tag casuali, file o immagini con intestazioni anomale, ecc.) e correggono possibili errori nel processo.

Se una sequenza non riesce o non corrisponde alla risposta prevista, questo comportamento indica molto probabilmente un bug o una vulnerabilità.

Infine se sei interessato a saperne di più, puoi controllare i dettagli nel seguente link


Lascia un tuo commento

L'indirizzo email non verrà pubblicato. I campi obbligatori sono contrassegnati con *

*

*

  1. Responsabile dei dati: Miguel Ángel Gatón
  2. Scopo dei dati: controllo SPAM, gestione commenti.
  3. Legittimazione: il tuo consenso
  4. Comunicazione dei dati: I dati non saranno oggetto di comunicazione a terzi se non per obbligo di legge.
  5. Archiviazione dati: database ospitato da Occentus Networks (UE)
  6. Diritti: in qualsiasi momento puoi limitare, recuperare ed eliminare le tue informazioni.