Skip to main content
QUICK REVIEW

[논문 리뷰] Not all bytes are equal: Neural byte sieve for fuzzing

Mohit Rajpal, William Blum|arXiv (Cornell University)|2017. 11. 10.
Software Testing and Debugging Techniques참고 문헌 13인용 수 81
한 줄 요약

본 논문은 Augmented-AFL을 소개합니다. 이는 입력에서 유용한 바이트 위치를 변이 시점에 예측하도록 학습하는 신경망 주도 퍼징 방법으로, 여러 파서에서 코드 커버리지, 고유 코드 경로, 크래시를 향상시킵니다. 신경망 히트맵을 AFL과 통합하여 변이를 집중합니다.

ABSTRACT

Fuzzing is a popular dynamic program analysis technique used to find vulnerabilities in complex software. Fuzzing involves presenting a target program with crafted malicious input designed to cause crashes, buffer overflows, memory errors, and exceptions. Crafting malicious inputs in an efficient manner is a difficult open problem and often the best approach to generating such inputs is through applying uniform random mutations to pre-existing valid inputs (seed files). We present a learning technique that uses neural networks to learn patterns in the input files from past fuzzing explorations to guide future fuzzing explorations. In particular, the neural models learn a function to predict good (and bad) locations in input files to perform fuzzing mutations based on the past mutations and corresponding code coverage information. We implement several neural models including LSTMs and sequence-to-sequence models that can encode variable length input files. We incorporate our models in the state-of-the-art AFL (American Fuzzy Lop) fuzzer and show significant improvements in terms of code coverage, unique code paths, and crashes for various input formats including ELF, PNG, PDF, and XML.

연구 동기 및 목표

  • 과거 탐색 및 코드 커버리지를 활용한 퍼징 변이 지도를 학습 기반 접근으로 동기화한다.
  • 새로운 코드 커버리지를 얻을 가능성이 가장 높은 입력 위치를 예측하는 신경 모델을 개발한다.
  • 신경 히트맵을 AFL에 통합하여 잠재력이 낮은 변이를 거부하고 노력을 집중한다.
  • 다양한 입력 포맷(ELF, PNG, PDF, XML)에서 이점과 한계를 평가한다.

제안 방법

  • 입력 파일 위치를 변이 시 잠재적 입력 이익을 산출하는 확률 맵 함수 f를 정의한다.
  • seed 입력 및 커버리지 데이터를 토대로 각 바이트의 유용성 히트맵을 예측하는 신경 모델(LSTM, 양방향 LSTM, 주의(attention) 포함/제외 Seq2Seq 변형)을 학습한다.
  • 입력 바이트를 비트 단위의 시퀀스로 표현하여 비트 수준 구조를 포착하고 가변 길이 입력을 처리하기 위해 RNN 기반 아키텍처를 사용한다.
  • 변이 전에 신경 모델에 질의하고 예측 유용성이 낮은 위치를 겨냥한 변이를 거부(컷오프를 통해)하여 AFL을 보강한다.
  • 시드와 변이 버전 간의 코드 커버리지 차이를 기반으로 한 학습 목표를 사용하며, 커버리지 비트맵에 대한 비트단 엄격 비교( strictly-less ) 점수 함수를 근사해서 학습한다.

실험 결과

연구 질문

  • RQ1신경 모델이 새로운 코드 커버리지와 크래시를 야기하는 변이 위치를 예측할 수 있는가?
  • RQ2다른 신경 아키텍처(LSTM, Bidirectional LSTM, Seq2Seq, Seq2Seq+Attn)가 포맷 전반에서 유용한 변이 위치를 예측하는 데 얼마나 성능이 다른가?
  • RQ3신경 히트맵의 AFL 내 통합이 코드 커버리지, 고유 코드 경로 수, 크래시에 미치는 영향은 무엇인가?
  • RQ4어떤 포맷이 신경-가이드 퍼징에서 가장 큰 이점을 얻고, 어떤 한계가 관찰되는가(예: 대용량 입력에서의 모델 질의 오버헤드)?

주요 결과

  • Augmented-AFL은 ELF, PNG 및 XML 파서에 대해 일반적으로 기저 AFL 대비 코드 커버리지와 고유 코드 경로를 증가시킨다.
  • Augmented-AFL은 ELF 및 XML 파서에서 기저 AFL보다 더 많은 크래시를 유도한다.
  • 간단하고 가벼운 신경 모델이 코드 커버리지 개선에서 더 복잡한 아키텍처보다 종종 더 나은 성능을 보인다.
  • 일부 포맷(PDF)은 큰 입력에서의 모델 질의 오버헤드로 인해 이득이 제한적이며, 모델 대 퍼징 처리량 사이의 트레이드오프를 시사한다.
  • 목표가 다양할수록 신경 가이드 제어는 AFL에 비해 일부 사례에서 입력 이득(한 번도 본 적 없는 동작)을 일관되게 개선한다.

더 나은 연구,지금 바로 시작하세요

연구 설계부터 논문 작성까지, 연구 시간을 획기적으로 줄여보세요.

카드 등록 없음 · 무료 플랜 제공

이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.