Skip to main content
QUICK REVIEW

[논문 리뷰] Learn&Fuzz: Machine Learning for Input Fuzzing

Patrice Godefroid, Hila Peleg|arXiv (Cornell University)|2017. 01. 25.
Software Testing and Debugging Techniques참고 문헌 21인용 수 42
한 줄 요약

이 논문은 샘플 PDF 입력에서 생성 확률 문법을 자동으로 학습하는 데 시퀀스-투-시퀀스 순환 신경망을 사용하는 새로운 기계학습 접근법인 Learn&Fuzz를 소개한다. 이 방법은 잘 구성된 PDF 객체의 통계적 구조를 학습하고, 이를 바탕으로 지능적인 패atch 공격을 유도하여 기존의 무작위 및 기반 학습 기반 패치 공격 기법들과 비교해 마이크로소프트 엣지의 PDF 파서에서 코드 커버리지와 취약점 탐지 능력을 크게 향상시킨다.

ABSTRACT

Fuzzing consists of repeatedly testing an application with modified, or fuzzed, inputs with the goal of finding security vulnerabilities in input-parsing code. In this paper, we show how to automate the generation of an input grammar suitable for input fuzzing using sample inputs and neural-network-based statistical machine-learning techniques. We present a detailed case study with a complex input format, namely PDF, and a large complex security-critical parser for this format, namely, the PDF parser embedded in Microsoft's new Edge browser. We discuss (and measure) the tension between conflicting learning and fuzzing goals: learning wants to capture the structure of well-formed inputs, while fuzzing wants to break that structure in order to cover unexpected code paths and find bugs. We also present a new algorithm for this learn&fuzz challenge which uses a learnt input probability distribution to intelligently guide where to fuzz inputs.

연구 동기 및 목표

  • PDF와 같은 복잡한 형식에서 문법 기반 패치 공격를 위한 입력 문법을 수작업으로 작성하는 데 드는 오류 발생 가능성이 높은 과정을 해결하기 위해.
  • 잘 구성된 입력 구조를 학습하는 것과 비정상적인 입력을 삽입하여 예기치 않은 코드 경로를 유도하는 것 사이의 갈등을 탐색하기 위해.
  • 프로그램 인스트루멘테이션 없이도 원시 샘플 입력에서 통계적 입력 모델을 자동으로 학습하는 종단 간(end-to-end) 방법을 개발하기 위해.
  • 학습된 확률 모델이 무작위 또는 히우리스틱 기반 접근법보다 더 효과적으로 패치 공격를 이끄는지 평가하기 위해.

제안 방법

  • 샘플 입력 코퍼스에서 PDF 객체 구조의 통계적이고 생성적인 모델을 학습하기 위해 시퀀스-투-시퀀스(seq2seq) 순환 신경망을 활용한다.
  • 원시 PDF 텍스트에서 비지도(end-to-end) 학습을 통해 유효한 입력 시퀀스의 확률 분포를 학습한다.
  • 학습된 seq2seq 모델에서 샘플링을 통해 문법적으로나 의미적으로 규칙을 유지한 새로운 잘 구성된 PDF 객체를 생성한다.
  • 학습된 확률 분포를 사용해 어디서나 어떻게 변형할지를 지도하는 새로운 learn&fuzz 알고리즘을 적용하여 통계적으로 타당하지만 구조적으로 다양한 변형을 선호한다.
  • 잘 구성된 입력(커버리지 확보를 위해)과 변형(버그 탐지 목적)을 균형 있게 유지하는 패치 공격 파이프라인에 학습된 모델을 통합한다.
  • 마이크로소프트 엣지의 PDF 파서를 사용하여 코드 커버리지와 취약점 탐지 비율을 측정함으로써 접근법을 평가한다.

실험 결과

연구 질문

  • RQ1신경망 기반 모델은 원시 샘플 입력에서 복잡하고 평탄한 입력 형식인 PDF 객체의 통계적 구조를 효과적으로 학습할 수 있는가?
  • RQ2학습된 입력 확률 분포는 잘 구성된 입력과 구조적 변형 사이의 균형을 유지하면서 패치 공격를 어떻게 이끄는가?
  • RQ3입력 파서에서 예기치 않은 코드 경로를 유도하기 위해 비정상적인 입력을 생성하는 것과 정확한 입력 구조를 학습하는 것 사이의 상충 관계는 무엇인가?
  • RQ4Learn&fuzz 접근법은 코드 커버리지와 취약점 탐지 측면에서 무작위 패치 공격 및 다른 학습 기반 패치 공격 기법보다 뛰어나게 성능을 발휘하는가?
  • RQ5신경망 모델의 통계적 성격이 학습과 패치 공격 목표 사이의 본질적인 갈등을 해결하는 데 기여할 수 있는가?

주요 결과

  • seq2seq 모델은 원시 PDF 입력에서 생성적 확률 문법을 성공적으로 학습하여 형식의 문법 규칙을 준수하는 새로운 잘 구성된 PDF 객체를 다량 생성했다.
  • 학습된 모델은 무작위 패치 공격 및 기반 학습 기반 패치 공격 방법보다 마이크로소프트 엣지의 PDF 파서에서 더 높은 코드 커버리지를 달성했다.
  • 학습된 확률 분포를 사용해 변형을 이끄는 제안된 learn&fuzz 알고리즘은 다양한 코드 경로를 더 효과적으로 운용하는 데 다른 패치 공격 전략을 능가했다.
  • 이 방법은 신경망을 통한 통계적 모델링이 PDF 객체의 복잡하고 평탄한 구조, 즉 다양한 키-값 쌍과 중첩된 타입을 효과적으로 포착할 수 있음을 입증했다.
  • 특히 오류 처리 및 극단적인 경우 코드 경로를 운용하는 데 있어 취약점 탐지 능력에서 측정 가능한 향상이 이루어졌다.
  • 결과는 잘 구성된 구조를 학습하는 것과 비정상적인 입력을 삽입하여 예기치 않은 코드 경로를 유도하는 것 사이에 본질적인 갈등이 존재하며, 이 갈등이 유도된 변형을 통해 learn&fuzz 접근법이 효과적으로 완화됨을 확인했다.

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

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

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

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