Kant's IT/Issue on IT&Security

Microsoft, VBS Enclave 보안 강화를 위한 기술 권고사항 발표

Kant Jo 2025. 3. 24. 15:30

Microsoft Strengthens Trust Boundary for VBS Enclaves

 

Microsoft Strengthens Trust Boundary for VBS Enclaves

Microsoft has introduced a series of technical recommendations to bolster the security of Virtualization-Based Security (VBS) enclaves.

gbhackers.com

 

  • VBS Enclave 개요
    • VBS(Virtualization-Based Security) Enclave는 하이퍼바이저의 가상 신뢰 수준(Virtual Trust Levels, VTL)을 활용하여 사용자 모드 프로세스 내에서 민감한 메모리 및 코드 실행을 격리
    • VTL1 Enclave는 VTL0 호스트 프로세스와 분리되어 있지만, Enclave는 호스트 메모리에 접근 가능 → 내부 신뢰 경계 문제 발생
    • 이를 통해 암호화 키와 같은 중요한 데이터를 고권한 사용자로부터도 보호 가능
  • Microsoft의 보안 설계 권고사항
    • 호스트 프로세스(VTL0)의 데이터 신뢰 금지
      • 호스트로부터 전달되는 포인터의 유효성 검증 필요
      • EnclaveGetEnclaveInformation API를 통해 메모리 경계 확인 권장
      • 호스트 구조체를 Enclave 내에서 복사 후 사용, TOCTOU(검사 시점-사용 시점) 취약점 예방
    • 재진입(Reentrancy) 방지
      • Enclave에서 호스트를 호출한 후 다시 Enclave로 진입하는 재귀 구조는 UAF(Use After Free), 동시성 문제 유발
      • CRITICAL_SECTION 대신 SRW Lock 사용 권장 → 재귀 락 방지
    • 민감정보의 안전한 생성 및 보관
      • 암호화 키 등 민감 데이터는 Enclave 내부에서 생성 후 외부 노출 금지
      • 외부 전송 시 Azure Attestation, Host Guardian Service 등 신뢰 기반 검증 후 통신 실시
    • 코딩 안전성 확보
      • VBS Enclave는 제한된 실행 환경을 가지므로 표준 기능 재구현 지양
      • 공식 지원 언어는 C이나, C++ 표준 라이브러리 또는 Rust 등 메모리 안전성 높은 언어 사용 권장
      • Rust의 Borrow Checker를 활용하면 포인터 오류, 메모리 누수 등 방지에 유리
  • 결론
    • Enclave 환경은 외부로부터는 보호되지만 내부 구조에 따른 보안 설계 오류 가능성 존재
    • 기존의 사용자-커널, 클라이언트-서버 모델과는 다른 내부 경계 기반의 보안 설계 사고 필요
    • Microsoft의 이번 권고는 TEE(Trusted Execution Environment) 확산에 따른 Enclave 개발자 보안 역량 제고의 일환
    • 향후 다양한 플랫폼과 보안 모듈에서 유사한 VTL 기반 신뢰 모델 도입 가능성이 높아지므로 표준화된 보안 패턴 수립 중요