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

Variational Autoencoder를 활용한 필드 기반 그레이 박스 퍼징 방법

A Method for Field Based Grey Box Fuzzing with Variational Autoencoder

0

조회

0

다운로드

0

인용

0

참고문헌

키워드

주제분류컴퓨터학

초록

퍼징이란 유효하지 않은 값이나 임의의 값을 소프트웨어 프로그램에 입력하여, 보안상의 결함을 찾아내는 소프트웨어 테스팅 기법 중 하나로 이러한 퍼징의 효율성을 높이기 위한 여러 방법들이 제시되어 왔다. 본 논문에서는 필드를 기반으로 퍼징을 수행하면서 커버리지, 소프트웨어 크래쉬와 연관성이 높은 필드가 존재한다는 것에 착안하여,해당 필드 부분을 집중적으로 퍼징하는 새로운 방식을 제안한다. 이 때, Variational Autoencoder(VAE)라는딥 러닝 모델을 사용하여 커버리지가 높게 측정된 입력 값들의 특징을 학습하고, 이를 통해 단순 변이보다 학습된모델을 통해 재생성한 파일들의 커버리지가 균일하게 높다는 것을 보인다. 또한 크래쉬가 발생한 파일들의 특징을학습하고 재생성 시 드롭아웃을 적용하여 변이를 줌으로써 새로운 크래쉬를 발견할 수 있음을 보인다. 실험 결과 커버리지가 퍼징 도구인 AFL의 큐의 파일들보다 약 10% 정도 높은 것을 확인할 수 있었고 Hwpviewer 바이너리에서 초기 퍼징 단계 시 발생한 두 가지의 크래쉬를 사용하여 새로운 크래쉬 두 가지를 더 발견할 수 있었다.

Abstract

Fuzzing is one of the software testing techniques that find security flaws by inputting invalid values or arbitrary valuesinto the program and various methods have been suggested to increase the efficiency of such fuzzing. In this paper,focusing on the existence of field with high relevance to coverage and software crash, we propose a new method forintensively fuzzing corresponding field part while performing field based fuzzing. In this case, we use a deep learning modelcalled Variational Autoencoder(VAE) to learn the statistical characteristic of input values measured in high coverage and itshowed that the coverage of the regenerated files are uniformly higher than that of simple variation. It also showed thatnew crash could be found by learning the statistical characteristic of the files in which the crash occurred and applying thedropout during the regeneration. Experimental results showed that the coverage is about 10% higher than the files in thequeue of the AFL fuzzing tool and in the Hwpviewer binary, we found two new crashes using two crashes that found atthe initial fuzzing phase.

참고문헌 (21)

  1. H. Liang, "Fuzzing: State of the Art", IEEE Transactions on Reliability, pp.1199~1218 (2018)
  2. M. Böhme, "Coverage-based Greybox Fuzzing as Markov Chain", IEEE Transactions on Software Engineering (2017)
  3. N. Stephens, "Driller: Augmenting fuzzing through selective symbolic execution", NDSS, 16, pp.1~16 (2016)
  4. S. Rawat, "VUzzer: Application-aware Evolutionary Fuzzing", NDSS Symposium 2017 (2017)
  5. P. Godefroid, "Learn&Fuzz: Machine Learning for Input Fuzzing", Proceedings of the 32nd IEEE, 2017, 50~59
  6. C. Cummins, "Compiler Fuzzing through Deep Learning", ACM SIGSOFT International Symposium on Software Testing and Analysis, pp.95~105 (2018)
  7. M. Mustafa, "Efficient Instrumentation for Code Coverage Testing", ISSTA '02 Proceedings of the 2002 ACM SIGSOFT international symposium on Software testing and analysis, pp.86~96 (2002)
  8. Y. Noller, "Badger: Complexity Analysis with Fuzzing and Symbolic", ISSTA 2018 - Proceedings of the 27th ACM SIGSOFT International Symposium on Software Testing and Analysis, pp.322~332 (2018)
  9. M. Jurczyk, "Effective file format fuzzing", Black hat Europe (2016)
  10. N. Nichols, "Faster Fuzzing:Reinitialization with Deep Neural Models", arXiv preprint arXiv:1711. 02807v1, ~ (2017)
  11. A.Severyn, "Twitter Sentiment Analysis with Deep Convolutional Neural Networks", SIGIR '15 Proceedings of the 38th International ACM SIGIR Conference on Research and Development in Information Retrieval, pp.959~962 (2015)
  12. "american fuzzy lop"[URL]
  13. "Technical whitepaper for afl-fuzz"[URL]
  14. "Pin- A Dynamic Binary Instru mentation Tool"[URL]
  15. "DynamoRIO"[URL]
  16. "QEMU version 3.0.0 User Do cumentation"[URL]
  17. "OLE"[URL]
  18. "HWP File Format"[URL]
  19. "Summary Information Property Set"[URL]
  20. "American Fuzzy Lop READ DME"[URL]
  21. "Segmentation Fault"[URL]

관련 논문AI추천

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