- 사례연구를 통한 정적 프로그램 분석 기법을 사용하는 도구의 비교
- ㆍ 저자명
- 김윤호,박용배,김문주,Kim. Yunho,Park. Yongbae,Kim. Moonzoo
- ㆍ 간행물명
- 정보과학회논문지. Journal of KIISE. 컴퓨팅의 실제 및 레터
- ㆍ 권/호정보
- 2013년|19권 8호|pp.424-428 (5 pages)
- ㆍ 발행정보
- 한국정보과학회
- ㆍ 파일정보
- 정기간행물| PDF텍스트
- ㆍ 주제분야
- 기타
프로그램 신뢰성 향상을 위해서 정적 프로그램분석 도구가 많이 사용되고 있다. 하지만, 정적 분석 결과에서 거짓 경보를 걸러내기 위한 추가적인 분석이 필요하고 실제 오류를 찾지 못할 수 있는 문제점이 있다. 본 논문에서는 상용 정적 프로그램 분석 도구인 Coverity와 Sparrow 및 오픈 소스 도구인 Clang analyzer를 buffer overflow 벤치마크와 libexif 0.6.20 소스코드에 적용하여 실험 대상 도구가 오류를 찾아내는데 얼마나 효과적인지 사례 연구를 수행하였다. 실험 결과 buffer overflow 벤치마크에서는 Coverity, Sparrow, Clang analyzer 각각 6.02%, 3.61%, 0%의 버그탐지율과 2.41%, 1.20%, 0%의 오탐율을 보였다. libexif 0.6.20 적용에서 Coverity, Sparrow, Clang analyzer는 총 745개의 오류를 찾아내었으나 알려진 7개의 오류 중 6개를 찾아내지 못하였다. 이와 같이 정적 분석 도구가 놓칠 수 있는 오류가 많으므로 높은 소프트웨어 신뢰성 보장을 위해 다른 기법과 병행하여 적용하는 것이 필요하다.
Static analysis tools have been widely used to improve software reliability. However, static analysis tools have limitations that can generate false alarms and can miss real bugs. This paper presents a comparative study of three static analysis tools, Coverity, Sparrow, and Clang analyzer, through a case study on a set of buffer overflow benchmark programs and libexif 0.6.20 to evaluate the effectiveness of the three static analysis tools in terms of a bug finding capability. Experiment results on buffer overflow benchmark show that bug detection capabilities of Coverity, Sparrow, and Clang analyzer are 6.02%, 3.61%, and 0%, respectively and false alarm ratios of Coverity, Sparrow, and Clang analyzer are 2.41%, 1.20% and 0%, respectively. Experiment results on libexif 0.6.20 show that Coverity, Sparrow, and Clang analyzer detect 745 bugs and miss 6 out of 7 real bugs. Thus, it is necessary to use other bug finding techniques with static analysis techniques for achieving high software reliability, because static analysis tools can miss real bugs in target programs.