현대 무기체계 기능의 대부분은 소프트웨어에 의해 구현되고 있으며, 무기체계 소프트웨어의 결함은 막대한 인명 및 금전적인 피해를 야기할 수 있다. 따라서 무기체계 소프트웨어 결함이 사고로 이어지기 이전에 탐지하여 개선하는 것은 매우 중요하다. 현재 무기체계 소프트웨어 시험평가는 개발시험평가 시 신뢰성 시험을 포함하여 평가한다. 하지만 신뢰성 시험 중 동적시험의 경우 코드 실행률만을 시험하도록 되어 있어 소프트웨어 결함 식별이 제한된다.
퍼즈 테스팅은 소프트웨어 취약점 발견을 위해 소프트웨어에 입력되는 파일을 변이시켜 발생되는 오작동을 탐지하고 취약점을 발견하는 대표적인 동적시험 방법 중 하나이다. 기존의 블랙박스 퍼징이나 그레이박스 퍼징 기법은 대부분 무작위 테스팅 방법이기 때문에 크래시 발견 측면에서 효율적이지 않다. 따라서 본 논문에서는 시드파일 구조 분석과 비지도 기반 생성모델인 GAN 모델 기반으로 하는 퍼즈 테스팅 기법을 통해 많은 수의 크래시를 발견하고자 한다. 이를 위해 기존의 변이기반 블랙박스 파일 퍼즈 테스팅 결과로 발견된 크래시 유발 데이터를 GAN 모델에 학습시키고, 학습한 GAN 모델이 생성한 데이터로 구성한 파일을 활용해 다시 퍼즈 테스팅을 수행하는 방법을 적용한다.
제안한 방법을 실험하기 위해 Polaris Office와 BFF를 사용하여 크래시를 유발하는 변이된 파일을 수집하였으며, 크래시가 발생한 파일에서 크래시의 원인을 포함한 영역의 특징을 GAN 모델이 학습하고, 학습을 완료한 생성모델이 재생성한 파일을 활용하여 테스트 파일을 구성하고 퍼징을 수행함으로써 BFF만을 사용한 퍼즈 테스팅 결과 대비 많은 크래시를 발견할 수 있었다.
제안 방법은 퍼징을 위한 입력 파일 생성 시 기존의 무작위한 변이와 넓은 변이 영역으로 인한 비효율의 문제를 해결하여 많은 수의 크래시 발견이 가능하다. 향후 무기체계 소프트웨어 신뢰성 시험의 동적시험에 퍼즈 테스팅 기법을 도입하고 제안 방법과 같이 GAN 모델과 접목하여 활용한다면 많은 수의 크래시를 발견할 수 있으며, 발견된 크래시를 분석하여 무기체계 소프트웨어의 보안 취약점을 사전에 탐지하여 개선하는데 도움이 될 것으로 기대한다.