Estoy intentando realizar una prueba tcsh
en OS X con American Fuzzy Lop como ejercicio, pero no quiero dañar accidentalmente ningún archivo útil en mi sistema.
Sin saber esencialmente nada sobre las pruebas fuzz, hice lo siguiente:
Instalé el fuzzer mediante cerveza.
$ brew install afl-fuzz
Como nodo lateral, el tcsh
script de configuración parece ignorar la --disable-shared
bandera.
$ ./configure CC=afl-clang --disable-shared --prefix="$HOME"/opt/fuzzy-local ; make
Luego le dio un estúpido script de prueba de ejemplo:samples/sample.csh
echo '45'
Luego me quedé sin palabras durante un tiempo de la manera más ingenua posible.
$ afl-fuzz -i samples -o afl_findings ./bin/tcsh -f @@
Pronto descubrí que los scripts de shell generados aleatoriamente habían creado algunos archivos basura.
$ ls
?d%FF%FFd%A7 ? 5? bin share
?45? 45 afl_findings samples
¿Cuál sería la forma correcta de limitar las cosas que pueden hacer los scripts de Shell generados aleatoriamente y evitar que eliminen o modifiquen los archivos que me interesan?
seguí probando
$ chown nobody:nogroup afl-findings
$ sudo -u nobody afl-fuzz -i samples -o all_findings ./bin/tcsh -f @@
pero no estoy seguro de que eso haga un buen trabajo al limitar lo que pueden hacer los scripts de shell generados aleatoriamente.