유저 프로그램의 메모리 맵 데이터 접근 동작의 결정적 재현

Title
유저 프로그램의 메모리 맵 데이터 접근 동작의 결정적 재현
Other Titles
Deterministic Replay of Memory-mapped Data Access for User Programs
Author
류준호
Alternative Author(s)
RYU JUNHO
Advisor(s)
유민수
Issue Date
2019-02
Publisher
한양대학교
Degree
Master
Abstract
소프트웨어의 크기와 규모가 커짐에 따라 버그의 발생도 잦아지고 있다. 특히, 특정 상황과 조건을 만족해야 발생하는 버그는 해당 상황과 발생 조건을 정확히 알지 않는 한 동일한 버그를 다시 발생시키는 것은 어렵다 [1]. 비결정적 버그를 재현하기 위해 비결정적 요소를 커널에서 탐지할 수 있다는 것이 증명되었다 [6-7]. 비결정적 요소 중 메모리에 사상된 외부 데이터들은 유저 프로그램의 동작에 영향을 미치는 중요한 요소 중 하나이다. 일반적으로, 시스템 콜 함수를 통해 커널이 외부 데이터를 받아 유저 프로그램에 전달하므로 커널에서 기록 및 재현을 할 수 있다. 반면에, 메모리 맵 함수는 커널에 메모리 접근 권한을 요청하고 비결정적 요소인 외부 데이터에 직접 접근한다. 따라서, 커널에서 유저 프로그램이 외부 데이터에 접근하는 것을 탐지할 수 없다. 본 논문에서는 ARM에서 제공하는 메모리 보호 기법과 breakpoint 이벤트를 이용하여 메모리 맵 데이터를 커널 레이어에서 기록 및 재현 방법을 제시한다. ARM에서 제공하는 메모리 보호 기법과 breakpoint 이벤트를 이용하여 메모리 맵 데이터의 기록 및 재현을 구현하였다. 메모리 보호 기법은 유저 프로그램이 메모리에 접근 권한을 조정함으로써 커널에서 프로그램의 메모리 접근을 탐지할 수 있도록 한다. 유저 프로그램의 다음 메모리 접근을 커널에서 탐지할 수 있도록 breakpoint 기능을 이용하여 메모리 접근 권한을 재설정한다. 주요 기록 오버헤드는 두 가지로 나눌 수 있다. 유저 프로그램이 메모리 영역에 접근할 때마다 발생하는 DABT, PABT와 디스크와 같은 영구 저장장치로 보낼 때 발생하는 오버헤드이다. Samsung Arndale Exynos 5250 보드와 리눅스 운영체제 환경에서 메모리 맵 기록 및 재현을 구현하였다. 기록 및 재현이 적용된 메모리 맵 함수는 기존 메모리 맵 함수와 비교하면 데이터의 양에 따라 0.015~0.05초의 오버헤드가 발생한다. 메모리 맵 데이터의 커널 레이어 기록 및 재현 기법은 향후 소프트웨어 개발자들이 디버깅할 때, 기록 및 재현 기법을 통하여 버그를 재생산하여 디버깅을 도울 수 있다. GNU GDB와 같은 디버거를 같이 사용함으로써 개발자들의 디버깅 시간과 비용을 줄일 수 있다.
URI
http://dcollection.hanyang.ac.kr/common/orgView/000000108088http://repository.hanyang.ac.kr/handle/20.500.11754/99755
Appears in Collections:
GRADUATE SCHOOL[S](대학원) > INFORMATION SECURITY(정보보안학과) > 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