Skip to main content
QUICK REVIEW

[논문 리뷰] Faster Fuzzing: Reinitialization with Deep Neural Models

Nicole Nichols, Mark Raugas|arXiv (Cornell University)|2017. 11. 08.
Software Testing and Debugging Techniques참고 문헌 15인용 수 46
한 줄 요약

이 논문은 미국의 퍼즈 루프(AFL) 퍼저를 개선하기 위해 생성적 적대적 네트워크(GANs)를 사용하여 실제 AFL이 생성한 입력에서 유도된 합성 시드 파일을 활용해 퍼징을 재초기화하는 방법을 제안한다. 동일한 CPU 시간 내에서 GAN 기반 재초기화는 랜덤 재초기화보다 14.23% 더 많은 고유 코드 경로와 6.16% 더 많은 새로운 경로를 발견했으며, 평균적으로 13.84% 더 깊은 경로를 탐색함으로써 더 깊은 코드 경로 탐색에서 뛰어난 성능을 보였다.

ABSTRACT

We improve the performance of the American Fuzzy Lop (AFL) fuzz testing framework by using Generative Adversarial Network (GAN) models to reinitialize the system with novel seed files. We assess performance based on the temporal rate at which we produce novel and unseen code paths. We compare this approach to seed file generation from a random draw of bytes observed in the training seed files. The code path lengths and variations were not sufficiently diverse to fully replace AFL input generation. However, augmenting native AFL with these additional code paths demonstrated improvements over AFL alone. Specifically, experiments showed the GAN was faster and more effective than the LSTM and out-performed a random augmentation strategy, as measured by the number of unique code paths discovered. GAN helps AFL discover 14.23% more code paths than the random strategy in the same amount of CPU time, finds 6.16% more unique code paths, and finds paths that are on average 13.84% longer. Using GAN shows promise as a reinitialization strategy for AFL to help the fuzzer exercise deep paths in software.

연구 동기 및 목표

  • 신규이자 깊은 코드 경로 탐색을 가속화하여 AFL 퍼징의 효율성을 향상시키는 것.
  • 생성 모델인 GAN과 LSTMs와 같은 심층 생성 모델이 AFL 재초기화 시 랜덤 시드 생성보다 뛰어난 성능을 보일 수 있는지 평가하는 것.
  • 생성 모델에서 유도된 합성 시드 파일이 AFL의 내재된 변형 기반 탐색 전략을 대체하지 않고도 효과적으로 보완할 수 있는지 확인하는 것.
  • 코드 경로 다양성과 깊이 측면에서 GAN 기반 재초기화가 랜덤 및 LSTM 기반 전략에 비해 성능 향상을 얼마나 이루는지 정량화하는 것.
  • 무 supervision 기반 심층 학습 기법을 활용해 최소한의 수동 입력 또는 형식 분석 없이 퍼징 효율을 확장할 수 있는지 탐색하는 것.

제안 방법

  • 고유한 코드 경로를 유도하는 입력 데이터 분포를 학습하기 위해 AFL이 생성한 시드 파일을 기반으로 GAN을 훈련한다.
  • 훈련된 GAN 생성기로부터 합성 시드 파일을 생성하여 AFL 작업 디렉터리에 삽입함으로써 AFL을 재초기화한다.
  • 코드 경로 탐지 속도와 다양성 측면에서 GAN 기반 시드 파일을 랜덤 바이트 샘플링 및 LSTM 기반 시드 파일과 비교한다.
  • 24시간 퍼징 캠프에 걸쳐 고유 코드 경로 수, 경로 길이, 탐지 소요 시간 등의 지표를 사용해 성능을 측정한다.
  • Keras를 사용해 연결된 AFL 시드 파일을 기반으로 LSTM 및 GAN 모델을 훈련하고, LSTM 출력의 다양성을 높이기 위해 온도 조정을 실시한다.
  • AFL의 컴iles터 인스트루멘테이션 및 유전적 변형 프레임워크를 적용하고, 국소 최적점에서 벗어나기 위해 주기적으로 합성 시드 파일을 사용해 재초기화한다.

실험 결과

연구 질문

  • RQ1GAN 기반 시드 파일은 랜덤 또는 LSTM 기반 재초기화 대비 AFL에서 고유 코드 경로 탐지 속도를 향상시킬 수 있는가?
  • RQ2심층 생성 모델의 사용이 테스트 중인 소프트웨어에서 더 길고 더 깊이 있는 중첩된 코드 경로 탐지로 이어지는가?
  • RQ3GAN과 LSTMs의 훈련 시간은 그들의 합성 시드 파일을 사용할 때 퍼징에서 절약되는 시간에 비해 얼마나 되는가?
  • RQ4GAN과 LSTMs에서 유도된 합성 시드 파일은 코드 경로 길이와 분산 측면에서 실제 AFL이 생성한 입력의 통계적 분포를 어느 정도 반영하는가?
  • RQ5무 supervision 기반 심층 학습 모델이 수동 형식 분석이나 프로그램 상태 노출 없이도 AFL을 효과적으로 보완할 수 있는가?

주요 결과

  • 24시간 퍼징 캠프 동안 GAN 기반 재초기화 전략은 랜덤 재초기화 전략 대비 1초당 14.23% 더 많은 고유 코드 경로를 탐지했다.
  • GAN 재초기화는 초기 AFL 실행에 존재하지 않은 경로를 6.16% 더 많이 발견했으며, 이는 미탐색 영역의 탐색 능력 향상을 시사한다.
  • GAN 기반 시드 파일을 사용해 탐지한 평균 코드 경로 길이는 랜덤 재초기화 대비 13.84% 더 길었으며, 이는 깊은 프로그램 로직 탐색 능력 향상을 시사한다.
  • GAN 훈련은 약 30분이 소요되었고, 이는 LSTM 모델이 요구하는 14시간의 훈련 시간에 비해 상당히 빠른 수준이었다. 또한 LSTM는 경로 탐지 성능에서도 열등했다.
  • LSTM 기반 시드 파일은 GAN 및 랜덤 전략 모두에 비해 성능이 열 劣했으며, 코드 경로 탐지율은 28.7% 낮고, 신규 경로 탐지율은 29.5% 낮았다.
  • GAN 및 LSTM에서 유도된 합성 시드 파일은 원본 AFL의 평균 및 분산 코드 경로 길이를 충족하지 못했으며, 이는 AFL의 내재된 변형 전략을 대체하기보다는 보완으로 사용해야 함을 시사한다.

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

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

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

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