해커

    퍼징(fuzzing) 환경 구축하기

    "fuzzing against machine" 도서를 읽고 정리한 내용입니다. 퍼징의 기본 개념 QEMU(Quick Emulator)를 사용하는 이유는, 펌웨어를 가지고 에뮬레이팅하면 실제로 기기를 가지고 있지 않아도 테스트할 수 있기 때문이다. 플레이스테이션이나 닌텐도 등 비싼 기기를 보유하지 않아도 에뮬레이터를 통해 PC에서 동작할 수 있는 것처럼 말이다. 취약점에는 버퍼 오버플로우, 포맷 스트링 취약점, 힙 오버플로우 등이 있다. 이러한 취약점을 발견하는 과정은 매우 지루(tedious)한 과정이다. 그래서 퍼저(fuzzer)라는 툴을 이용한다. 퍼저는 프로그램을 실행하고, 다른 입력값(input)을 넣으면서 프로그램의 충돌(crash)을 관찰(monitoring)한다. 퍼징의 성과를 향상하기 위해..