Skip to main content
QUICK REVIEW

[논문 리뷰] DynSGX: A Privacy Preserving Toolset for Dynamically Loading Functions into Intel(R) SGX Enclaves

Rodolfo Silva, Pedro Barbosa|arXiv (Cornell University)|2017. 10. 31.
Security and Verification in Computing참고 문헌 12인용 수 4
한 줄 요약

DynSGX는 Intel SGX 에인클레이브에 함수를 동적으로 로드하고 언로드할 수 있도록 해주는 프라이버시 보장 도구세트로, 정적 링킹과 코드 가시성 제한을 극복한다. 이는 동적으로 로드된 코드를 에인클레이브 힙에 저장하여 프라이버시를 유지하면서도 전통적인 SGX에 비해 최소한의 성능 오버헤드를 유발한다. 다만, 캐시 경쟁으로 인해 재귀 함수의 경우 상당한 속도 저하가 발생한다.

ABSTRACT

Intel(R) Software Guard eXtensions (SGX) is a hardware-based technology for ensuring security of sensitive data from disclosure or modification that enables user-level applications to allocate protected areas of memory called enclaves. Such memory areas are cryptographically protected even from code running with higher privilege levels. This memory protection can be used to develop secure and dependable applications, but the technology has some limitations: ($i$) the code of an enclave is visible at load time, ($ii$) libraries used by the code must be statically linked, and ($iii$) the protected memory size is limited, demanding page swapping to be done when this limit is exceeded. We present DynSGX, a privacy preserving tool that enables users and developers to dynamically load and unload code to be executed inside SGX enclaves. Such a technology makes possible that developers use public cloud infrastructures to run applications based on sensitive code and data. Moreover, we present a series of experiments that assess how applications dynamically loaded by DynSGX perform in comparison to statically linked applications that disregard privacy of the enclave code at load time.

연구 동기 및 목표

  • Intel SGX의 정적 코드 링킹 및 로드 시점의 코드 가시성 제한을 해결하기 위해.
  • 개발자가 에인클레이브 생성 후에도 함수를 로드하고 언로드할 수 있도록 하여 메모리 관리 능력을 향상시키기 위해.
  • 정적 바이너리 분석을 방지함으로써 에인클레이브 코드의 프라이버시를 유지하기 위해.
  • 보안과 프라이버시를 유지하면서도 동적 로딩의 성능 오버헤드를 평가하기 위해.
  • 신뢰할 수 없는 클라우드 환경에서 민감한 애플리케이션을 구현하기 위한 실용적인 솔루션을 제공하기 위해.

제안 방법

  • DynSGX는 에인클레이브 힙에 코드를 동적으로 로드할 수 있도록 Intel SGX PSW를 수정한다.
  • 사용자 정의 로더를 사용하여 동적으로 로드된 함수를 에인클레이브의 보호된 메모리 공간에 매핑한다.
  • 도구세트는 런타임 동안 함수의 로딩과 언로딩을 지원하여 필요에 따라 코드를 실행할 수 있도록 한다.
  • 코드 무결성과 진위성을 보장하기 위해 Intel SGX의 원격 인증 기능을 활용한다.
  • 힙 기반 코드 실행을 지원하기 위해 수정된 버전의 Intel SGX SDK를 사용한다.
  • 기존의 SGX 프로그래밍 모델과 통합하면서도 하드웨어에 의해 보장되는 격리성을 유지한다.

실험 결과

연구 질문

  • RQ1코드 프라이버시를 훼손하지 않고도 SGX 에인클레이브에 함수를 동적으로 로드할 수 있는가?
  • RQ2정적 링킹 대비 동적으로 로드된 함수의 성능 오버헤드는 얼마나 되는가?
  • RQ3재귀 워크로드에서 DynSGX는 메모리 관리와 캐시 경쟁을 어떻게 처리하는가?
  • RQ4도구세트는 신뢰할 수 없는 클라우드 환경에서 안전하고 온디맨드 기반의 코드 배포를 지원할 수 있는가?
  • RQ5동적 에인클레이브 함수 로딩에서 프라이버시, 성능, 확장성 간의 상충 관계는 무엇인가?

주요 결과

  • DynSGX는 정적 링킹 대비 최소한의 성능 오버헤드로 에인클레이브에 함수의 동적 로딩과 언로딩을 성공적으로 구현한다.
  • 반복 알고리즘의 경우 성능 오버헤드가 중간 정도이며, 순수 SGX 대비 실행 시간이 10-15% 증가한다.
  • 재귀 함수, 예를 들어 recursive_fibonacci는 코드가 힙에 존재할 경우 명령어 및 데이터 캐시 경쟁으로 인해 상당한 성능 저하를 보인다.
  • 함수 코드가 런타임에 로드되므로 정적 바이너리 분석을 방지함으로써 코드 프라이버시를 유지한다.
  • 원격 인증 기능은 그대로 기능하여 로드된 코드가 진짜이고 수정되지 않았음을 보장한다.
  • SGX2는 동적 메모리 관리를 지원하지만 코드 프라이버시를 해결하지 못하므로, DynSGX는 프라이버시에 민감한 워크로드와 보완적으로 기능한다.

더 나은 연구,지금 바로 시작하세요

논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.

카드 등록 없음 · 무료 플랜 제공

이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.