Estou tentando testar tcsh
no OS X com American Fuzzy Lop como exercício, mas não quero destruir acidentalmente nenhum arquivo útil em meu sistema.
Não sabendo essencialmente nada sobre testes de fuzz, fiz o seguinte:
Instalei o fuzzer através do brew.
$ brew install afl-fuzz
como um nó secundário, o tcsh
script configure parece ignorar o --disable-shared
sinalizador.
$ ./configure CC=afl-clang --disable-shared --prefix="$HOME"/opt/fuzzy-local ; make
Em seguida, dei um exemplo estúpido de script de teste:samples/sample.csh
echo '45'
Então fiquei confuso por um tempo da maneira mais ingênua possível.
$ afl-fuzz -i samples -o afl_findings ./bin/tcsh -f @@
Logo descobri que os scripts de shell gerados aleatoriamente criaram alguns arquivos inúteis.
$ ls
?d%FF%FFd%A7 ? 5? bin share
?45? 45 afl_findings samples
Qual seria a maneira correta de limitar as coisas que os scripts de shell gerados aleatoriamente podem fazer e impedi-los de excluir ou modificar arquivos de meu interesse.
fui tentar
$ chown nobody:nogroup afl-findings
$ sudo -u nobody afl-fuzz -i samples -o all_findings ./bin/tcsh -f @@
mas não tenho certeza se isso faz um trabalho bom o suficiente para restringir o que os scripts de shell gerados aleatoriamente podem fazer.