유닛테스트를 활용한 c/c++ 라이브러리 그레이박스 퍼징 적용 자동화

Vol. 29, No. 4, pp. 807-819, 8월. 2019
10.13089/JKIISC.2019.29.4.807, Full Text:
Keywords: Security Testing, greybox fuzzing, library fuzzing
Abstract

그레이박스 퍼징은 소프트웨어에 존재하는 알려지지 않은 보안 취약점을 찾는 효과적인 방법으로 최근까지 활발하게 연구되고 있다. 단, 대부분의 그레이박스 퍼징 도구들은 실행파일을 필요로 하기 때문에 직접 실행할 수 없는 라이브러리는 별도의 실행파일을 준비해야 한다. 이러한 실행파일을 만드는 것은 라이브러리에 대한 이해 및 퍼징에 대한이해가 동시에 필요한 어려운 일이다. 본 연구에서는 라이브러리를 위한 실행파일을 자동으로 생성하는 방법을 제안하고 이를 LLVM 기반의 도구로 구현한다. 제안하는 방법은 대상 라이브러리 프로젝트에 존재하는 유닛테스트에 대한 정적/동적 분석을 통해 라이브러리를 테스트할 수 있는 실행파일 및 시드파일을 자동으로 생성한다. 생성한 실행파일은 기존 그레이박스 퍼징 도구들이 주로 사용하는 인터페이스를 보유하여 AFL과 같은 다양한 그레이박스 퍼징 도구와 호환된다. 우리는 이 도구를사용해 오픈소스 프로젝트로부터 생성한 실행파일과 시드파일을 바탕으로 코드 커버리지 및 알려지지 않은 취약점을찾음으로써 제안하는 방법의 성능을 보인다.

Statistics
Show / Hide Statistics

Statistics (Cumulative Counts from December 1st, 2017)
Multiple requests among the same browser session are counted as one view.
If you mouse over a chart, the values of data points will be shown.


Cite this article
[IEEE Style]
장준언 and 김휘강, "Automated Applying Greybox Fuzzing to C/C++ Library Using Unit Test," Journal of The Korea Institute of Information Security and Cryptology, vol. 29, no. 4, pp. 807-819, 2019. DOI: 10.13089/JKIISC.2019.29.4.807.

[ACM Style]
장준언 and 김휘강. 2019. Automated Applying Greybox Fuzzing to C/C++ Library Using Unit Test. Journal of The Korea Institute of Information Security and Cryptology, 29, 4, (2019), 807-819. DOI: 10.13089/JKIISC.2019.29.4.807.