私はOS XでテストするためにAmerican Fuzzy Lopを試してみましたが、tcsh
誤って私のシステムの便利なファイルを削除したくありませんでした。
ファズテストについて何も知らないので、私は次のことをしました。
Brewを介してFuzzerをインストールしました。
$ 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を実行しました。
$ 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 @@
しかし、これがランダムに生成されたシェルスクリプトの機能を制限するのに十分かどうかはわかりません。