[논문 리뷰] TOFU: Target-Oriented FUzzer
TOFU는 프rotobuf 사양을 사용하여 입력 구조 인식과 거리 지향 검색을 결합함으로써 directed fuzzing을 가속화하는 대상 지향 퍼저이다. xmllint에서 TOFU는 입력 구조 변형과 경로-거리 히وري스틱을 활용하여 특정 프로그램 위치로의 입력 생성을 이끌어내어, AFLGo 대비 28% 빠른 대상 도달 속도와 45% 더 많은 대상에 도달한다.
Program fuzzing---providing randomly constructed inputs to a computer program---has proved to be a powerful way to uncover bugs, find security vulnerabilities, and generate test inputs that increase code coverage. In many applications, however, one is interested in a target-oriented approach-one wants to find an input that causes the program to reach a specific target point in the program. We have created TOFU (for Target-Oriented FUzzer) to address the directed fuzzing problem. TOFU's search is biased according to a distance metric that scores each input according to how close the input's execution trace gets to the target locations. TOFU is also input-structure aware (i.e., the search makes use of a specification of a superset of the program's allowed inputs). Our experiments on xmllint show that TOFU is 28% faster than AFLGo, while reaching 45% more targets. Moreover, both distance-guided search and exploitation of knowledge of the input structure contribute significantly to TOFU's performance.
연구 동기 및 목표
- 프로그램 내부의 깊은 곳에 위치한 특정 대상 위치에 도달하는 데 있어 표준 퍼저의 한계를 해결하기 위해.
- 거리 기반 가이던스와 입력 구조 지식을 통합하여 directed fuzzing을 향상시키기 위해.
- 거리 기반 가이던스와 구조적 변형의 기여도가 전체 퍼저 성능에 미치는 영향을 평가하기 위해.
- 특히 복잡하거나 구조화된 입력 형식에서 특정 프로그램 대상을 도달하는 데 효과적인 확장 가능한 일반 목적의 솔루션을 제공하기 위해.
- 특정 대상으로 향하는 입력 생성을 위해 기호적 실행과 제약 조건 해결 기법의 실용적 대안을 제공하기 위해.
제안 방법
- TOFU는 프로그램 기본 블록 간의 사전 계산된 거리 메트릭을 사용하여 입력의 실행 트레이스가 목표 위치에 얼마나 가까운지 추정한다.
- 거리 점수가 낮은 입력을 우선시하는 피드백 기반 변형 전략을 적용하여 퍼저가 목표로 향하도록 이끈다.
- TOFU는 프로토콜 버퍼 기반의 입력 사양을 도입하여 유효한 입력 구조를 모델링하고, 문법적으로 올바른 입력을 유지하는 구조적 변형을 가능하게 한다.
- 변형은 입력의 유효한 구조적 구성 요소들만 수정함으로써, 목표 경로에서 벗어나는 잘못된 입력의 발생 가능성을 줄인다.
- 퍼저는 시드의 큐를 유지하며, 목표까지의 거리와 코드 커버리지의 조합된 피트니스 함수를 사용하여 향후 변형을 위한 입력를 선택한다.
- TOFU의 설계는 명령줄 인자와 플래그를 포함한 복잡한 입력 형식을 지원하며, 이를 구조적 입력 구성 요소로 모델링한다.
실험 결과
연구 질문
- RQ1거리 기반 가이던스 검색이 TOFU의 전체 성능에 목표 프로그램 위치 도달에 기여하는 정도는?
- RQ2구조적 변형이 TOFU의 전체 성능에 목표 프로그램 위치 도달에 기여하는 정도는?
- RQ3TOFU의 성능은 xmllint에서 최신 기술의 대상 지향 퍼저인 AFLGo 및 Hawkeye와 비교해 어떻게 되는가? (속도 및 대상 커버리지 측면에서)
- RQ4입력 구조 인식과 거리 메트릭이 잘못된 입력의 수를 얼마나 줄이고, 목표에 수렴하는 데 얼마나 기여하는가?
- RQ5TOFU의 접근 방식은 명령줄 플래그와 구조화된 데이터를 사용하는 프로그램과 같이 복잡한 입력 형식을 가진 프로그램에 효과적으로 적용될 수 있는가?
주요 결과
- TOFU는 xmllint 벤치마크에서 AFLGo 대비 28% 더 빠른 대상 도달 속도를 기록한다.
- 동일한 벤치마크에서 TOFU는 AFLGo 대비 45% 더 많은 대상 위치에 도달하여, 향상된 directed search 성능을 입증한다.
- 거리 기반 가이던스 검색과 구조적 변형 모두 TOFU의 성능에 기여하며, 분석 실험 결과 각 구성 요소가 독립적으로 대상 커버리지 향상에 기여하는 것으로 나타났다.
- 입력 구조 인식을 통한 활용은 잘못된 입력의 수를 줄여, 파싱이나 실행에 실패하는 입력으로 인한 낭비 계산을 최소화한다.
- TOFU의 거리 메트릭은 목표에 가까운 정도를 직관적이고 해석 가능한 방식으로 제공하여 디버깅 및 입력 선택에 도움이 된다.
- TOFU는 입력 파싱 코드 내 얕은 대상에 대해서도 AFLGo를 초월하는 성능을 보이며, 다양한 유형의 대상에 광범위하게 적용 가능함을 시사한다.
더 나은 연구,지금 바로 시작하세요
논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.
카드 등록 없음 · 무료 플랜 제공
이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.