Skip to main content
QUICK REVIEW

[논문 리뷰] Greybox fuzzing as a contextual bandits problem

Ketan Patil, Aditya Kanade|arXiv (Cornell University)|2018. 06. 11.
Software Testing and Debugging Techniques참고 문헌 15인용 수 12
한 줄 요약

이 논문은 AFL GRAYBOX 퍼징에서 히우리스틱 기반 에너지 할당을 대체하기 위해 맥락 기반 밴딧 프레임워크를 제안한다. 정책 그래เดียน트 방법을 통해 학습된 정책을 사용하여 테스트 케이스의 고정 길이 서브스트링을 기반으로 동적으로 퍼징 반복 수를 할당한다. 이 방법은 대부분의 바이너리에서 베이스라인 AFL보다 더 나은 커버리지 성능을 보이며, 지능형 퍼징 에너지 할당을 위한 강화학습의 타당성을 입증한다.

ABSTRACT

Greybox fuzzing is one of the most useful and effective techniques for the bug detection in large scale application programs. It uses minimal amount of instrumentation. American Fuzzy Lop (AFL) is a popular coverage based evolutionary greybox fuzzing tool. AFL performs extremely well in fuzz testing large applications and finding critical vulnerabilities, but AFL involves a lot of heuristics while deciding the favored test case(s), skipping test cases during fuzzing, assigning fuzzing iterations to test case(s). In this work, we aim at replacing the heuristics the AFL uses while assigning the fuzzing iterations to a test case during the random fuzzing. We formalize this problem as a `contextual bandit problem' and we propose an algorithm to solve this problem. We have implemented our approach on top of the AFL. We modify the AFL's heuristics with our learned model through the policy gradient method. Our learning algorithm selects the multiplier of the number of fuzzing iterations to be assigned to a test case during random fuzzing, given a fixed length substring of the test case to be fuzzed. We fuzz the substring with this new energy value and continuously updates the policy based upon the interesting test cases it produces on fuzzing.

연구 동기 및 목표

  • 히우리스틱 기반 에너지 할당의 한계를 해결하기 위해, 이는 테스트 케이스 내용을 忽시함으로써 과도하거나 부족한 퍼징을 유도할 수 있음.
  • 그레이박스 퍼징에서의 에너지 할당 문제를 최적의 의사결정을 위해 맥락 기반 밴딧 문제로 수식화하기.
  • 로컬 테스트 케이스 서브스트링을 기반으로 에너지 배수를 선택하는 학습 가능한 정책을 개발하고 통합하기.
  • 실세계 바이너리에서의 성능 평가를 통해 표준 AFL 설정과의 커버리지 성능 비교하기.
  • 더 나은 퍼징 효율성을 위해 여러 AFL 히우리스틱을 학습된 모델로 대체할 잠재력 탐색하기.

제안 방법

  • 테스트 케이스의 고정 길이 서브스트링을 맥락으로 사용하여 에너지 할당 문제를 맥락 기반 밴딧 문제로 수식화하기.
  • 신경망 정책을 사용하여 주어진 테스트 케이스 서브스트링에 대한 에너지 배수(퍼징 반복 수)를 예측하기.
  • 퍼징 도중 발견된 새로운 브랜치에 기반한 피드백을 통해 정책 그래디언트 방법을 사용해 정책을 훈련하기.
  • 학습된 모델을 AFL의 퍼징 루프에 통합하여 히우리스틱 기반 에너지 할당 메커니즘을 대체하기.
  • 할당된 에너지로 테스트 케이스를 퍼징한 후 발견된 새로운 브랜치 커버리지에 기반한 보상 신호 사용하기.
  • TensorFlow를 사용하여 시스템을 구현하고, 크로스-바이너리 실험을 포함한 여러 대규모 바이너리에서 평가하기.

실험 결과

연구 질문

  • RQ1맥락 기반 밴딧 프레임워크가 그레이박스 퍼징에서 AFL의 히우리스틱 기반 에너지 할당을 효과적으로 대체할 수 있는가?
  • RQ2테스트 케이스의 로컬 서브스트링에서 학습함으로써 고정 히우리스틱 에너지 할당보다 더 나은 커버리지 성능을 달성할 수 있는가?
  • RQ3시간 경과에 따른 브랜치 커버리지 측면에서 학습된 정책은 표준 AFL 설정과 비교해 어떻게 성능을 내는가?
  • RQ4모델은 서로 유사한 소프트웨어 스위트(예: binutils)의 다른 바이너리 간에도 일반화 가능한가?
  • RQ5강화학습이 퍼징에서 수작업으로 구성된 히우리스틱에 대한 의존도를 어느 정도 줄일 수 있는가?

주요 결과

  • 제안된 맥락 기반 밴딧 접근법은 대부분 평가된 바이너리에서 표준 AFL의 결정론적 단계보다 더 나은 브랜치 커버리지 성능을 달성한다.
  • 특히 관련 바이너리에서 훈련된 경우, 모델은 시간 경과에 따른 커버리지에서 기준 AFL과 유사하거나 더 우수한 성능을 보인다.
  • 크로스-바이너리 실험 결과, 모델은 binutils 바이너리 간에 합리적으로 일반화됨을 보이며, 유사 소프트웨어 간 이식 가능성(트랜스퍼러빌리티)을 시사한다.
  • 시스템은 AFL에 성공적으로 통합되었으며, TensorFlow를 활용하여 향후 RL 기반 퍼징 개선을 위한 확장성 확보했다.
  • 다수의 타겟에서 표준 AFL보다 커버리지 성능이 뛰어나지만, 결정론적 단계가 없는 AFL보다는 다소 열등한 성능를 보이며, 하이퍼파라미터 튜닝 여지가 있음을 시사한다.
  • 결과적으로, AFL의 히우리스틱을 학습된 정책으로 대체하는 것이 타당하며, 더 나은 퍼징 효율성 향상으로 이어질 수 있음을 시사한다.

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

논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.

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

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