Apple Exclaves에 관하여
(randomaugustine.medium.com)모놀리식 운영체제 커널의 문제점
- 현대 운영 체제는 일반적으로 두 가지 주요 보호 도메인으로 나뉨:
- 비특권 도메인(유저 모드): 프로그램이 파일 액세스, 네트워크 통신 등 강력한 작업을 직접 수행할 수 없음
- 특권 도메인(커널 모드): 시스템 호출을 통해 프로그램이 커널에 작업 수행을 요청하면, 커널 코드가 해당 작업을 수행 후 유저 모드에 결과 반환
- 대부분의 운영 체제는 모놀리식 커널 설계를 사용함:
- 커널이 시스템의 모든 하드웨어, 메모리, 사용자 데이터에 대한 무제한 액세스 권한 보유
- 소프트웨어에 결함이 없고 보안 침해 시도가 없다면 괜찮겠지만, 실제로는 버그와 보안 취약점이 존재함
- 모놀리식 커널의 크기가 크기 때문에 보안 취약점이 발생할 가능성이 높고, 하나의 취약점이 전체 시스템 손상으로 이어질 위험 존재
-
마이크로커널 설계는 보안을 강화하기 위해 커널에서 대부분의 기능을 제거하고, 별도의 비특권 프로세스로 처리함:
- 보안 강화 가능
- 성능 저하 및 애플리케이션 소프트웨어 복잡성 증가 문제 발생 가능
- 그럼에도 불구하고 성능상의 장점 때문에 모놀리식 커널이 여전히 널리 사용됨
- 애플의 XNU 커널:
- iOS, macOS, tvOS, visionOS, watchOS에서 공통으로 사용되는 커널
- Mach 기반 마이크로커널이지만, 대부분의 시스템 기능이 동일한 특권 범위에서 실행되기 때문에 사실상 모놀리식 커널처럼 작동함
- 따라서 모놀리식 커널과 동일한 보안 취약점이 발생 가능함
격리 노력
- 소프트웨어 및 하드웨어 기반 격리 기술 도입이 다양하게 시도됨 :
- Microsoft Virtualisation-based Security (VBS) – Windows의 Credential Guard에서 사용됨
- Intel Software Guard Extension (SGX) 및 VT-X2
- ARM TrustZone – Samsung Knox, Samsung Pay, Android Verified Boot, Android 보안 PIN 입력 등에서 사용됨
애플도 커널에서 데이터를 분리하려는 시도를 점차 확대해 왔음
-
2013 — Apple Secure Enclave
- 2013년 iPhone 5s에서 최초 도입
-
Secure Enclave는 독립된 강화된 CPU 코어에서 실행되며, 마이크로커널 기반 OS인 SepOS에서 동작
- SepOS의 커널은 애플의 커스텀 L4 임베디드 마이크로커널인 cL4 사용
- 암호화 키 및 생체 정보(예: Face ID)와 같은 민감한 데이터를 저장하고 보호
- iOS 커널에서 독립적으로 동작하며 보안된 상호작용을 통해서만 iOS에 서비스 제공
- iOS 커널이 침해되더라도 추가적인 익스플로잇이 발생하지 않는 한 Secure Enclave는 영향을 받지 않음
- Secure Enclave와 Secure Exclave는 다른 개념임에 주의
-
2017 — 페이지 보호 레이어 (Page Protection Layer, PPL)
- iPhone 8 및 iPhone X의 A11 프로세서에서 도입된 보안 기능
- 하드웨어 + 소프트웨어 기반 기능으로, 커널의 특정 부분에만 메모리 페이지 테이블 수정 권한 부여
- 나머지 커널은 페이지 테이블 수정 권한이 제한됨
- 공격 표면이 작아져 우회 시도가 드물어짐
- PPL은 보호 레이어를 추가했지만, 여전히 커널의 대부분의 권한은 유지되어 완전한 보안 강화에는 한계가 있었음
-
2021–2023 — 보안 페이지 테이블 모니터 (Secure Page Table Monitor, SPTM)
- iPhone 13의 A15 프로세서 및 iOS 17에서 도입된 새로운 기능
- PPL을 대체하고 추가적인 메모리 기능을 보호하며, 이를 여러 하위 시스템으로 분리
- 코드 서명 검증 및 애플에 의해 서명된 코드만 실행되도록 보안 강화
- 이 시기에 XNU 소스 코드에서 exclave에 대한 간접적인 언급 등장
- SPTM이 관리하는 하위 시스템이 exclave일 가능성 제기됨
-
2024 — 엑스클레이브: XNU의 주요 보안 모델 개편
- M4 및 A18 프로세서를 지원하는 XNU 소스 코드에서 엑스클레이브 개념 등장
- 이전 프로세서에서는 엑스클레이브가 활성화되지 않음
- 엑스클레이브는 XNU의 보안 모델을 대대적으로 재설계한 결과물임이 명확해짐
-
XNU 엑스클레이브
면책 사항: 엑스클레이브의 내부 구조는 완전히 오픈소스가 아니므로 일부 내용은 추측이나 해석일 수 있음
- 엑스클레이브는 XNU의 기존 모놀리식 커널 보안 모델을 대폭 강화한 새로운 기능 집합
- 엑스클레이브는 XNU에서 격리된 자원으로, 커널이 손상되더라도 보호됨
- 엑스클레이브의 특성:
- OS 빌드 시 미리 정의됨
- 이름 또는 ID로 식별됨
- 다양한 유형으로 구성됨
- 부팅 시 초기화됨
- 독립된 도메인으로 조직화됨
- SPTM이 새로운 엑스클레이브 전용 페이지 타입으로 엑스클레이브 메모리 보호
- 엑스클레이브 자원 유형
-
공유 메모리 버퍼 – 커널과 엑스클레이브에서 모두 접근 가능
- XNU에서 읽기 전용 또는 읽기/쓰기 설정 가능
- 오디오 버퍼 및 센서 – 카메라 및 마이크 접근 표시 보안 강화
- Conclave – 여러 자원을 자체 보안 도메인으로 그룹화하며, 이를 관리하는 Conclave Manager 존재
- 서비스 – XNU의 스레드가 호출할 때 엑스클레이브에서 코드 실행
-
공유 메모리 버퍼 – 커널과 엑스클레이브에서 모두 접근 가능
-
보안 커널 — seL4 기반?
- 엑스클레이브 서비스가 XNU에서 독립적으로 실행되기 위해 새로운 커널 Secure Kernel (SK) 도입
- SK 이미지 파일에서 "cL4" 버전 문자열 확인됨
- SK는 애플의 기존 cL4 (L4 기반) 커널이 아닌 seL4 기반일 가능성이 높음
- XNU가 SK와 통신 시 사용하는 IPC 구조가 seL4의 구조와 유사
- SK에서 사용되는 문자열에서 seL4에서 사용하는 개념(예: capabilities, frames, untyped memory 등) 다수 발견됨
- 애플이 2024년 4월 seL4 Foundation에 합류한 것은 우연이 아닐 수 있음
- C1 프로세서(애플의 새로운 베이스밴드 칩)의 커널도 L4 기반으로 보임
-
보안 월드 — ARM TrustZone?
- SepOS는 별도의 프로세서에서 실행되며, SK는 고속 애플리케이션 프로세서에서 실행됨
- 이를 위해 추가적인 프로세서 특권 수준 필요 → 다음 중 하나로 구현될 가능성 존재:
- 가상화 확장 지원
- 애플의 SPTM 확장
- ARM TrustZone 기술 활용 가능성이 가장 높음
- TrustZone 구조
- 시스템을 두 개의 월드로 분리:
- Secure World – 보안 코드 실행
- Insecure World – 일반 코드 실행 (XNU 및 iOS 실행)
- XNU 소스 코드에서 TrustZone의 Secure World 및 Insecure World 간 전환에 대한 언급 다수 발견
- 애플은 TrustZone에서 제안하는 Trusted Application 모델 대신 엑스클레이브 서비스 모델 적용
- SK는 격리된 환경에서 엑스클레이브 서비스 및 자원을 제공 → 보안 강화
- Secure World에서 Insecure World로 탈출해 XNU를 침해하기는 매우 어려울 것으로 예상
- 시스템을 두 개의 월드로 분리:
-
RINGGATE
- 애플이 SPTM을 사용해 Secure World ↔ Insecure World 전환 관리 가능성 존재
- 코드에서 이 전환이 **"RINGGATE"**로 언급됨
결론
-
엑스클레이브 도입의 의미
- 고급 위협 행위자들의 지속적인 공격에 대응하기 위해 애플은 엑스클레이브를 도입해 운영 체제의 보안 수준을 강화
- 민감한 리소스를 격리함으로써 다음과 같은 효과 기대:
- 공격 표면 축소
- 단일 커널 취약점의 영향 감소
- 모놀리식 커널 방어는 끝없는 도전이며, 엑스클레이브는 이를 해결하기 위한 하나의 접근 방식
- 장기적으로 옳은 방향인지, 혹은 임시 방편인지 불확실
- 개인적인 희망 → 미래에 CHERI 및 ARM Morello 기반 재설계 기대 😊
- 그러나 현재로서는 소비자 기기 제조업체 중 가장 큰 방어 시도
- 이 글에서는 구체적으로 어떤 컴포넌트가 엑스클레이브로 이동되었는지 명확히 다루지는 않았음
- 빌드 이미지를 통해 다음과 같은 요소가 엑스클레이브에서 실행되는 것으로 보임:
- 보안 카메라/마이크 표시기
- Apple Neural Engine(ANE) 기능 일부
- 일부 디바이스 드라이버
- Secure Enclave와의 통신 컴포넌트
- 빌드 이미지를 통해 다음과 같은 요소가 엑스클레이브에서 실행되는 것으로 보임:
- 앞으로 더 많은 컴포넌트가 엑스클레이브로 이전될 가능성 존재
- 엑스클레이브의 보안 효과는 이러한 이전 작업의 최적화 수준에 달려 있음
- 엑스클레이브가 Apple Private Cloud Compute 인프라에서 사용될 가능성 있음
- 클라우드 기반 AI에서 높은 수준의 보안 및 프라이버시 보장 가능
Hacker News 의견
- Apple의 최신 SoC는 중첩 가상화를 지원하며, M4 iPad Pro에서는 카메라 LED를 위한 exclave가 사용됨
- Apple Platform Security 가이드의 다음 개정판에서 SK exclave와 Wi-Fi 레이더 감지를 위한 기지국 완화에 대해 다루기를 희망함
- SPTM에 대한 Apple의 특정 추가 사항이 있음
- XNU는 마이크로 커널 영감을 받은 아키텍처로 리팩토링 중이며, 코드 베이스를 줄이고 보안 민감 작업을 분리하려고 함
- 메모리 공간 격리는 Secure Page Table Monitor(SPTM)의 도움으로 수행됨
- 코드 서명, 권한 검증, 개발자 모드, 제한 실행 모드 등 보안 민감 작업은 Trusted eXecution Monitor(TXM)에 의해 처리됨
- ARM의 TrustZone 기술을 통해 수행될 가능성이 높음
- XNU 소스 코드에는 TrustZone의 보안 세계 개념으로의 전환에 대한 여러 참조가 포함됨
- 150개 이상의 TrustZone CVE가 존재함
- Google은 몇 년 전 Pixel에 하드웨어 중첩 가상화를 사용하여 pKVM을 구현하고, 코드를 Linux 메인라인에 업스트림함
- 그러나 Debian "Linux Terminal" VM 외에는 pKVM/AVF를 사용하는 방어 기능을 발표하지 않음
- Steve는 노트북이 일기장이라고 믿었으며, 이에 대한 책임이 있다고 생각했음
- Tim이 Steve의 신념을 공유하지 않았다면 CEO가 되지 않았을 것임
- Steve가 그립다는 의견이 있음
- Apple은 XNU 커널을 exclave로 재구성함
- 이 글의 작성자는 매우 정교하고 잘 작성된 글을 썼음
- exclave를 따라온 사람으로서 잘 작성되었다고 생각함
- 이 수준의 지식에 익숙하지 않지만, enclave 자체를 공격하여 커널보다 높은 권한을 획득할 수 있는지 궁금함
- 이 하드웨어가 공동 프로세서와 같은 것인지 궁금함
- macOS 보안에 미칠 영향이 궁금함
- Apple 문서에 따르면 SPTM이 사용되지 않음
- 현재 카메라 표시기를 표시하는 exclave는 macOS에 적용되지 않지만, 미래에는 적용될 수 있음
- Apple은 그들의 "플랜테이션"을 보호하는 데 뛰어남
- 그러나 그들로부터 자신을 보호하는 것은 무엇인지 궁금함
- "마지막 geohot"의 가능성을 생각해본 적이 있는지 물음
- Apple이 SPTM을 사용하여 보안 세계와 비보안 세계 간의 전환을 관리할 수 있음
- TrustZone이 없기 때문임