Kernekoncepter
악성 운영 체제가 SGX 인클레이브에 가짜 신호를 보내 등록된 핸들러를 실행시켜 인클레이브 상태를 변경할 수 있다.
Resumé
이 논문은 SIGY라는 새로운 공격을 소개한다. SIGY는 운영 체제가 SGX 인클레이브에 가짜 하드웨어 이벤트와 신호를 주입하여 인클레이브 내부의 등록된 핸들러를 실행시켜 기밀성과 무결성을 위협하는 공격이다.
논문에서는 먼저 SGX 인클레이브에서 예외 및 신호 처리 메커니즘을 분석한다. 이를 통해 7개의 SGX 런타임과 라이브러리 OS가 SIGY에 취약함을 밝힌다. 또한 C, C++, Java, Python, Go, JavaScript, Rust, Julia 등 8개 언어에서 신호 핸들러 등록 기능이 SIGY에 취약함을 확인한다.
이어서 SIGY를 이용해 Nginx, Node.js, 기계 학습 애플리케이션 등 4개의 오픈소스 SGX 애플리케이션에서 기밀 정보 유출과 실행 무결성 훼손을 보여준다. 공격자는 운영 체제를 통해 가짜 신호를 주입하여 애플리케이션의 등록된 신호 핸들러를 실행시킬 수 있다.
마지막으로 SIGY에 대한 소프트웨어 방어 기법을 제안하고, 향후 SGX 생태계 재설계의 필요성을 제기한다.
Statistik
사용자 프로그램은 하드웨어 예외와 신호를 처리하기 위해 특정 이벤트에 대한 핸들러를 등록한다.
인텔 SGX는 운영 체제가 신뢰할 수 없는 상황에서도 인클레이브의 기밀성과 무결성을 보장한다.
기존 프로그램은 SGX 인클레이브에서 실행되기 위해 수정이 필요하다.
SGX 런타임과 라이브러리 OS는 인클레이브에서 예외 및 신호 처리를 지원한다.
Citater
"사용자 프로그램은 예기치 않은 이벤트나 오류를 관리하기 위해 예외와 신호를 활용한다."
"인텔 SGX는 운영 체제와 다른 사용자 프로세스가 손상되어도 인클레이브의 기밀성과 무결성을 보장한다."
"기존 프로그램은 SGX 인클레이브에서 실행되기 위해 수정이 필요하다."