1. 서론
Intel Software Guard Extensions(SGX)는 프로세서 수준에서 신뢰 실행 환경(TEE)을 제공하기 위해 설계된 하드웨어 기반 기술이다. SGX는 메모리 암호화 엔진(Memory Encryption Engine)을 통해 EPC(Enclave Page Cache)에 저장된 데이터를 AES-128 XTS 모드로 실시간 암호화·복호화하며, 페이지 무결성 보호를 위해 각 페이지에 MAC(Message Authentication Code)을 추가한다[1][2]. 또한 EREPORT/EREPORT2 원격·로컬보증(attestation) 메커니즘을 통해 Enclave 코드·데이터의 무결성을 검증할 수 있다[1]. 이러한 보호 기능에도 불구하고, SGX는 로드된 코드 조각을 활용하는 ROP 공격 기법을 원천적으로 방어하지는 못한다.
SGX 환경에서 ROP 기법을 검증하기 위해서는 가젯 탐색 및 페이로드 조합 절차가 필수적이다. 그러나 수작업 기반 절차의 복잡성 때문에 전체적인 페이로드 도출 시간은 예측이 어렵고, 재현성도 낮다. 본 연구는 이러한 한계를 극복하기 위해, 정적 가젯 탐색 도구 ROPgadget과 의미론 기반 합성 도구 ROPium을 계층적으로 연계한 자동화 파이프라인 프레임워크를 제안한다. Pseudo-ROP 템플릿만 작성하면, 파이프라인은 자동으로 가젯 탐색·매핑·합성을 수행하여 단일 명령어 흐름으로 구성된 ROP 체인 페이로드를 생성할 수 있다.
2. 관련 연구
2.1 Intel SGX
Intel SGX는 민감한 코드와 데이터를 CPU 내부의 Enclave Page Cache(EPC)에 격리해 실행하는 하드웨어 기반 TEE 기술이다[1][2]. SGX는 다양한 클라우드, 금융, 의료 환경에서 활용되며 기존 소프트웨어 보안 기법보다 월등한 보안성을 제공한다[2][7]. 그러나 Foreshadow[4], SGAxe[5], ÆPIC Leak[6] 등 최근 마이크로아키텍처 취약점은 SGX의 사이드채널 공격취약성을 드러냈다.
2.2 ROP in SGX
ROP(Return-Oriented Programming)는 ret 인스트럭션으로 끝나는 짧은 코드 블록(가젯)을 연쇄 호출하여 임의 연산을 수행하는 공격 기법이다. SGX 환경에서는 DEP, ASLR 등 기존 보호 기법을 우회하는 유일한 수단으로 평가된다[2][8]. 실제로 SGX-ROP[8], Dark-ROP[9], SGXDump[3] 등이 Enclave 내부에서의 ROP 공격 가능성을 입증하였다.
2.3 자동 gadget 탐색 기법
정적 패턴 검색 도구(ROPgadget[10], rp++[11], ropr[12])는 빠르지만 false positive 비율이 높고, 심볼릭 실행 기반 도구(angrop[13])는 정확하지만 메모리와 시간이 과다 소모된다. IL 기반 의미론 검색(ROPium[14])은 제약 기반 분석으로 정밀 합성을 지원하나, 높은 계산비용과 타임아웃 문제가 따른다. 최근 하이브리드 방식 연구가 제안되었으나, SGX Enclave 바이너리 실험은 부족한 상황이다. 본 연구는 이들 기법을 계층적으로 통합해 SGX 환경에 최적화된 자동화 파이프라인을 제시한다.
3. ROP 가젯 탐색 및 페이로드 구축
제안된 자동화 파이프라인은 Pseudo-ROP 템플릿을 입력으로 받아, 정적 가젯 탐색과 의미론 합성 단계를 연속 수행하여 완전한 ROP 페이로드를 생성한다. 전체 과정은 다음과 같다.
∙템플릿 해석: ROP 검증을 위해 명령 흐름을<section> 단위로 기술하는 Pseudo-ROP 템플릿을 작성한다. 각 명령어는 reg* 와일드카드로 표현되어, 레지스터 매핑 없이 연산 의도를 기술할 수 있다.
∙정적 가젯 탐색: ROPgadget[10]을 사용해 Enclave 바이너리의 리턴 인스트럭션(ret) 기반 가젯 후보를 슬라이딩 윈도우 방식으로 추출하고, 정규표현식 필터링을 통해 명령 패턴과 매칭되는 초기 가젯 풀을 확보한다.
∙의미론 기반 보강: 정적 풀이 부족한 섹션에 대해 ROPium[14]을 호출하여 VEX IR과 Z3 SMT를 이용, 의미론적 제약을 만족하는 추가 가젯을 합성한다(제한시간 5초).
∙자동 페이로드 구성: 확보된 가젯 후보들 중 섹션별 최적 가젯을 선택하고 순차 연결하여 완전한 ROP 체인을 생성한다.
ROP 페이로드 생성을 위한 의사 코드는 다음과 같다<표 1>.
<표 1> ROP 페이로드 생성 의사코드

4. 실험 및 평가
본 논문에서는 실질적 ROP 페이로드 생성을 검증하기 위해 SGXDump의 ROP 공격에 필요한 연산 목적별 ROP 페이로드를 Pseudo-ROP 템플릿으로 작성하였다<표 2>.
<표 2> ROP 페이로드 템플릿

위와 같은 Pseudo-ROP를 이용하여 4개의 공개된 SGX 프로젝트들[15-18]을 대상으로 세 가지 모드(ROPgadget, ROPium, Hybrid)를 비교하였다. 각 모드별로 수행 시간, 템플릿 완료율, 타임아웃 발생 횟수를 측정하였다.
<표 3-5>는 네 바이너리와 세 가지 모드에 대한 평균 수행 시간, 완료율, 타임아웃 횟수를 종합한 결과이다.
<표 3> 바이너리 및 모드 간 정량적 비교 – 실행시간(초)

