-
Fuzzing: What is the Fuzzing?Theory/fuzzing theory 2021. 2. 15. 01:22
"퍼징이란?" 여러 사전적 의마가 있겠지만, 대략적으로 다음 설명이면 충분히 설명된다.
퍼징은 소프트웨어를 테스팅하는 방법의 일종으로 무작위 입력값을 프로그램에 대입해 예상치 못한 결과를 얻어내는 것
일반적으로 퍼징을 떠올리면 복잡하고 어렵다고 생각되지만, 그저 단순하게 보면 퍼징은 버그를 찾는 방법 중 하나라고 할 수 있다.
소프트웨어 버그를 찾는 방법을 공부하는 이유는 눈으로 분석하는 것보다 쉽고 빠르게 버그를 찾기 위함일 것이다.
그래서 버그 헌터들은 잘 만들어진 퍼저들을 사용하거나 직접 퍼저를 만들기도 한다.
정말 간단한 퍼저부터 시작해서, 여러가지 기법을 응용한 복잡한 퍼저들도 많이 나오고 있다.
복잡한 퍼저를 사용하려다 보면 Coverage, White Box, Black Box, Generation, Mutation 등 여러 용어들을 접하게 된다.
이 방법들이 퍼저에서 무슨 역할을 할까?
이게 정말로 퍼징 방법을 개선하는데 도움을 줄까?이에 대한 답변은 퍼저의 역사, 중요한 기술적 내용을 집대성한 서베이 논문, 이를 번역한 포스팅들을 통해 보다 자세히 알 수 있다.
어려운 말도 많고 복잡하지만, 이를 이해하기 위한 기초적인 내용을 간단하게 정리해서 포스팅을 작성해보고자 한다.
추가적으로 퍼징에 대한 최신 동향, 보다 깊은 공부를 위해서는 아래와 같은 래퍼런스들을 팔로우업하면 된다. :)
'Theory > fuzzing theory' 카테고리의 다른 글
For Advanced Fuzzing (0) 2023.01.03