384 0

시스템 변경 없는 실행 코드 기반 보안 취약점 검증 기법에 관한 연구

Title
시스템 변경 없는 실행 코드 기반 보안 취약점 검증 기법에 관한 연구
Other Titles
New Methodologies of Analyzing Security Vulnerability in Executable Programs without System Modifications
Author
박정민
Alternative Author(s)
Park, Jung-Min
Advisor(s)
송용호
Issue Date
2007-02
Publisher
한양대학교
Degree
Master
Abstract
오늘날 사용자에게 전달되는 소프트웨어는 소스 코드 없이 실행 코드 형태로 제공된다. 제공된 소프트웨어는 개발상의 실수나 오류로 인하여 보안상 취약한 코드를 내포하고 있을 수 있고, 악의적인 사용자에 의해 시스템 공격에 이용될 수 있다. 따라서 실행 코드 형태로 제공된 소프트웨어에 대한 취약점 검증이 요구된다. 인터넷의 보급이 확산되고 관련 기술이 발달함에 따라 이를 이용한 네트워크보안 침해 사고가 증가하고 있다. 네트워크 보안 침해 사례 중 많은 비중으로 이용되고 있는 보안 취약점이 버퍼 오버플로우이다. 버퍼 오버플로우는 주어진 버퍼 크기보다 큰 데이터를 버퍼에 기록할 때 버퍼와 인접한 영역에 정의된 데이터를 변경하는 현상을 말한다. 이러한 버퍼 오버플로우는 입력되는 데이터의 크기와 주어진 버퍼의 크기를 비교·검사하지 않고 기록하여 발생한다. 악의적인 사용자는 버퍼 오버플로우 현상을 이용하여 실행 프로그램의 코드 흐름을 변경할 수 있고, 공격 코드가 위치한 곳으로 코드 흐름을 유도하여 시스템을 공격할 수 있다. 버퍼 오버플로우 취약점이 발견된 이래 이 취약점을 검증하기 위한 많은 기법들이 제안되었다. 기존 취약점 검증 기법은 컴파일러나 하드웨어의 변경을 통해 적용할 수 있는 기술이었다. 이러한 시스템 변경은 기존 시스템 사용자에게 금전적·시간적 비용을 요구하게 된다. 이에 따라 본 논문에서는 시스템 변경 없는 실행 코드 기반 스택 버퍼 오버플로우 취약점 검증 기법을 제안한다. 제안한 기법은 검증 대상 프로그램을 실행하는 중에 리턴 주소의 변화를 관찰하여 버퍼 오버플로우 취약점 발생을 검증하는 기법이다. 본 논문에서는 리턴 주소를 획득하는 방식과 검증 대상 함수에 따라 CALL-RET Trace 기법, Import Function Trace 기법, Library Function Trace 기법으로 구별한다. CALL-RET Trace 기법은 실행 코드에서 사용되는 모든 CALL, RET 명령어에서 리턴 주소를 획득·비교하는 기법이고, Import Function Trace 기법은 실행 코드의 헤더 정보를 이용하여 임포트 함수의 시작과 종료 시 리턴 주소를 획득·비교하는 기법이다. Library Function Trace 기법은 버퍼 오버플로우를 유발할 수 있는 라이브러리 함수를 역추적하여 caller 함수의 리턴 주소 변화를 관찰하고 취약점을 검증하는 기법이다. 제안한 기법을 이용하여 기존 취약점에 대해 실험하였고, Library Function Trace 기법으로 그 취약점을 검증할 수 있었다. 그리고 제안한 3가지 기법을 비교·분석하여 제안 기법 중 Library Function Trace 기법이 다른 기법에 비해 좋은 성능을 나타내고 있음을 보였다. 이에 근거하여 본 논문에서 제안한 Library Function Trace 기법을 이용하면 시스템 변경 없이 실행 코드 형태의 소프트웨어에 대해 버퍼 오버플로우 취약점을 성공적으로 검증할 수 있다.; Most distributed software consists of executable programs without source code. The software might contain some security hole which is made with the wrong program design or the developer’s mistakes. The security hole is exploited by malicious user to attack target systems. So it is required to analyze security vulnerability in executable programs. Popularizing use of Internet has brought about the increase of security attacks. Buffer overflow is the well-known security vulnerability. This happens when a buffer is filled with a string whose length exceeds the capacity of the buffer. Malicious attackers exploiting buffer overflow vulnerability can change the execution flow of the target program and lead to execute a malicious code. Since the appearance of buffer overflow vulnerability, many techniques have been developed to detect and analyze it. These techniques require system modifications such as compiler or CPU modification. But these also require the cost of system modification to system users. In this paper, we propose new methodologies to analyze stack overflow vulnerability in executable programs without system modifications. These check to detect stack overflow vulnerability whether the return-address of a function is corrupted or not while the target program is running. The methodologies are classified into CALL-RET Trace, Import Function Trace and Library Function Trace. CALL-RET Trace is methodology that obtains and compares the return-addresses at all call, ret instructions existed in execution code and library. Import Function Trace obtains and compares the return-addresses at the beginning and the end of import functions which target program call. Library Function Trace analyzes the return-addresses of caller function that calls the library functions which are able to overflow a buffer. We experiment on the reported buffer overflow vulnerability to verify our proposals and analyze the performance of our methodologies. In the experiment result, Library Function Trace can detect the reported vulnerability and the performance of that is better than others. Library Function Trace will be able to analyze stack overflow vulnerability in the suspicious software that might include vulnerable code in executable programs without system modifications.
URI
https://repository.hanyang.ac.kr/handle/20.500.11754/149936http://hanyang.dcollection.net/common/orgView/200000406154
Appears in Collections:
GRADUATE SCHOOL[S](대학원) > ELECTRONICS AND COMPUTER ENGINEERING(전자컴퓨터통신공학과) > Theses (Master)
Files in This Item:
There are no files associated with this item.
Export
RIS (EndNote)
XLS (Excel)
XML


qrcode

Items in DSpace are protected by copyright, with all rights reserved, unless otherwise indicated.

BROWSE