Abstract
We present a simple and effective method to reduce loop-related false alarms raised by buffer-overrun static program analyzer. Interval domain buffer-overrun analyzer raise many false alarms in analyzing programs that frequently use loops and arrays. Firstly, we classified patterns of loop-related false alarms for loop-intensive programs, such as embedded programs or mathematical libraries. After that we designed a simple and effective false alarm refiner, specialized for the loop-related false alarms we classified. After the normal analysis of program in which alarms considered as false. We implemented this method on our buffer-overrun analyzer with the result that our refinement method decreased the number of false alarms by 32% of total amount the analyzer reported.
버퍼오버런 분석기가 루프안에서 발생시키는 허위경보를 간편하고도 효율적으로 줄이는 방법과 경험을 소개한다. 버퍼오버런 분석기는 루프와 배열을 많이 사용하는 프로그램을 분석할 때 많은 허위경보를 발생시킨다. 우리는 먼저 루프를 많이 사용하는 프로그램인 임베디드 프로그램과 암호화 관련 프로그램들에서 발생하는 허위경보를 조사하여 허위경보를 일으키는 루프의 패턴을 조사했다. 그 다음에 그 루프에 특화된 간단하고 효율적인 재분석기를 고안하였다. 우리가 제안하는 재분석기는 분석기가 분석을 끝낸 후 내 놓는 분석결과를 보고 재분석할 목표가 되는 루프만을 찾아서 초벌분석보다 더 정교한 분석을 하여 허위경보를 안전하게 제거한다. 버퍼오버런 분석기인 아이락에 구현하여 실험해본 결과 전체 루프 관련 허위경보 중 32% 가량이 제거되었다.