1 minute read

요약

지향성 퍼징은 대상 프로그램의 특정 위치에 도달하는 입력을 생성하는 것을 목적으로 한다. 최근 최우수 보안 학회에 출간되는 다양한 지향성 퍼징 논문들은 퍼징 분야에서의 그 인기를 여실히 보여준다. 하지만 아직 신생 분야인 지향성 퍼징 연구를 위한 표준이 수립되지 않은 상황이다. 특히 비교 실험과 성능 평가를 위한 기준이 마련된다면 지향성 퍼징 분야는 더욱 아름다운 꽃을 피워낼 것이다.

본문

지향성 퍼징은 사용자가 관심 있는 지점을 집중적으로 검사하는 프로그램 테스팅 기법이다. 따라서 그러한 프로그램 지점이 주어지는 상황에서는 프로그램 전체를 대상으로 하는 일반적인 퍼징보다 더 효과적으로 프로그램을 테스트할 수 있다. 최근, Hawkeye1, ParmeSan2, BEACON3 등의 다양한 도구들이 최우수 보안 학회를 통해 세상에 공개되고 있다. 이를 통해 많은 사람들이 지향성 퍼징에 관심을 가지고 연구하고 있음을 알 수 있다.

그러나 아직 신생 연구분야인 지향성 퍼징은 이렇다 할 만한 연구의 표준이 정리되지 않은 상황이다. 지향성 퍼징의 경우 주로 특정 결함을 얼마나 빨리 재현하는지를 성능 평가의 기준으로 삼는다. 이 때, 목표 지점을 어디로 삼는지, 또는 발견한 결함을 어떻게 검사하는지에 따라 성능은 크게 달라진다. 그러나 아티팩트를 공개할 때, 이러한 정보의 공유는 거의 이루어지지 않고 있다. 또한 공통적으로 사용하는 벤치마크가 따로 없다. 그렇기에 논문마다 다른 벤치마크를 사용하기도 하며, 선택한 이유에 대해서도 별다른 설명이 주어지지 않는다.

따라서 최소한 다음과 같은 내용을 준수하며 향후 지향성 퍼징 연구가 진행되었으면 한다. 먼저, 각 목표 결함의 구체적인 목표 지점과 검사 로직이 함께 제공되는 벤치마크를 공통적으로 사용해야 한다. 또한, 지향성 퍼징의 경우 목표 결함을 평균적으로 잘 찾아냄을 보여야 하기에 충분한 반복 횟수 (일반적으로 40회, 필요한 경우는 그 이상까지도)를 통해 성능을 증명해야 한다. 이런 공통된 기준 안에서 연구가 진행된다면, 지향성 퍼징은 더욱 투명하고 아름답게 꽃필 수 있을 것이다.

[1] “Hawkeye: Towards a Desired Directed Grey-box Fuzzer”, Chen et al., CCS 2018
[2] “ParmeSan: Sanitizer-guided Greybox Fuzzing”, Österlund et al., USENIX Security 2020
[3] “BEACON : Directed Grey-Box Fuzzing with Provable Path Pruning”, Huang et al., S&P 2022