Skip to main content
QUICK REVIEW

[논문 리뷰] Neural Fuzzing: A Neural Approach to Generate Test Data for File Format Fuzzing.

Morteza Zakeri‐Nasrabadi, Saeed Parsa|arXiv (Cornell University)|2018. 12. 24.
Software Testing and Debugging Techniques인용 수 3
한 줄 요약

이 논문은 신경 언어 모델을 사용하여 파일 포맷 패ッチ링을 위한 구조화된 테스트 데이터를 자동으로 학습하고 생성하는 딥러닝 기반 접근법인 Neural Fuzzing을 제안한다. 메타데이터와 원시 데이터를 구분함으로써, AFL 및 Learn&Fuzz보다 높은 코드 커버리지를 달성하며, 단순한 모델이 복잡한 인코더-디코더 아키텍처보다 성능이 뛰어나다.

ABSTRACT

This article is aimed at the design and implementation of a file format fuzzer. Files are significant inputs to the most of real-world applications. A substantial difficulty with generating input files as test data is to recon the underlying structure and format of the files. In order to distinguish pure data stored in a file from the meta-data describing the file format, a deep learning method based on a neural language model is proposed in this article. The resultant learned model could be applied as a hybrid test data generator, to generate and fuzz both the textual and none-textual sections of the input file. Moreover, the model could be applied to generate test data to fuzz both the meta-data and the ordinary data stored in the file. Our experiments with two known fuzzing tools, AFL and Learn\&Fuzz, demonstrate the relatively high code coverage of our proposed method. The experiments also indicate simple neural language models provide a more accurate learning model, than the complicated encoder-decoder models.

연구 동기 및 목표

  • 파일 포맷 패치링을 위한 유효하고 구조적으로 정확한 테스트 파일을 생성하는 데 도전하는 것.
  • 수동 역공학 없이 파일 포맷의 기본 구조를 자동으로 학습하는 것.
  • 효과적인 패치링을 위해 메타데이터 및 원시 데이터 섹션을 모두 생성하는 것.
  • AFL 및 Learn&Fuzz와 같은 패치링 도구에서의 코드 커버리지를 향상시키는 것.
  • 간단한 신경 모델이 파일 포맷 학습에서 복잡한 아키텍처를 초월하는지 평가하는 것.

제안 방법

  • 파일 데이터를 대상으로 신경 언어 모델을 훈련시어 파일 포맷의 통계적 구조를 학습한다.
  • 훈련 중에 모델은 메타데이터(포맷 기술자)와 원시 데이터(콘텐츠)를 구분한다.
  • 훈련된 모델은 메타데이터 및 데이터 섹션의 학습된 분포에서 샘플링하여 새로운 테스트 파일을 생성한다.
  • 생성된 파일은 코드 커버리지를 평가하기 위해 패치링 도구의 입력으로 사용된다.
  • 이 방법은 파일 콘텐츠를 토큰 또는 바이트의 시퀀스로 간주하는 시퀀스 모델링 프레임워크를 사용한다.
  • 이 방법은 AFL 및 Learn&Fuzz를 기반으로 한 패치링 엔진으로 평가된다.

실험 결과

연구 질문

  • RQ1신경 언어 모델이 이진 및 텍스트 기반 파일의 구조적 형식을 효과적으로 학습할 수 있는가?
  • RQ2메타데이터와 원시 데이터를 분리하면 생성된 테스트 파일의 품질과 커버리지가 향상되는가?
  • RQ3모델 복잡도(간단한 모델 대비 인코더-디코더)가 테스트 데이터 생성의 정확성과 효과성에 어떤 영향을 미치는가?
  • RQ4학습된 모델이 기존 패치링 도구보다 높은 코드 커버리지를 달성할 수 있는가?
  • RQ5모델은 다양한 파일 포맷과 애플리케이션 유형에 걸쳐 안정적인가?

주요 결과

  • 제안된 신경 언어 모델은 AFL 및 Learn&Fuzz보다 패치링에서 높은 코드 커버리지를 달성했다.
  • 간단한 신경 언어 모델이 파일 포맷 구조 학습에서 더 복잡한 인코더-디코더 아키텍처를 뛰어넘는 성능을 보였다.
  • 모델은 메타데이터와 원시 데이터를 성공적으로 구분하여 양측을 타겟팅한 생성이 가능했다.
  • 이 방법은 테스트 데이터 생성 과정에서 파일 포맷의 수동 역공학이 필요로 하는 것을 줄였다.
  • 이 방법은 다양한 파일 포맷에서 효과적이었으며 패치링 효율성을 향상시켰다.
  • 결과는 종단 간 시퀀스 모델링이 효과적인 파일 포맷 패치링을 위해 충분하다는 것을 시사한다.

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

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

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

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