Fuzzing 단계별 흐름 Fuzzer는 수많은 이상한 입력 중 의미 있는 실패를 어떻게 찾아갈까요? 정상 또는 최소 구조를 가진 seed input을 준비합니다. → Fuzzer가 byte를 바꾸거나 삽입·삭제하여 새 input을 생성합니다. → Instrumented program에 input을 넣어 실행합니다. → Crash·sanitizer finding·timeout·새 code coverage를 oracle로 관찰합니다. → 새로운 path를 연 input은 corpus에 보존해 다시 변형합니다. → 실패 input을 재현하고 최소화한 뒤 root cause와 exploitability를 분석합니다. Fuzzer는 수많은 이상한 입력 중 의미 있는 실패를 어떻게 찾아갈까요? 화살표를 왼쪽에서 오른쪽으로 따라가며 입력·처리·결과를 확인하세요. 1 정상 또는 최소 구조를가진 seedinput을 준비합니다. 2 Fuzzer가 byte를바꾸거나 삽입·삭제하여새 input을생성합니다. 3 Instrumentedprogram에input을 넣어실행합니다. 4 Crash·sanitizerfinding·timeout·새codecoverage를oracle로관찰합니다. 5 새로운 path를 연input은corpus에 보존해다시 변형합니다. 6 실패 input을재현하고 최소화한 뒤root cause와exploitability를분석합니다. 시험 읽기 순서 등장 주체 또는 입력 → 처리 규칙 → 보안 효과 → 조건과 한계