A Length-based File Fuzzing Test Suite Reduction Algorithm for Evaluation of Software Vulnerability
Jaeseo Lee, Jong-Myong Kim, SuYong Kim, Youngtae Yun, Yong Min Kim, Bong-Nam Noh · 정보보호학회논문지 · 2013
최근 소프트웨어의 취약점을 찾기 위해 퍼징과 같은 자동화된 테스팅 방법을 이용한 많은 연구가 진행되고 있다. 퍼징은 소프트웨어의 입력을 특정 규칙에 따라 자동으로 변형시켜 소프트웨어의 오작동 여부를 탐지하고 그 결과로부터 취약점을 발견하는 것이다. 이 때 소프트웨어에 입력되는 입력 값, 즉 테스트 케이스에 따라 취약점을 발견할 수 있는 확률이 달라지기 때문에 취약점 발견 확률을 높이기 위해서는 테스트 케이스의 집합인 테스트 슈트 축약 문제를 해결하여야 한다. 이에 본 논문에서는 파일과 같은 대용량 테스트 케이스를 대상으로 효과적으로 테스트 슈트 축약 문제를 해결할 수 있는 방법을 제안하고자 한다. 이를 위해 기존 연구에서 주로 사용되었던 커버리지와 중복도 이외에 새로운 척도인 테스트 케이스의 길이를 제시하고, 본 척도에 적합한 축약 알고리즘을 설계하였다. 실험을 통해 본 논문에서 제안한 알고리즘이 기존 연구의 알고리즘보다 높은 크기와 길이 축약율을 나타냄을 보임으로써 제안하는 알고리즘의 효율성을 증명할 수 있었다. Recently, automated software testing methods such as fuzzing have been researched to find software vulnerabilities. The purpose of fuzzing is to disclose software vulnerabilities by providing a software with malformed data. In order to increase the probability of vulnerability discovery by fuzzing, we must solve the test suite reduction problem because the probability depends on the test case quality. In this paper, we propose a new method to solve the test suite reduction problem which is suitable for the long test case such as file. First, we suggested the length of test case as a measure in addition to old measures such as coverage and redundancy. Next we designed a test suite reduction algorithm using the new measure. In the experimental results, the proposed algorithm showed better performance in the size and length reduction ratio of the test suite than previous studies. Finally, results from an empirical study suggested the viability of our proposed measure and algorithm for file fuzzing.