서지주요정보
명령어 문법 인식 기반의 효율적인 에뮬레이터 차등 테스팅 = Grammar-aware differential testing for emulators
서명 / 저자 명령어 문법 인식 기반의 효율적인 에뮬레이터 차등 테스팅 = Grammar-aware differential testing for emulators / 이용우.
발행사항 [대전 : 한국과학기술원, 2023].
Online Access 원문보기 원문인쇄

소장정보

등록번호

8040860

소장위치/청구기호

학술문화관(도서관)2층 학위논문

MIS 23006

휴대폰 전송

도서상태

이용가능(대출불가)

사유안내

반납예정일

리뷰정보

초록정보

Emulators, in which one computer system imitates another computer system and operates, are used in many places, such as games, development, debugging, program analysis, and malware analysis. However, it is very difficult to accurately emulate the increasingly complex modern computer architectures, and it is also difficult to verify them. This is because to verify the emulator’s correctness, the exact meaning and operation of each instruction must be known, and it is necessary to check whether the emulator implemented them correctly. In previous studies, differential testing was proposed that compare the results of executing the same instructions on the CPU and emulator respectively. However, there is a disadvantage that it is inefficient because they generates random byte codes for testing. Therefore, we present an efficient emulator differential testing methodology based on grammar-aware instruction generation. When creating an instruction, we parse the manual to understand the grammar of the instruction and generates an instruction based on this, we can generate instructions more efficiently than previous studies. In addition, considering the data flow of each instruction, we propose a methodology that can reduce unnecessary code repetition and test multiple instructions at once. Experiments showed that our methodology was able to generate various types of instructions and found more bugs in the QEMU user mode emulator. In addition, the dependency-aware testing allowed us to find bugs faster. Finally, we found 7 new bugs in QEMU v7.1.0 user mode emulator.

한 컴퓨터 시스템이 다른 컴퓨터 시스템을 모방하여 동작하는 에뮬레이터는 게임, 개발, 디버깅, 프로그램 분석, 악성코드 분석 등 많은 곳에서 활용되고 있다. 그러나 점점 복잡해지는 현대 컴퓨터 아키텍처들을 정확히 에뮬레이션해 주는 것은 매우 어려운 일이고 이를 검증하는 것 또한 어려운 일이다. 에뮬레이터의 정확성을 검증하기 위해서는 각 명령어의 정확한 의미와 동작을 알고있어야 하며 에뮬레이터가 이를 올바르게 구현했는지 검사해야 하기 때문이다. 선행 연구에서는 동일한 명령어를 CPU와 에뮬레이터에 각각 실행시킨 결과를 비교하는 차등 테스팅을 제안했다. 그러나 명령어를 생성할 때 랜덤한 바이트 코드를 생성하기 때문에 비효율적이다는 단점이 존재한다. 따라서 우리는 명령어 문법 인식 기반의 효율적인 에뮬레이터 차등 테스팅 방법론을 제시한다. 명령어를 생성할 때 매뉴얼을 파싱하여 명령어의 문법을 파악하고 이를 기반으로 명령어를 생성하여 선행 연구에 비해 월등히 높은 확률로 유효한 명령어를 생성해낸다. 또한 명령어의 의존성을 고려하여 불필요한 코드의 반복을 줄이고 한 번에 여러 명령어를 테스팅할 수 있는 방법론을 제안한다. 우리의 방법론이 더 높은 확률로 다양한 종류의 명령어를 생성해 낼 수 있었고 QEMU 사용자 에뮬레이터에서 더 많은 버그를 찾을 수 있었음을 실험을 통해 보였다. 또한 명령어 의존성을 고려한 테스팅 방법을 통해 더 빠르게 버그를 찾을 수 있었다. 끝으로 QEMU v7.1.0에서 7개의 새로운 버그를 찾아냈다.

서지기타정보

서지기타정보
청구기호 {MIS 23006
형태사항 ii, 19 p. : 삽도 ; 30 cm
언어 한국어
일반주기 저자명의 영문표기 : Yong-Woo Lee
지도교수의 한글표기 : 차상길
지도교수의 영문표기 : Sang Kil Cha
학위논문 학위논문(석사) - 한국과학기술원 : 정보보호대학원,
서지주기 참고문헌 : p. 17-19
주제 에뮬레이터
차등 테스팅
문법 인식
의존성
Emulator
Differential testing
Grammar-aware
Dependency
QR CODE

책소개

전체보기

목차

전체보기

이 주제의 인기대출도서