Я пытаюсь провести тестирование tcsh
на OS X с American Fuzzy Lop в качестве упражнения, но не хочу случайно испортить какие-нибудь полезные файлы в моей системе.
Не имея практически никаких знаний о фаззинг-тестировании, я сделал следующее:
Я установил фаззер через brew.
$ brew install afl-fuzz
как сторонний узел, tcsh
скрипт конфигурации, похоже, игнорирует этот --disable-shared
флаг.
$ ./configure CC=afl-clang --disable-shared --prefix="$HOME"/opt/fuzzy-local ; make
Затем привёл глупый пример тестового скрипта:samples/sample.csh
echo '45'
Затем я некоторое время вел себя как аф-фузз самым наивным образом.
$ afl-fuzz -i samples -o afl_findings ./bin/tcsh -f @@
Вскоре я обнаружил, что случайно сгенерированные скрипты оболочки создали несколько мусорных файлов.
$ ls
?d%FF%FFd%A7 ? 5? bin share
?45? 45 afl_findings samples
Как правильно ограничить действия, которые могут выполнять случайно сгенерированные скрипты оболочки, и не допустить их потенциального удаления или изменения файлов, которые мне интересны?
Я пошёл дальше и попробовал
$ chown nobody:nogroup afl-findings
$ sudo -u nobody afl-fuzz -i samples -o all_findings ./bin/tcsh -f @@
но я не уверен, что это в достаточной степени ограничивает возможности случайно сгенерированных скриптов оболочки.