[논문 리뷰] TeeRex: Discovery and Exploitation of Memory Corruption Vulnerabilities in SGX Enclaves
TeeRex는 Intel SGX 에이널브의 메모리 손상 취약점을 탐지하고 악용할 수 있도록 하는 자동화된 기호 실행 프레임워크이다. 이 프레임워크는 에이널브 바이너리 코드를 분석함으로써 실제 세계의 에이널브, 즉 Intel, Baidu, WolfSSL 및 주요 생체 인식 지문 소프트웨어에서의 임의의 메모리 쓰기 및 제어 흐름 조작과 같은 심각한 결함을 식별한다. 이는 호스트-에이널브 경계에서 광범위하게 악용 가능한 취약성이 존재함을 입증한다.
Intel's Software Guard Extensions (SGX) introduced new instructions to switch the processor to enclave mode which protects it from introspection. While the enclave mode strongly protects the memory and the state of the processor, it cannot withstand memory corruption errors inside the enclave code. In this paper, we show that the attack surface of SGX enclaves provides new challenges for enclave developers as exploitable memory corruption vulnerabilities are easily introduced into enclave code. We develop TeeRex to automatically analyze enclave binary code for vulnerabilities introduced at the host-to-enclave boundary by means of symbolic execution. Our evaluation on public enclave binaries reveal that many of them suffer from memory corruption errors allowing an attacker to corrupt function pointers or perform arbitrary memory writes. As we will show, TeeRex features a specifically tailored framework for SGX enclaves that allows simple proof-of-concept exploit construction to assess the discovered vulnerabilities. Our findings reveal vulnerabilities in multiple enclaves, including enclaves developed by Intel, Baidu, and WolfSSL, as well as biometric fingerprint software deployed on popular laptop brands.
연구 동기 및 목표
- 실제 SGX 에이널브에서 메모리 손상 취약점의 보편성과 악용 가능성, 특히 호스트-에이널브 인터페이스에서의 특성을 조사한다.
- SGX의 고유한 위협 모델을 고려할 때, 특히 에이널브 바이너리에서 이러한 취약점을 탐지하기 위한 자동화된 도구의 부족 문제를 해결한다.
- 단순히 취약점을 탐지하는 것뿐만 아니라, 검증 및 수정을 위한 개념 증명용 악용 생성을 가능하게 하는 프레임워크를 개발한다.
- 기존 코드와 SGX SDK 사용 시 일반적인 프로그래밍 패턴이 강력한 격리 보장을 제공하는 SGX에도 불구하고 악용 가능한 결함을 유발할 수 있음을 드러낸다.
제안 방법
- TeeRex는 기호 실행을 활용해 에이널브 바이너리 코드를 정적 분석하며, 호스트-에이널브 경계를 넘는 제어 흐름과 데이터 흐름을 모델링한다.
- 기본적인 기호 실행 엔진에 에이널브 진입/퇴출 메커니즘, 메모리 격리, 권한 분리와 같은 SGX 전용 의미 체계를 통합한다.
- 임의의 메모리 쓰기, 제어 흐름 조작, NULL 포인터 해제와 같은 취약점에 특화된 맞춤형 감지기 기능을 포함한다.
- 전역 상태 의존성 모델링과 악용을 위한 타당한 입력 조건 생성을 통해 상태 기반 악용 생성을 지원한다.
- 제약 조건 해결 및 테인팅 추적 기능을 통합해 메모리 손상 원천을 유발하는 입력 벡터를 식별한다.
- 세부적인 취약점 보고서를 생성하고, 악용 가능한 조건을 유발하는 입력을 자동으로 합성함으로써 개념 증명용 악용 개발을 촉진한다.
실험 결과
연구 질문
- RQ1실제 SGX 에이널브 바이너리, 특히 Intel SGX SDK로 개발된 바이너리에서 얼마나 광범위하게 메모리 손상 취약점이 존재하는가?
- RQ2에이널브 바이너리의 고유한 실행 모델과 격리 의미 체계를 고려할 때, 기호 실행이 메모리 손상 취약점을 효과적으로 탐지하는 데 적합한가?
- RQ3일반적인 프로그래밍 패턴과 기존 코드의 이식 실무가 호스트-에이널브 인터페이스에서 악용 가능한 결함을 어떻게 유발하는가?
- RQ4자동화된 프레임워크가 발견된 취약점을 탐지하는 것 외에도 개념 증명용 악용 생성을 지원할 수 있는가?
- RQ5SGX 에이널브에서 가장 흔한 취약점 패턴은 무엇이며, 이는 TEE의 보안 보장을 어떻게 영향을 미치는가?
주요 결과
- TeeRex는 Intel, Baidu, WolfSSL 및 Synaptics와 Goodix의 생체 인식 지문 소프트웨어에서 온라인 공개된 여러 SGX 에이널브에서 악용 가능한 메모리 손상 취약점을 발견했다.
- 이 취약점은 주로 호스트-에이널브 경계에서 발생했으며, 신뢰할 수 없는 입력이 적절히 검증되지 않은 채 처리되어 임의의 메모리 쓰기 및 제어 흐름 조작을 유도했다.
- 다수의 발견된 결함은 후행적으로 적용된 기존 코드나 Intel SGX SDK의 잘못된 사용에서 기인했으며, 이는 내장된 입력 검증 메커니즘이 부재하기 때문이다.
- 모든 발견된 취약점에 대해 프레임워크는 개념 증명용 악용을 성공적으로 구축했으며, 이는 취약점의 실질적 악용 가능성과 전체 에이널브가 해킹당할 수 있음을 확인했다.
- 취약점의 근본 원인은 체크되지 않은 함수 포인터 조작 및 신뢰할 수 없는 소스에서 온 데이터 포인터의 잘못된 처리와 같은 반복적인 패tern을 드러냈다.
- 이러한 발견은 비공개로 배포된 에이널브에도 유사한 취약점이 존재할 가능성이 높으며, SGX 배포 관행에서 심각한 보안 격차가 존재함을 시사한다.
더 나은 연구,지금 바로 시작하세요
논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.
카드 등록 없음 · 무료 플랜 제공
이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.