서지주요정보
Windows 프로그램의 동적 API 호출 트레이스를 이용한 기능 단위 버스마크 = A functional unit birthmark based on dynamic API call trace of windows program
서명 / 저자 Windows 프로그램의 동적 API 호출 트레이스를 이용한 기능 단위 버스마크 = A functional unit birthmark based on dynamic API call trace of windows program / 조우영.
저자명 조우영 ; Cho, Woo-Young
발행사항 [대전 : 한국과학기술원, 2009].
Online Access 원문보기 원문인쇄

소장정보

등록번호

8020143

소장위치/청구기호

학술문화관(문화관) 보존서고

MCS 09028

휴대폰 전송

도서상태

이용가능

대출가능

반납예정일

리뷰정보

초록정보

A software birthmark is a set of original and inherent characteristics of a program that can be used to identify the program. It is the basis to distinguish the program from others and to detect a software theft. An existing dynamic API trace birthmark for Windows program of Tamada et al. is extracted by starting a program and quitting it immediately after the program is loaded. However, such an extraction method cannot detect a functional unit or module theft because users cannot collect API traces of a specific function by simply quitting a program just after loading. In this paper, we propose a new functional unit software birthmark based on dynamic API call traces of a Windows program. It extracts API call traces from executions of specific functions for a program. Detours API hooking library is used to extract Windows APIs during function executions. The Tamada`s birthmark used the longest common substring(LCS) algorithm to compare two API traces. The LCS algorithm matches the exact common substring and cannot tolerate noise in the strings. To alleviate this problem, we introduce the semi-global alignment algorithm that tries to find the containment between two strings and gives positive scores to matched API sequences and penalties to mismatched portions so that it handles small noise in API traces effectively. Two important criteria for evaluating the effectiveness of a software birthmark are credibility and resilience. Credibility and resilience mean how accurately a birthmark distinguishes independently-developed programs and how well it can detect transformed programs which are originally same, respectively. We design various experiments based on the above criteria and evaluate the proposed birthmark. The results of experiments show that the proposed birthmark is useful to detect the module theft of software which is not detected by the birthmark of Tamada et al.

소프트웨어 버스마크는 프로그램의 고유하고 내재적인 특징으로써 어떤 프로그램을 확인하는 데 사용할 수 있다. 이는 어떤 프로그램을 다른 프로그램과 구별하는 기준이 되며 이를 이용해 소프트웨어의 도용을 탐지할 수 있다. Tamada가 제안한 기존의 Windows 용 동적 API 트레이스 버스마크는 프로그램을 실행시키고 로딩이 끝나고 곧바로 종료시키는 방법만으로 API 호출 순서를 뽑아내었다. 이 논문에서는 Windows 프로그램의 동적 API 호출 트레이스를 기반으로 한 기능 단위 소프트웨어 버스마크를 새롭게 제안한다. 이 버스마크는 Detours라는 API 후킹 라이브러리를 이용해 프로그램의 특정 기능이 실행되는 동안의 API 호출 트레이스를 추출한다. Tamada의 버스마크는 최대 공유 문자열(LCS) 알고리즘을 이용해 두 API 트레이스를 비교하였다. LCS 알고리즘은 공유 문자열이 정확히 일치하는 것을 찾기 때문에 트레이스에 노이즈가 있는 경우 정확도가 크게 떨어지게 된다. 이 문제를 해결하기 위해 준 전체 정렬(semi-global alignment) 알고리즘을 도입하여 일치하는 시퀀스에는 가산점을, 일치하지 않는 시퀀스에는 감점을 하여 약간의 노이즈가 있을 때에도 효과적으로 두 API 트레이스를 대응시켰다. 신뢰성과 강인성은 소프트웨어 버스마크를 평가하는 중요한 기준이다. 신뢰성은 버스마크가 독립적으로 개발된 두 프로그램을 얼마나 정확히 구별하는지를 나타내고 강인성은 버스마크가 프로그램의 변형을 얼마나 잘 탐지해내는지를 나타낸다. 우리는 이 두 기준에 따라 우리가 제안한 버스마크를 평가하기 위해 다양한 실험을 고안하였다. Tamada의 기존의 버스마크가 소프트웨어의 모듈 도용을 탐지하지 못하는 데 비해 우리가 제안한 버스마크는 탐지할 수 있음을 실험을 통해 보였다.

서지기타정보

서지기타정보
청구기호 {MCS 09028
형태사항 vi, 38 p. : 삽도 ; 26 cm
언어 한국어
일반주기 저자명의 영문표기 : Woo-Young Cho
지도교수의 한글표기 : 한태숙
지도교수의 영문표기 : Tai-Sook Han
학위논문 학위논문(석사) - 한국과학기술원 : 전산학전공,
서지주기 참고문헌 : p. 37-38
주제 software birthmark;software theft detection;software protection;dynamic analysis;API calls
소프트웨어 버스마크;소프트웨어 도용 탐지;소프트웨어 보호;동적 분석;API 호출
QR CODE qr code