표제지
목차
제1장 서론 12
제2장 배경 지식 14
2.1. Intel SGX 14
2.1.1. Identity 15
2.1.2. Launch Enclave 16
2.1.3. Sealing & Unsealing 16
2.1.4. Attestation 16
2.1.5. AEX 17
2.2. ASLR 18
2.3. 가상 주소 변환 22
2.4. Calling Convention 23
2.5. ROP 24
제3장 위협 모델 35
제4장 SGXDump 개요 36
4.1. SGXDump 36
4.2. Probe Array Monitor 37
제5장 공격 설계 39
5.1. Probe Array 선택 39
5.2. ROP payload 설계를 위한 gadget 탐색 40
5.3. SGXDump ROP payload 설계 46
5.4. PAM을 이용한 데이터 유출 및 동기화 51
5.5. ROP payload 구축 및 주입 52
제6장 구현 56
6.1. mbedTLS-SGX 56
6.2. Graphene-SGX 64
6.3. 평가 71
제7장 관련 연구 73
제8장 결론 78
참고문헌 80
요약 86
[표 2-1] 플랫폼에 따른 Calling Convention 24
[표 2-2] 취약한 함수(vul())를 호출하는 프로그램 25
[표 5-1] ROPgadget으로 추출한 명령어 list의 일부 41
[표 5-2] inc addr를 대체할 수 있는 명령어 세트 43
[표 5-3] Asylo의 gadget 44
[표 5-4] Mystikos의 gadget 45
[표 5-5] Flow of ROP payload 46
[표 5-6] Flow of ROP payload - Step 1. 48
[표 5-7] Flow of ROP payload - Step 2. 49
[표 5-8] Flow of ROP payload - Step 3. 49
[표 5-9] Flow of ROP payload - Step 4. 51
[표 5-10] Flow of Kernel module(PAM) 52
[표 5-11] ROP payload의 일부 53
[표 6-1] mbedTLS-SGX에 사용한 gadget 59
[표 6-2] mbedTLS-SGX에 사용한 payload 59
[표 6-3] PAM에서 동기화를 위해 수행하는 코드 62
[표 6-4] PAM에서 데이터를 유출하는 코드 62
[표 6-5] Graphene-SGX에 사용한 gadget 67
[표 6-6] Graphene-SGX에 사용한 payload 67
[표 6-7] 평가 결과 72
[표 7-1] Intel SGX를 대상으로 하는 side-channel 공격 비교-1 73
[표 7-2] Intel SGX를 대상으로 하는 side-channel 공격 비교-2 74
[그림 2-1] SGX의 기본 보안 모델 15
[그림 2-2] ASLR 비활성 상태의 프로세스 81 19
[그림 2-3] ASLR 비활성 상태의 프로세스 102 20
[그림 2-4] ASLR 활성 상태의 프로세스 112 21
[그림 2-5] ASLR 활성 상태의 프로세스 117 22
[그림 2-6] call 명령어를 실행하기 전 프로그램의 명령어 상태 26
[그림 2-7] call 명령어를 실행한 후 프로그램의 명령어 상태 27
[그림 2-8] 버퍼 오버플로 28
[그림 2-9] 정상적인 경우 29
[그림 2-10] 버퍼 오버플로에 의해 스택이 덮어 씌워진 경우 30
[그림 2-11] 덮어 씌워진 스택에 저장된 주소로 복귀 31
[그림 2-12] NX bit 비활성화 32
[그림 2-13] NX bit 활성화 33
[그림 2-14] Canary 비활성화 33
[그림 2-15] Canary 활성화 34
[그림 3-1] 위협 모델 35
[그림 4-1] SGXDump 프레임워크 36
[그림 5-1] /proc/pid/maps의 내용 40
[그림 5-2] gdb-peda의 ropsearch 42
[그림 5-3] /proc/pid/maps 파일에서 식별할 수 있는 enclave의 시작주소 46
[그림 5-4] ROP payload의 예 47
[그림 5-5] access bit의 변화 50
[그림 5-6] pwntools를 이용하여 ROP 공격을 수행하는 모습 54
[그림 5-7] PAM에서 데이터를 유출하는 모습 55
[그림 6-1] mbedTLS-SGX 위협 모델 57
[그림 6-2] mbedTLS-SGX의 client 58
[그림 6-3] Graphene-SGX 위협 모델 65
[그림 6-4] Graphene-SGX를 이용한 client 66
[그림 6-5] 공격에 필요한 주소를 파싱하는 모습 66
[그림 6-6] PAM에서 모니터링을 통해 데이터를 유출하는 모습 - Graphen-SGX 70