871 0

코드 재사용 공격의 방어기법이 적용된 프로세서 설계

Title
코드 재사용 공격의 방어기법이 적용된 프로세서 설계
Other Titles
Processor Design with Code-Reuse Attack Defense Technique
Author
김갑경
Alternative Author(s)
Kim. Gap Kyoung
Advisor(s)
김동규
Issue Date
2019. 8
Publisher
한양대학교
Degree
Master
Abstract
본 논문은 최신 소프트웨어 취약점을 이용한 강력한 공격 방법인 코드 재사용 공격(CRA, Code Reuse Attack)의 특성에 대해 알아보고 하드웨어 기반 방어 기법을 설계한다. 또한 공격을 모사한 환경에서 동작을 검증하였다. 코드 재사용 공격은 메모리 관련 취약점을 악용하는 최신 제어흐름 탈취 기술이다. 시스템에는 라이브러리를 포함한 각종 바이너리 코드들이 내장되어 있으며 공격자는 내장된 코드의 일부를 재조합하여 임의의 동작을 실행시킨다. 코드 재사용 공격의 유형은 크게 ROP(Return Oriented Programming)와 JOP(Jump Oriented Programming)으로 분류할 수 있다. 이는 W^X(Write XOR Execute), DEP(Data Excute Protection) 및 다양한 악성코드 스캐닝 기법을 우회할 수 있어 심각한 보안위협이 된다. 코드 재사용 공격을 방어하기 위해 다양한 연구들이 진행되었다. 가장 일반적인 방법으로는 소프트웨어 기반 CFI(Control-Flow Integrty)가 있다. 실행 전에 프로그램의 CFG(Control-Flow Graph)를 만들어 제어 흐름이 CFG를 따르도록 실행을 제한하는 방법이다. 하지만 큰 오버헤드를 가진다는 단점이 있다. 최근에는 이를 보완하기 위해 하드웨어 기반 CFI가 활발히 연구되었다. 주로 제어 흐름을 기록하는 버퍼를 삽입하고 이상 징후를 탐지하는 로직을 추가하는 방식이다. 하지만 추가된 로직을 동작시키기 위해서 ISA(Instruction Set Architecture)의 확장과 컴파일러의 도움이 필요하다. 본 논문에서는 코드 재사용 공격을 방어하기 위한 하드웨어 기반 방어 기법을 제안한다. 제안한 방법은 ISA 수정과 컴파일러의 변형 없이 동작이 가능하다. 제안한 방어 기법은 총 3가지로 반환 주소의 무결성을 보장하는 1) 쉐도우 스택(Shadow Stack), 함수 호출의 무결성을 보장하는 함수 2) 시작주소 테이블(FET, Function Entry Table) 그리고 간접 점프 명령어를 제한하는 3) 함수 경계 확인(FBC, Function Bound Check) 방법이다. 세 방법은 모두 제어 흐름 무결성을 강화하며 이상 징후가 탐지될 경우 공격으로 간주한다.; This paper analyze characteristics of CRA(Code Reuse Attack), a powerful attack method using the latest software vulnerability, and designs a hardware-based defense mechanism. We also verified that it works correctly in an environment simulating an attack. CRA is the latest technology to exploit memory-related vulnerabilities. The system contains various binary codes including the library. Attacker reuse the part of the code to execute arbitrary action. The types of CRAs can be classified into ROP (Return Oriented Programming) and JOP (Jump Oriented Programming). This is a serious security threat because it can bypass W X (Write Xor Execute), DEP (Data Excute Protection) and various malicious code scanning techniques. In this paper, we propose a hardware-based defense method to protect against CRA. The proposed method can operate without modification of ISA and compiler. A total of three defense methods are proposed: a shadow stack that guarantees the integrity of the return address, a FET(Function Entry Table) that guarantees the integrity of the function call, and a FBC(Function Boundary Check) that regulate the indirect jump instruction. these methods enhance control flow integrity and are considered an attack if malicious behaviors are detected.
URI
https://repository.hanyang.ac.kr/handle/20.500.11754/109208http://hanyang.dcollection.net/common/orgView/200000436426
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