
다양한 취약점 탐지 기술중에, 퍼징은 큰 인기를 끌고있다.왜냐하면 개념적인 단순함, 개발의 낮은 진입장벽, 엄청난 양의 real-world 소프트웨어 취약점 발견사례들(경험적 증거) 때문이다.개념적 단순함 : 반복적으로 프로그램에 오류가 날때까지 인풋을 넣는다.낮은 개
“fuzz”라는 용어는 본래 “타겟 프로그램이 소비(consumed) 할 랜덤 문자열 스트림을 생성하는” 프로그램을 나타내기위해 만들어졌다. 즉, 취약점 탐지와는 무관하게 프로그램에 넣을 인풋들을 랜덤으로 생성하는 프로그램을 나타내는 단어가 "fuzz"였다.이후로 “f
일부 퍼저는 첫 번째 fuzz iteration이 반복되기 전에 fuzz configuration의 초기 세팅을 변경한다.이러한 전처리는 일반적으로 PUT을 계측(instrument)하거나 잠재적인 중복 구성(configurations) 배제(즉, "시드 선택(seed
퍼징에서 스케줄링은 다음 퍼징 반복을 위한 fuzz configuration을 선택하는 것을 의미한다. § 2.1에서 설명한 바와 같이, 각 fuzz configuration의 내용은 퍼저의 유형에 따라 달라진다.간단한 퍼저의 경우 스케줄링이 간단할 수 있다. 예를 들

Test Case 의 내용에 따라서 버그가 트리거 되는지 직접적으로 결정되기 때문에, 입력값을 만드는 것은 퍼저를 설계하고 개발할때에 가장 중요한 부분(design decision)이다.전통적으로 fuzzer는 1. generation-based fuzzer 2. mu

input evaluation은 입력값이 생성되면, fuzzer는 그 입력값을 이용해서 PUT를 실행하고 실행 결과를 이용해서 무엇을 할지 결정하는 과정을 말한다. fuzzing의 매력 중 하나는 PUT을 간편하게 실행하며 테스트할 수 있다는 점이지만 fuzzing의

CONFUPDATE (set of Configuration(C)를 수정하는 함수)는 black-box fuzzer와 grey-box,white-box를 구분짓는 핵심적인 함수다.CONFUPDATE는 fuzzing을 실행하면서 얻은 실행 정보와 configuration을
최근 fuzzer의 발전에 대한 포괄적인 연구를 제공하고자 하는 본 논문 말고도 두개의 fuzzing survey(Fuzzing:a survey, Fuzzing: State of the art)가 있는데 이 두 survey는 본 논문보다 범위가 좁다.Fuzzing :