Ich versuche, es tcsh
als Übung mit American Fuzzy Lop auf OS X zu testen, möchte aber nicht versehentlich nützliche Dateien auf meinem System löschen.
Da ich im Grunde nichts über Fuzz-Tests wusste, habe ich Folgendes getan:
Ich habe den Fuzzer über Brew installiert.
$ brew install afl-fuzz
Als Nebenknoten tcsh
scheint das Konfigurationsskript das --disable-shared
Flag zu ignorieren.
$ ./configure CC=afl-clang --disable-shared --prefix="$HOME"/opt/fuzzy-local ; make
Dann habe ich ein dummes Beispiel-Testskript dafür erstellt:samples/sample.csh
echo '45'
Dann habe ich eine Zeit lang auf die naivste Art und Weise, die möglich war, AFL-Fuzz ausgeführt.
$ afl-fuzz -i samples -o afl_findings ./bin/tcsh -f @@
Ich stellte bald fest, dass die zufällig generierten Shell-Skripte einige Datenmülldateien erstellt hatten.
$ ls
?d%FF%FFd%A7 ? 5? bin share
?45? 45 afl_findings samples
Was wäre die richtige Art, die Möglichkeiten der zufällig generierten Shell-Skripte einzuschränken und zu verhindern, dass sie möglicherweise für mich wichtige Dateien löschen oder ändern?
Ich versuchte es weiter
$ chown nobody:nogroup afl-findings
$ sudo -u nobody afl-fuzz -i samples -o all_findings ./bin/tcsh -f @@
aber ich bin nicht sicher, ob das ausreicht, um die Möglichkeiten zufällig generierter Shell-Skripte einzuschränken.