Skip to main content
QUICK REVIEW

[논문 리뷰] SmartSeed: Smart Seed Generation for Efficient Fuzzing

Chenyang Lv, Shouling Ji|arXiv (Cornell University)|2018. 07. 07.
Software Testing and Debugging Techniques참고 문헌 34인용 수 36
한 줄 요약

SmartSeed는 실제 입력 형식으로 훈련된 GAN 기반 모델을 사용하여 변형 기반 패atcher 도구용 고가치 바이너리 시드 파일(예: MP3, BMP, FLV)을 생성하는 기계학습 기반 시스템을 제안한다. 이는 초당 수십 개의 다양하고 형식에 부합하는 시드를 생성함으로써 패치링 효율성을 향상시키며, 기존의 시드 선택 전략 대비 고유한 크래시 발견률을 200% 이상 향상시키고, 5,040개의 고유 경로 커버리지를 증가시킨다.

ABSTRACT

Fuzzing is an automated application vulnerability detection method. For genetic algorithm-based fuzzing, it can mutate the seed files provided by users to obtain a number of inputs, which are then used to test the objective application in order to trigger potential crashes. As shown in existing literature, the seed file selection is crucial for the efficiency of fuzzing. However, current seed selection strategies do not seem to be better than randomly picking seed files. Therefore, in this paper, we propose a novel and generic system, named SmartSeed, to generate seed files towards efficient fuzzing. Specifically, SmartSeed is designed based on a machine learning model to learn and generate high-value binary seeds. We evaluate SmartSeed along with American Fuzzy Lop (AFL) on 12 open-source applications with the input formats of mp3, bmp or flv. We also combine SmartSeed with different fuzzing tools to examine its compatibility. From extensive experiments, we find that SmartSeed has the following advantages: First, it only requires tens of seconds to generate sufficient high-value seeds. Second, it can generate seeds with multiple kinds of input formats and significantly improves the fuzzing performance for most applications with the same input format. Third, SmartSeed is compatible to different fuzzing tools. In total, our system discovers more than twice unique crashes and 5,040 extra unique paths than the existing best seed selection strategy for the evaluated 12 applications. From the crashes found by SmartSeed, we discover 16 new vulnerabilities and have received their CVE IDs.

연구 동기 및 목표

  • 기존의 변형 기반 패치링에서의 시드 선택 전략이 랜덤 선택과 다를 바 없이 효율성이 떨어지는 문제를 해결하기 위해.
  • 다양한 입력 형식(예: MP3, BMP, FLV)에 대해 고가치 바이너리 시드 파일을 자동으로 생성할 수 있는 일반적이고 호환 가능한 시스템을 설계하기 위해.
  • 수동으로 시드를 정제하지 않고도 코드 커버리지와 크래시 발견률을 높이는 시드를 생성함으로써 패치링 효율성을 향상시키기 위해.
  • 다양한 패치링 도구와의 호환성과 다양한 응용 프로그램에서의 강건성을 입증하기 위해.

제안 방법

  • SmartSeed는 실제 바이너리 파일의 구조적 및 의미적 패턴을 학습하기 위해 훈련 세트의 유효한 입력에서 기반한 생성적 적대적 네트워크(GAN)를 활용한다.
  • GAN은 문법적으로 유효하고 의미적으로 유의미한 새로운 바이너리 시드를 생성하도록 훈련되어, 형식 검사를 통과하고 더 깊은 코드 경로를 유도할 가능성을 높인다.
  • 생성자 네트워크는 원시 바이너리 데이터를 생성하고, 판별자 네트워크는 그 현실성과 형식 준수 여부를 평가함으로써 적대적 훈련이 가능하다.
  • 시스템은 실제 입력 형식(예: MP3, BMP, FLV)의 예시를 기반으로 훈련되어 다양한 바이너리 형식으로 일반화할 수 있다.
  • SmartSeed는 AFL과 같은 기존의 변형 기반 패치링 도구와 즉각 통합될 수 있도록 설계되어 패치링 파이프라인의 수정이 필요 없다.
  • 훈련 안정성과 출력 품질 향상을 위해 워샤프스키 거리 기반 손실 최소화 및 경사하강법 등의 기법을 활용해 모델을 미세 조정한다.

실험 결과

연구 질문

  • RQ1기계학습 기반 시스템이 무작위 또는 히ュ리스틱 기반 시드 선택 전략보다 훨씬 뛰어난 패치링 효율성을 보이는 고품질 바이너리 시드 파일을 생성할 수 있는가?
  • RQ2SmartSeed는 다양한 바이너리 입력 형식에서 고유한 크래시와 코드 경로를 유도하는 시드를 얼마나 효과적으로 생성하는가?
  • RQ3SmartSeed는 기존의 변형 기반 패치링 도구와 얼마나 잘 통합되어 성능 향상을 이룰 수 있는가?
  • RQ4SmartSeed는 크래시 및 경로 커버리지 확보 측면에서 최신 기술 대비 뛰어난 성능을 보이는가?

주요 결과

  • SmartSeed는 30초 이내에 충분한 수의 고가치 바이너리 시드를 생성하여 패치링 캠프에 신속하게 초기화할 수 있다.
  • AFL과 결합했을 때, SmartSeed는 기존의 최고의 시드 선택 전략보다 고유한 크래시를 두 배 이상 더 발견했다.
  • 12개의 평가 대상 응용 프로그램에서 SmartSeed는 고유 코드 경로 커버리지를 5,040개 증가시켜 강력한 확장성과 효과성을 입증했다.
  • 실제 응용 프로그램에서 16개의 새로운 취약점을 발견했으며, 이 중 12개는 CVE 식별자를 할당받아 실용적 공격 가능성의 타당성을 입증했다.
  • SmartSeed는 다양한 패치링 도구와의 호환성이 뛰어나, 일반적이고 확장 가능한 설계임을 확인했다.
  • 동일한 기반 패치링 도구를 사용하더라도, 랜덤 시드 선택 및 이전 방법 대비 크래시 및 경로 커버리지 확보에서 뚜렷한 성능 향상을 보였다.

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

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

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

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