1P by GN⁺ 28일전 | ★ favorite | 댓글 1개

모놀리식 운영체제 커널의 문제점

  • 현대 운영 체제는 일반적으로 두 가지 주요 보호 도메인으로 나뉨:
    • 비특권 도메인(유저 모드): 프로그램이 파일 액세스, 네트워크 통신 등 강력한 작업을 직접 수행할 수 없음
    • 특권 도메인(커널 모드): 시스템 호출을 통해 프로그램이 커널에 작업 수행을 요청하면, 커널 코드가 해당 작업을 수행 후 유저 모드에 결과 반환
  • 대부분의 운영 체제는 모놀리식 커널 설계를 사용함:
    • 커널이 시스템의 모든 하드웨어, 메모리, 사용자 데이터에 대한 무제한 액세스 권한 보유
    • 소프트웨어에 결함이 없고 보안 침해 시도가 없다면 괜찮겠지만, 실제로는 버그와 보안 취약점이 존재함
    • 모놀리식 커널의 크기가 크기 때문에 보안 취약점이 발생할 가능성이 높고, 하나의 취약점이 전체 시스템 손상으로 이어질 위험 존재
  • 마이크로커널 설계는 보안을 강화하기 위해 커널에서 대부분의 기능을 제거하고, 별도의 비특권 프로세스로 처리함:
    • 보안 강화 가능
    • 성능 저하 및 애플리케이션 소프트웨어 복잡성 증가 문제 발생 가능
    • 그럼에도 불구하고 성능상의 장점 때문에 모놀리식 커널이 여전히 널리 사용됨
  • 애플의 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 EnclaveSecure 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의 주요 보안 모델 개편

    • M4A18 프로세서를 지원하는 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 WorldInsecure World 간 전환에 대한 언급 다수 발견
        • 애플은 TrustZone에서 제안하는 Trusted Application 모델 대신 엑스클레이브 서비스 모델 적용
      • SK는 격리된 환경에서 엑스클레이브 서비스 및 자원을 제공 → 보안 강화
        • Secure World에서 Insecure World로 탈출해 XNU를 침해하기는 매우 어려울 것으로 예상
    • RINGGATE
      • 애플이 SPTM을 사용해 Secure World ↔ Insecure World 전환 관리 가능성 존재
      • 코드에서 이 전환이 **"RINGGATE"**로 언급됨

결론

  • 엑스클레이브 도입의 의미
    • 고급 위협 행위자들의 지속적인 공격에 대응하기 위해 애플은 엑스클레이브를 도입해 운영 체제의 보안 수준을 강화
    • 민감한 리소스를 격리함으로써 다음과 같은 효과 기대:
      • 공격 표면 축소
      • 단일 커널 취약점의 영향 감소
  • 모놀리식 커널 방어는 끝없는 도전이며, 엑스클레이브는 이를 해결하기 위한 하나의 접근 방식
    • 장기적으로 옳은 방향인지, 혹은 임시 방편인지 불확실
    • 개인적인 희망 → 미래에 CHERIARM 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이 없기 때문임