나는 tcsh
연습으로 American Fuzzy Lop을 사용하여 OS X에서 테스트를 시도하고 있지만 실수로 내 시스템의 유용한 파일을 망가뜨리고 싶지 않습니다.
퍼즈 테스트에 대해 본질적으로 아무것도 모르는 상태에서 저는 다음을 수행했습니다.
저는 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 @@
하지만 이것이 무작위로 생성된 쉘 스크립트가 수행할 수 있는 작업을 제한하는 데 충분한 작업을 수행하는지 확신할 수 없습니다.