모놀리식 운영체제 커널의 문제점
- 현대 운영체제는 주로 두 가지 보호 도메인으로 나뉨: 비특권 도메인(사용자 모드)과 특권 도메인(커널 모드).
- 대부분의 소프트웨어는 사용자 모드에서 실행되며, 강력한 작업을 수행하기 위해 커널 모드로 전환해야 함.
- 모놀리식 커널 디자인은 커널이 시스템 전체에 대한 무제한 접근 권한을 가짐.
- 소프트웨어의 결함과 보안 취약점으로 인해 모놀리식 커널은 보안 문제가 발생할 수 있음.
- 마이크로커널은 커널 내 기능을 최소화하여 보안을 강화할 수 있지만, 성능 문제와 복잡성을 초래할 수 있음.
- XNU 커널은 마이크로커널 기반이지만, 사실상 모놀리식 커널로 작동함.
격리 노력
- 다양한 소프트웨어 및 하드웨어 기반의 격리 기술이 개발됨.
- Microsoft의 가상화 기반 보안(VBS), Intel의 SGX 및 VT-X2, ARM의 TrustZone 등이 있음.
- Apple은 데이터 격리를 위해 Secure Enclave, Page Protection Layer, Secure Page Table Monitor 등을 도입함.
2013 — Apple Secure Enclave
- iPhone 5s에 처음 도입된 Secure Enclave는 민감한 데이터를 보호하기 위해 사용됨.
- Secure Enclave는 iOS 커널과 독립적으로 작동하며, 커널이 손상되더라도 영향을 받지 않음.
2017 — 페이지 보호 레이어
- iPhone 8과 iPhone X에 도입된 Page Protection Layer(PPL)는 커널의 일부를 격리하여 메모리 페이지 테이블을 수정할 수 있는 권한을 부여함.
- PPL은 공격 표면을 줄였지만, 커널의 나머지 부분은 여전히 많은 권한을 보유함.
2021–2023 — 보안 페이지 테이블 모니터
- iPhone 13의 A15 프로세서에 도입된 Secure Page Table Monitor(SPTM)는 메모리 기능을 추가로 보호하고 작은 커널 구성 요소를 격리함.
- 이 시기에 XNU 소스 코드에서 exclaves에 대한 언급이 등장하기 시작함.
2024 — XNU의 주요 추가 기능: Exclaves
- M4 및 A18 기반 시스템을 지원하는 XNU 소스 코드가 공개되면서 exclaves의 일부가 드러남.
- Exclaves는 XNU의 전통적인 모놀리식 커널을 크게 개선하는 새로운 기능 세트임.
XNU Exclaves
- Exclaves는 XNU에서 격리된 리소스를 나타내며, 커널이 손상되더라도 보호됨.
- 리소스는 OS가 빌드될 때 미리 정의되며, 부팅 시 초기화되고 고유한 도메인으로 구성됨.
- 리소스 유형에는 공유 메모리 버퍼, 오디오 버퍼, 센서, Conclaves 등이 포함됨.
보안 커널 — seL4?
- Exclave 서비스를 XNU로부터 격리하여 실행할 수 있도록 Apple은 Secure Kernel(SK)을 도입함.
- SK는 seL4 커널을 기반으로 하는 것으로 보이며, XNU와의 IPC 구조가 seL4와 유사함.
보안 세계 — ARM TrustZone?
- SK는 XNU/iOS와 동일한 고속 애플리케이션 프로세서에서 실행됨.
- ARM의 TrustZone 기술을 통해 추가 프로세서 특권 수준이 필요함.
- TrustZone은 시스템을 보안 세계와 비보안 세계로 나누며, XNU는 비보안 세계에서, SK는 보안 세계에서 작동함.
결론
- Apple의 Exclaves 구현은 운영 체제에 추가적인 방어를 제공하기 위한 큰 투자임.
- 민감한 리소스를 격리함으로써 공격 표면을 줄이고 커널 손상의 영향을 최소화함.
- Exclaves는 장기적인 방향인지, 임시적인 단계인지는 불확실하지만, 현재 다른 제조업체보다 큰 규모의 방어 노력을 기울이고 있음.