본문 바로가기
KERD
논문KCI 등재

기계학습 기반 스케줄링 전략을 적용한 최신 퍼징 연구

A Study of Machine Learning-Based Scheduling Strategy for Fuzzing

0

조회

0

다운로드

1

인용

0

참고문헌

키워드

주제분류컴퓨터학

초록

퍼징은 프로그램을 테스트하기 위해 많은 테스트케이스를 생성하고 예외 상황을 모니터링하는 자동화된 테스팅 기술이다. 최근 퍼징 과정에서 발생하는 다양한 문제를 해결하기 위해 기계학습을 적용한 퍼징 연구가 활발히 제안되고 있지만, 기계학습을 적용한 퍼징 연구에 대한 종합적인 평가는 부족하다. 본 논문에서는 퍼징의 스케줄링 기법에 기계학습을 적용한 최신 연구들을 강화학습 기반과 지도학습 기반 퍼저로 분류하여 분석하였다. 분석된 기계학습 기반 퍼저들을 서로 다른 네 가지의 파일 포맷을 사용하는 리얼월드 프로그램에 적용하여 커버리지 확보 성능을, LAVA-M 데이터셋을 사용하여 버그 탐지 성능을 확인하였다. 실험 결과, 시드 클러스터링 기법과 강화학습을 통한 시드 스케줄링 기법을 적용한 AFL-HIER가 커버리지 확보와 버그 탐지 성능에서 우수한 성과를 보였다. 지도학습의 경우, 코드 복잡도가 높은 tcpdump를 대상으로 높은 커버리지 확보를 보였으며, 하이브리드 퍼징에 적용하였을 때 버그 탐지 성능이 뛰어났다. 본 연구는 기계학습과 퍼징 과정을 최적화하는 추가적인 기법을 함께 적용하였을 때 커버리지 확보와 버그 탐지 성능이 우수하다는 점을 보여주었다. 향후 다양한 입력 포맷을 다루는 프로그램에 효과적으로 적용할 수 있는 실용적이고 강력한 기계학습 기반 퍼징 기법에 대한 연구가 필요하다.

Abstract

Fuzzing is an automated testing technique that generates a lot of testcases and monitors for exceptions to test a program. Recently, fuzzing research using machine learning has been actively proposed to solve various problems in the fuzzing process, but a comprehensive evaluation of fuzzing research using machine learning is lacking. In this paper, we analyze recent research that applies machine learning to scheduling techniques for fuzzing, categorizing them into reinforcement learning-based and supervised learning-based fuzzers. We evaluated the coverage performance of the analyzed machine learning-based fuzzers against real-world programs with four different file formats and bug detection performance against the LAVA-M dataset. The results showed that AFL-HIER, which applied seed clustering and seed scheduling with reinforcement learning outperformed in coverage and bug detection. In the case of supervised learning, it showed high coverage on tcpdumps with high code complexity, and its superior bug detection performance when applied to hybrid fuzzing. This research shows that performance of machine learning-based fuzzer is better when both machine learning and additional fuzzing techniques are used to optimize the fuzzing process. Future research is needed on practical and robust machine learning-based fuzzing techniques that can be effectively applied to programs that handle various input formats.

참고문헌 (10)

  1. Xiaogang Zhu, "Fuzzing : A Survey for Roadmap", ACM Computing Surveys(CSUR), 54(11), pp.1~36 (2022)
  2. Yan Wang, "A systematic review of fuzzing based on machine learning techniques", PloS one, 15(8) (2020)
  3. Jinghan Wang, "Reinforcement Learning-based Hierarchical Seed Scheduling for Greybox Fuzzing", Network and Distributed Systems Security (NDSS) Symposium (2021)
  4. Yiru Zhao, "Alphuzz: Monte Carlo Search on Seed-Mutation Tree for Coverage-Guided Fuzzing", ACSAC’22: Proceedings of the 38th Annual Computer Security Applications Conference, pp.534~547 (2022)
  5. Dongdong She, "Neuzz:Efficient fuzzing with neural program smoothing", 2019 IEEE Symposium on Security and Privacy (SP), pp.803~817 (2019)
  6. Yaohui Chen, "MEUZZ: Smart Seed Scheduling for Hybrid Fuzzing", 23rd International Symposium on Research in Attacks, Intrusions and Defenses (RAID 2020), pp.77~92 (2020)
  7. Lei Zhao, "Probabilistic Path Prioritization for Hybrid Fuzzing", IEEE Transactions on Dependable and Secure Computing, 19(3), pp.1955~1973 (2020)
  8. Nick Stephens, "Driller: Augmenting fuzzing through selective symbolic execution", Network and Distributed Systems Security (NDSS)Symposium, 16(2016), pp.1~16 (2016)
  9. Tai Yue, "EcoFuzz: Adaptive Energy-Saving Greybox Fuzzing as Variant of the Adversarial Multi-Armed Bandit", 29th USENIX Security Symposium (USENIX Security 20), pp.2307~2324 (2020)

관련 논문AI추천

이 간행물의 다른 논문 (25건)