PeAR: A Static Binary Rewriting Framework for Binary-Only Fuzzing
Il documento presenta PeAR, un framework di rewriting statico di binari che dimostra come l'strumentazione statica sia un'alternativa pratica ed efficace alla strumentazione dinamica per il fuzzing di soli binari, raggiungendo un'elevata compatibilità con il target, significativi guadagni di prestazioni attraverso la modalità persistente e una copertura comparabile ai metodi basati su compilatore.
Articolo originale sotto licenza CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). Questa è una spiegazione generata dall'IA dell'articolo qui sotto. Non è stata scritta né approvata dagli autori. Per precisione tecnica, consulta l'articolo originale. Leggi il disclaimer completo
Immagina di essere una guardia giurata che cerca di trovare trappole nascoste in un edificio misterioso e chiuso (un software). Non puoi vedere le planimetrie (il codice sorgente), quindi devi indovinare dove potrebbero trovarsi le trappole lanciando migliaia di oggetti diversi contro le porte e le pareti per vedere cosa si rompe. Questo processo è chiamato fuzzing.
Per sapere se hai trovato un nuovo punto da testare, hai bisogno di un modo per tracciare quali parti dell'edificio hai già visitato. Di solito, l'architetto dell'edificio (il compilatore) installa piccoli sensori (strumentazione) per contare i tuoi passi. Ma poiché non hai le planimetrie, devi installare questi sensori da solo dopo che l'edificio è già stato costruito.
Ci sono due modi principali per farlo:
- Il Metodo "Dal Vivo" (Dinamico): Assumi un team di operai che stiano all'interno dell'edificio mentre lanci oggetti. Loro osservano tutto e prendono nota. È molto accurato, ma gli operai sono lenti e intralciano il lavoro, rendendo l'intero processo molto più lento.
- Il Metodo "Pre-Partita" (Statico): Ti intrufoli prima che l'edificio apra, modifichi le pareti per includere i tuoi sensori e poi chiudi tutto a chiave. Questo è molto più veloce perché i sensori fanno parte dell'edificio stesso. Tuttavia, è rischioso. Se indovini male la struttura della parete, potresti rompere l'edificio o mancare completamente le trappole.
Per molto tempo, le persone hanno pensato che il metodo "Dal Vivo" fosse l'unica scelta sicura perché il metodo "Pre-Partita" era considerato troppo goffo e soggetto a errori.
Entra in scena PeAR: Il Maestro dei Ristrutturatori
Gli autori di questo articolo hanno costruito un nuovo strumento chiamato PeAR. Pensa a PeAR come a una squadra di ristrutturazione altamente qualificata e automatizzata che può intrufolarsi in un edificio finito, mappare accuratamente le pareoli e installare sensori hi-tech senza rompere nulla.
Volevano dimostrare che il metodo "Pre-Partita" non è più solo una scommessa rischiosa, ma può essere tanto buono quanto il metodo "Dal Vivo", ma molto più veloce.
Cosa rende speciale PeAR?
La maggior parte delle precedenti squadre di ristrutturazione (strumenti più vecchi) poteva installare solo sensori di base. Non potevano gestire i trucchi sofisticati che i moderni guardie giurate usano per lavorare più velocemente. PeAR, invece, è costruito su un nuovo e affidabile sistema di mappatura (chiamato GTIRB) che consente di eseguire tre trucchi avanzati:
Il Ciclo "Senza Reset" (Modalità Persistente):
- Il Vecchio Modo: Ogni volta che lanci una pietra, la squadra deve buttarti fuori, ricostruire la porta e lasciarti rientrare. Questo richiede un tempo infinito.
- Il Modo PeAR: PeAR installa un corridoio speciale dove puoi lanciare 1.000 pietre di fila senza mai lasciare l'edificio. Ti basta resettare la stanza tra un lancio e l'altro. Questo rende il processo incredibilmente veloce.
Il Trucco dello "Salto della Configurazione" (Inizializzazione Differita):
- Il Vecchio Modo: Alcuni edifici hanno un lungo e noioso controllo di sicurezza all'ingresso (caricamento librerie, controllo configurazioni) prima che tu possa iniziare a lanciare pietre.
- Il Modo PeAR: PeAR taglia l'edificio e ti permette di iniziare a lanciare pietre dopo che la noiosa configurazione è terminata. Salti la fila ogni volta.
Il "Passaggio Telepatico" (Fuzzing in Memoria Condivisa):
- Il Vecchio Modo: Devi scrivere la tua pietra su un pezzo di carta, camminare fino a una cassetta delle lettere, metterla dentro e l'edificio deve aprire la cassetta per leggerla. Questo è lento.
- Il Modo PeAR: PeAR installa un tubo diretto tra la tua mano e la mano dell'edificio. Passi la pietra direttamente attraverso l'aria. Niente carta, niente cassetta delle lettere, niente attesa.
Il Grande Test
Gli autori hanno messo alla prova PeAR contro altri strumenti utilizzando un famoso percorso a ostacoli chiamato FuzzBench, che contiene 25 complessi programmi software. Hanno eseguito i test per un tempo enorme (equivalente a 4,25 anni di elaborazione computeristica continua).
Ecco cosa hanno scoperto:
- Affidabilità: PeAR ha modificato con successo 22 edifici su 25. Questo è altrettanto buono come i migliori altri strumenti "Pre-Partita" e dimostra che non è necessario rompere l'edificio per installare i sensori.
- Velocità: Quando PeAR ha usato i suoi trucchi speciali (il ciclo "Senza Reset" e il "Passaggio Telepatico"), è diventato 4 volte più veloce della sua versione base. Era significativamente più veloce di qualsiasi altro strumento "Pre-Partita".
- Accuratezza: Anche se era più veloce, PeAR non ha mancato nessuna trappola. Ha trovato esattamente lo stesso numero di percorsi nascosti (copertura del codice) del lento metodo "Dal Vivo" e degli strumenti che utilizzano le planimetrie.
Il Punto Fondamentale
L'articolo conclude che il metodo "Pre-Partita" (Strumentazione Binaria Statica) non è più un'opzione rischiosa, lenta o imprecisa. Con gli strumenti giusti come PeAR, puoi modificare software chiusi per trovare bug in modo rapido e accurato, senza bisogno delle planimetrie originali. PeAR dimostra che puoi avere la velocità di una squadra di ristrutturazione con la precisione di un osservatore dal vivo.
Sommerso dagli articoli nel tuo campo?
Ricevi digest giornalieri degli articoli più recenti corrispondenti alle tue parole chiave di ricerca — con riassunti tecnici, nella tua lingua.