초록 close

소프트웨어 테스팅은 소프트웨어의 버그 및 잘못 구현된 부분 등을 찾아내는 과정을 통해 품질을 평가하는 방법이다. 퍼징(fuzzing)은 소프트웨어 테스팅 기술의 여러 가지 방법 중 하나로써 난수를 발생시켜 테스팅하고자 하는 소프트웨어에 주입하는 방법으로써 보안에 중점을 두어 테스팅하는 방법이다. 퍼징은 단위 시간 당 테스팅 효율성, 비용 절감 등 여러 가지 장점을 이유로 다수 사용되고 있으나 퍼징 수행 시 전문가의 개입이 많은 단점이 존재한다. 예를 들면 해당 소프트웨어가 사용하는 프로토콜 혹은 퍼징 대상이 파일인 경우 파일 포맷에 대한 분석을 수행한 후에야 가능하기 때문에 테스팅 기간이 길어질 수 있으며 퍼징 도구를 이용해도 퍼징 대상의 프로토콜 및 포맷에 대한 분석이 난해한 경우 테스팅 대상에 대한 퍼징을 수행하지 못할 수도 있다.본 논문에서 설계한 ROAD는 RPC 기반 프로토콜 및 소프트웨어를 자동으로 퍼징할 수 있는 도구이다. RPC는 다수의 취약점이 발견된 구성요소로써 본 논문에서는 이를 자동으로 퍼징할 수 있는 도구의 구현을 목표로 하였다. 기존의 도구 중 RPC 기반 소프트웨어를 퍼징하는 도구가 존재하지만 자동화되어 있지 않을 뿐만 아니라 소프트웨어에 따라 도구를 수정해야만 사용이 가능하다. 본 논문은 이러한 단점을 극복하고자 자동화 도구를 설계 및 구현하여 실제 RPC 기반 프로토콜 및 소프트웨어에 적용하였다. 또한 실험을 통해 도구의 효용성을 검증하였다.


Software testing is the process of analyzing a software item to detect the differences between existing and required conditions and to evaluate the features of the software item.〔12〕 A traditional testing focuses on proper functionality, not security testing. Fuzzing is a one of many software testing techniques and security testing. Fuzzing methodology has advantage that low-cost, efficiency and so on. But fuzzing has defects such as intervening experts. Also, if there is no specification, fuzzing is impossible. ROAD Tool is automated testing tool for RPC(Remote Procedure Call) based protocol and software without specification. Existing tools are semi-automated. Therefore we must modify these tools. In this paper, we design and implement ROAD tool. Also we verify utility in testing results.