Snapchange, l'eina de fuzzing open source d'AWS

Amazon Web Services, llanço una nova eina de Fuzzing recolzat per KVM de codi obert

Es va donar a conèixer la notícia de quèi Amazon ha llançat una nova eina de fuzzing anomenada Snapchange, que permet verificar fitxers executables sense modificar-los i sense la presència del codi font de l'aplicació. Aquest és un moviment dissenyat en part per abordar les preocupacions sobre la seguretat de la cadena de subministrament de programari.

A la publicació d'Amazon s'esmenta que, Snapchange va començar com un experiment de l'equip de recerca de seguretat de codi obert d'AWS Find and Fix (F2) per explorar el potencial de l'ús de KVM per habilitar la fuzzing d'instantànies.

Avui ens complau anunciar Snapchange, un nou projecte de codi obert per fer que el fuzzing basat en instantànies sigui molt més fàcil. Snapchange permet fuzzejar un binari de destinació amb modificacions mínimes, proporcionant una introspecció útil que ajuda a la fuzzing.

Snapchange és un marc de Rust per crear fuzzers que reprodueixen instantànies de la memòria física per augmentar leficiència i reduir la complexitat en la fuzzing de molts tipus dobjectius. Snapchange utilitza les característiques de l'administrador de màquines virtuals integrat del nucli Linux conegut com a màquina virtual del nucli o KVM. 

Sobre Snapchange

S'esmenta que, Snapchange permet carregar un bolcat de memòria física amb codi executable derivat i organitzar, utilitzant l'hipervisor KVM, una execució cíclica del codi present al bolcat, iterant sobre diverses combinacions de dades dentrada, rastrejant falles o anomalies emergents i reiniciant la verificació després de la següent iteració, cada cop que es restableix el segment de memòria i els registres de la CPU a l'estat original.

Una iteració es restableix i es reinicia després d'una finalització anormal, un temps despera o ocurrència dun esdeveniment determinat. Les dades d'entrada se substitueixen directament a la memòria i per estalviar recursos durant la inicialització a l'estat inicial de la memòria, després de realitzar la següent iteració, es determina quines dades hi ha a la memòria i han canviat.

El bolcat de memòria inicial es crea desant una instantània de la màquina virtual on s'executa l'entorn amb l'aplicació sota prova, executant-se sota VirtualBox o QEMU La lògica de la substitució de dades d'entrada es determina mitjançant la creació d'scripts especials, i la posició d'inici de l'execució cíclica s'estableix mitjançant l'establiment d'un punt d'interrupció al depurador.

Per exemple, si cal verificar el processament de diversos estats d'una sol·licitud de xarxa, l'investigador inicia l'aplicació al sistema convidat a VirtualBox o QEMU, al depurador troba el començament de l'execució del procediment de processament de la sol·licitud (per exemple , després de trucar a la funció recv), us posa un punt d'interrupció i determina l'àrea de memòria on es carrega el paquet de xarxa rebut. Després d'això, es crea una instantània del sistema convidat i es carrega a Snapchange.

Per a la verificació, s'escriu un script que escriu dades durant l'enumeració directament al memòria intermèdia del paquet de xarxa, cosa que permet simular el processament de paquets de xarxa reals. Snapchange torna des d'on el va deixar, canviant cada cop el contingut de les dades al memòria intermèdia i restablint l'estat de la memòria al seu estat original.

S'admeten diverses estratègies per generar dades d'entrada. És possible enumerar amb execució paral·lela diversos entorns vinculats a diferents nuclis de CPU. A més de detectar falles durant l'execució del codi, també admet la recopilació de mètriques de rendiment, l'acumulació d'estadístiques de cobertura per avaluar la cobertura del codi executable i el seguiment pas a pas del codi executable.

Per als interessats en el projecte, han de saber que el codi del projecte està escrit a Rust i es distribueix sota la llicència Apache 2.0 a través de GitHub.

Snapchange funciona dins de Linux, però requereix accés directe a les primitives KVM subjacents. Per tant, és compatible amb els tipus d'instàncies bar metall d'EC2, que s'executen sense hipervisor, però no amb les instàncies virtualitzades d'EC2.

Finalment si estàs interessat en poder conèixer-ne més, pots consultar l'anunci original en el següent enllaç.


Deixa el teu comentari

La seva adreça de correu electrònic no es publicarà. Els camps obligatoris estan marcats amb *

*

*

  1. Responsable de les dades: Miguel Ángel Gatón
  2. Finalitat de les dades: Controlar l'SPAM, gestió de comentaris.
  3. Legitimació: El teu consentiment
  4. Comunicació de les dades: No es comunicaran les dades a tercers excepte per obligació legal.
  5. Emmagatzematge de les dades: Base de dades allotjada en Occentus Networks (UE)
  6. Drets: En qualsevol moment pots limitar, recuperar i esborrar la teva informació.