프로그램 인터페이스 오류 탐지 도구(APISan)

소스코드 안에서 같은 API(Application Programming Interface)가 어떻게 사용되었는지 비교하여 잘못 사용된 것으로 판단되는 API의 사용 위치를 알려주는 도구이다. 복잡성이 증가하고 있는 최근의 소프트웨어에서 API를 잘못 사용하면 원하지 않는 잘못된 결과를 얻을 수 있고, 심각한 보안 문제를 일으키기도 하므로 사전 탐지가 중요하다. 그러나 소프트웨어의 규모가 커짐에 따라 사람이 개입하여 찾아내기 어려워지고 있다. 본 도구는 사람의 개입 없이 자동으로 소스 코드의 API 사용 내역을 추적하고 분석한 추론을 통하여 올바른 API 사용 방법을 규정하고, 잘못된 사용을 찾는다. 기존 기법은 사람이 API를 어떻게 사용해야 하는지 정의하고, 검색 프로그램에 적용되도록 설정하여야 한다. 그리고 잘못된 사용 또는 옳은 사용 기준 등을 입력한 후 소스코드 분석을 수행해야 하는 문제가 있다. 본 도구는 함수의 반환 값 추론, 함수의 인수 간의 관계 추론, 일상적이지 않은 함수 간의 관계 추론, 간접적으로 함수의 전·후 상태 추론 등을 데이터 베이스를 사용하여 사람의 개입이 필요하지 않은 자동화 도구이다. 관련 소프트웨어는 깃허브 APISan에 공개되어 있다.