<표 4> 바이너리 및 모드 간 정량적 비교 - 성공여부

<표 5> 바이너리 및 모드 간 정량적 비교 – 타임아웃 횟수

Hybrid 방식은 모든 바이너리에서 평균 105.83초 이내에 전체 템플릿을 완성하였으며, ROPgadget 대비 높은 완료율을 유지하면서도 ROPium 대비 현저히 적은 타임아웃 발생을 보였다.
(그림 1)은 바이너리에서 모드별 평균 수행 시간을 보여준다. ROPgadget은 빠르지만 불완전한 체인 생성에 그쳤으며, ROPium은 높은 정확도를 보이나 시간 소모가 컸다. Hybrid는 두 방식의 중간 수준의 실행 시간을 보이면서도 안정적으로 완전한 체인을 생성하였다.

(그림 1) 모드별 평균 실행 시간
(그림 2)는 모드별 템플릿 완료율을 시각화한 것이다. ROPium은 일부 섹션에서 제약 해석 실패로 미완성이 발생하였으나, Hybrid는 모든 실험에서 100% 완료율을 달성하였다.

(그림 2) 모드별 완료율
(그림 3)은 모드별 타임아웃 발생 횟수를 보여준다. 특히 Mystikos와 mbedTLS-SGX와 같은 복잡한 Enclave에서 ROPium은 다수의 타임아웃이 발생했으나, Hybrid는 제약 기반 합성을 제한적으로만 호출함으로써 타임아웃을 최소화하였다.

(그림 3) 모드별 시간 초과
마지막으로, <표 6>은 본 연구에서 수행한 비교를 기준으로 각 기법이 갖는 상대적 장점을 요약한 것이다. 수행 시간 측면에서는 ROPgadget이 가장 빠르지만, 불완전한 체인 생성으로 인해 실용성이 떨어진다. ROPium은 높은 정밀도를 보이지만 시간과 자원 소모가 심각하다. 반면 Hybrid는 실용적 시간 내에서 높은 완료율과 낮은 타임아웃을 동시에 달성하여 가장 균형 잡힌 성능을 보였다.
<표 6> 결과 요약

5. 결론
본 연구는 SGX Enclave 환경에서의 ROP 가젯 탐색과 체인 조합을 자동화하기 위해, 정적 분석과 의미론 분석을 계층적으로 결합한 Hybrid 파이프라인을 제안하였다.
실험 결과, Hybrid 방식은 네 가지 SGX 바이너리에서 평균 105.83초 이내에 모든 Pseudo-ROP 템플릿을 완성할 수 있었으며, 기존 기법 대비 수행 시간과 재현성에서 현저한 개선을 보였다<표 3-5>, (그림 1-3). 또한 Hybrid는 ROPium의 타임아웃 문제를 완화하면서도 높은 완료율을 달성하였다.
<표 6>에서 보듯이, Hybrid는 단순히 기존 도구의 보완적 조합을 넘어, 실용적 ROP 검증의 자동화와 재현성을 보장하는 새로운 기여를 제시한다. 이는 향후 SGX 및 이기종 TEE 환경에서 자동화된 공격·방어 연구의 중요한 벤치마크로 활용될 수 있다.
향후 연구 과제로는 템플릿 섹션 간 의존성 해결, SMT 제약 해석 최적화, 머신러닝 기반 가젯 분류 기법, 그리고 ARM/RISC-V 등 이기종 하드웨어로의 확장이 있다.
References
- F. McKeen, et al., "Innovative instructions and software model for isolated execution," HASP '13.
- I. Anati, et al., "Innovative technology for CPU based attestation and sealing," HASP '13.
- H. J. Yoon and M. H. Lee, "SGXDump: A Repeatable Code-Reuse Attack for Extracting SGX Enclave Memory," Applied Sciences, Vol. 12, No. 15, 7655, 2022.
- J. Van Bulck, et al., "Foreshadow: Extracting the keys to the intel {SGX} kingdom with transient {Out-of-Order} execution", 27th USENIX Security Symposium (USENIX Security 18), 2018.
- S. Van Schaik, et al., "SGAxe: How SGX fails in practice", 2020.
- P. Borrello, et al., "{ÆPIC} leak: architecturally leaking uninitialized data from the microarchitecture", 31st USENIX Security Symposium (USENIX Security 22), 2022.
- V. Costan and S. Devadas, "Intel SGX Explained," IACR Cryptology ePrint Archive, 2016.
- M. Schwarz, S. Weiser and D. Gruss, "Practical enclave malware with Intel SGX", International Conference on Detection of intrusions and malware, and vulnerability assessment, Cham: Springer International Publishing, 2019.
- J. H. Lee, et al., "Hacking in darkness: Return-oriented programming against secure enclaves", 26th USENIX Security Symposium (USENIX Security 17), 2017.
- Salwan, J., https://github.com/JonathanSalwan/ROPgadget
- 0vercl0ck, https://github.com/0vercl0k/rp
- Ben-Lichtman, https://github.com/Ben-Lichtman/ropr
- angr, https://github.com/angr/angrop
- Boyan-MILANOV, https://github.com/Boyan-MILANOV/ropium
- Asylo: Open-source framework for confidential computing, https://asylo.dev
- Graphene-SGX Project: Library OS for Multiplatform Secure Enclaves, https://grapheneproject.io
- ARM mbedTLS-SGX, https://github.com/ARMmbed/mbedtls-sgx
- Mystikos: A Lightweight, POSIX-Compliant Library OS for SGX, https://github.com/mystikos/mystikos