tcsh
練習として American Fuzzy Lop を使用して OS X でテストしようとしていますが、システム上の有用なファイルを誤って破壊したくありません。
ファズ テストについてはほとんど何も知らなかったので、次の操作を実行しました。
brew 経由でファザーをインストールしました。
$ brew install afl-fuzz
サイドノードとして、tcsh
configure スクリプトはフラグを無視するようです--disable-shared
。
$ ./configure CC=afl-clang --disable-shared --prefix="$HOME"/opt/fuzzy-local ; make
次に、愚かなサンプルテスト スクリプトを示しました。samples/sample.csh
echo '45'
それから、私は可能な限り最も単純な方法でしばらく afl-fuzz を実行しました。
$ 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 @@
しかし、ランダムに生成されたシェル スクリプトが実行できることを十分に制限できるかどうかはわかりません。