본문/내용
1. What is Fuzzing
Fuzzing은 소프트웨어의 보안 취약점을 발견하기 위한 테스트 기법이다. 이 기술은 주로 프로그램의 입력 값에 의도적으로 무작위 데이터를 삽입하여 프로그램이 어떻게 반응하는지를 관찰하는 방식으로 작동한다. 기본적으로 Fuzzing은 프로그램이 예상치 못한 입력에 대해 어떻게 동작하는지를 확인하고, 이를 통해 버그나 취약점을 찾아내는 데 초점을 맞춘다. Fuzzing의 효용성은 다양한 입력 변형을 통해 프로그램 외부에서 쉽게 발견할 수 없는 내부 오류를 드러낼 수 있다는 점이다. 이는 특히 보안 취약점이 존재하는지 여부를 알아내는 데 유용하다. 일반적으로 프로그램은 특정 형식의 입력만 처리하도록 설계되어 있지만, Fuzzing을 통해 이러한 입력 형식을 벗어난 데이터를 제공함으로써 프로그램의 취약성을 시험할 수 있다. 예를 들어, 사용자 입력을 요구하는 애플리케이션에 대해 정상적인 문자열 대신에 지나치게 긴 문자열이나 이진 데이터 등을 입력하여 프로그램이 비정상적으로 작동하는지를 살필 수 있다. Fuzzing의 주된 프로세스는 세 가지 단계로 나눌 수 있다. 첫 번째 단계는 입력 생성이다. 이는 무작위 데이터를 생성하…