1 pontos por GN⁺ 2025-03-10 | 1 comentários | Compartilhar no WhatsApp

Problemas dos kernels monolíticos de sistemas operacionais

  • Os sistemas operacionais modernos geralmente são divididos em dois domínios principais de proteção:
    • Domínio sem privilégio (modo de usuário): programas não podem executar diretamente tarefas sensíveis, como acesso a arquivos e comunicação de rede
    • Domínio privilegiado (modo kernel): quando um programa solicita ao kernel, por meio de uma chamada de sistema, que execute uma tarefa, o código do kernel a realiza e depois retorna o resultado ao modo de usuário
  • A maioria dos sistemas operacionais usa um design de kernel monolítico:
    • O kernel tem acesso irrestrito a todo o hardware, memória e dados do usuário do sistema
    • Isso seria aceitável se o software não tivesse falhas e não houvesse tentativas de invasão, mas na prática existem bugs e vulnerabilidades de segurança
    • Como kernels monolíticos são grandes, a chance de surgirem vulnerabilidades é maior, e uma única falha pode comprometer todo o sistema
  • O design de microkernel remove a maior parte das funções do kernel para reforçar a segurança, tratando-as em processos separados sem privilégio:
    • Pode aumentar a segurança
    • Pode causar perda de desempenho e aumento da complexidade do software de aplicações
    • Ainda assim, kernels monolíticos continuam amplamente usados por causa de suas vantagens de desempenho
  • O kernel XNU da Apple:
    • É o kernel usado em comum por iOS, macOS, tvOS, visionOS e watchOS
    • Embora seja um microkernel baseado em Mach, na prática ele funciona como um kernel monolítico, porque a maioria das funções do sistema roda sob o mesmo escopo de privilégio
    • Portanto, está sujeito às mesmas vulnerabilidades de segurança de um kernel monolítico

Esforços de isolamento

  • Várias técnicas de isolamento baseadas em software e hardware vêm sendo adotadas:
    • Microsoft Virtualisation-based Security (VBS) – usada no Credential Guard do Windows
    • Intel Software Guard Extension (SGX) e VT-X2
    • ARM TrustZone – usado em Samsung Knox, Samsung Pay, Android Verified Boot, entrada de PIN de segurança no Android etc.

A Apple também vem ampliando gradualmente suas tentativas de separar dados do kernel

  • 2013 — Apple Secure Enclave

    • Introduzido pela primeira vez no iPhone 5s em 2013
    • O Secure Enclave roda em um núcleo de CPU independente e reforçado, operando sobre o SepOS, um sistema operacional baseado em microkernel
      • O kernel do SepOS usa o cL4, microkernel embarcado L4 customizado da Apple
      • Armazena e protege dados sensíveis, como chaves criptográficas e informações biométricas (por exemplo, Face ID)
      • Opera independentemente do kernel do iOS e só fornece serviços ao iOS por meio de interações seguras
      • Mesmo que o kernel do iOS seja comprometido, o Secure Enclave não é afetado, a menos que ocorra um exploit adicional
    • Observe que Secure Enclave e Secure Exclave são conceitos diferentes
  • 2017 — Page Protection Layer (PPL)

    • Recurso de segurança introduzido no processador A11 do iPhone 8 e do iPhone X
    • Recurso baseado em hardware + software que concede permissão para modificar tabelas de páginas de memória apenas a partes específicas do kernel
      • O restante do kernel tem a permissão de modificação das tabelas de páginas restrita
      • A superfície de ataque fica menor, tornando tentativas de bypass mais raras
    • O PPL adicionou uma camada de proteção, mas a maior parte dos privilégios do kernel ainda foi mantida, o que limitava um reforço completo de segurança
  • 2021–2023 — Secure Page Table Monitor (SPTM)

    • Novo recurso introduzido com o processador A15 do iPhone 13 e o iOS 17
    • Substitui o PPL, protege recursos adicionais de memória e os separa em vários subsistemas
    • Reforça a segurança com verificação de assinatura de código e execução apenas de código assinado pela Apple
    • Nesse período, começaram a aparecer referências indiretas a exclave no código-fonte do XNU
      • Surgiu a possibilidade de que os subsistemas gerenciados pelo SPTM sejam exclaves
  • 2024 — Exclaves: grande reformulação do modelo de segurança do XNU

    • O conceito de exclave aparece no código-fonte do XNU com suporte aos processadores M4 e A18
    • Em processadores anteriores, os exclaves não são ativados
    • Fica claro que os exclaves são resultado de uma grande reformulação do modelo de segurança do XNU
  • Exclaves do XNU

    Aviso: a estrutura interna dos exclaves não é totalmente open source, então parte do conteúdo pode ser especulação ou interpretação

    • Os exclaves são um novo conjunto de recursos que reforça fortemente o modelo de segurança tradicional de kernel monolítico do XNU
    • Exclaves são recursos isolados do XNU, protegidos mesmo que o kernel seja comprometido
    • Características dos exclaves:
      • São pré-definidos no momento da build do sistema operacional
      • São identificados por nome ou ID
      • São compostos por vários tipos
      • São inicializados na inicialização do sistema
      • São organizados em domínios independentes
      • O SPTM protege a memória dos exclaves com um novo tipo de página dedicado a exclaves
    • Tipos de recursos de exclave
      • Buffers de memória compartilhada – acessíveis tanto pelo kernel quanto pelo exclave
        • No XNU, podem ser configurados como somente leitura ou leitura/gravação
      • Buffers de áudio e sensores – reforçam a segurança dos indicadores de acesso à câmera e ao microfone
      • Conclave – agrupa vários recursos em seu próprio domínio de segurança, com a existência de um Conclave Manager para gerenciá-los
      • Serviços – executam código no exclave quando chamados por threads do XNU
  • Kernel seguro — baseado em seL4?

    • Para que os serviços de exclave rodem independentemente do XNU, foi introduzido um novo kernel chamado Secure Kernel (SK)
    • Uma string de versão cL4 foi encontrada no arquivo de imagem do SK
    • É mais provável que o SK seja baseado em seL4 do que no antigo kernel cL4 (baseado em L4) da Apple
      • A estrutura de IPC usada pelo XNU para se comunicar com o SK é semelhante à do seL4
      • Nas strings usadas pelo SK, foram encontrados vários conceitos usados no seL4 (por exemplo, capabilities, frames, untyped memory etc.)
    • O fato de a Apple ter se juntado à seL4 Foundation em abril de 2024 pode não ser coincidência
      • O kernel do processador C1 (o novo chip de baseband da Apple) também parece ser baseado em L4
  • Mundo seguro — ARM TrustZone?

    • O SepOS roda em um processador separado, enquanto o SK roda no processador principal de aplicações de alta velocidade
    • Isso exige um nível adicional de privilégio do processador → pode ser implementado de uma destas formas:
      • Suporte a extensões de virtualização
      • Extensões SPTM da Apple
      • O mais provável é o uso da tecnologia ARM TrustZone
    • Estrutura do TrustZone
      • Divide o sistema em dois mundos:
        • Secure World – execução de código seguro
        • Insecure World – execução de código normal (onde rodam XNU e iOS)
      • No código-fonte do XNU, foram encontradas várias referências à alternância entre Secure World e Insecure World do TrustZone
        • A Apple aplica o modelo de serviços de exclave em vez do modelo de Trusted Application proposto pelo TrustZone
      • O SK fornece serviços e recursos de exclave em um ambiente isolado → reforço de segurança
        • Espera-se que seja muito difícil escapar do Secure World para o Insecure World e comprometer o XNU
    • RINGGATE
      • Há a possibilidade de a Apple usar o SPTM para gerenciar a transição entre Secure World ↔ Insecure World
      • No código, essa transição é mencionada como "RINGGATE"

Conclusão

  • O significado da introdução dos exclaves
    • Para responder a ataques contínuos de agentes de ameaça avançados, a Apple introduziu os exclaves para reforçar o nível de segurança do sistema operacional
    • Ao isolar recursos sensíveis, espera-se obter os seguintes efeitos:
      • Redução da superfície de ataque
      • Redução do impacto de uma única vulnerabilidade no kernel
  • Defender um kernel monolítico é um desafio sem fim, e os exclaves são uma das abordagens para lidar com isso
    • Não está claro se essa é a direção certa no longo prazo ou apenas uma solução temporária
    • Esperança pessoal → uma futura reformulação baseada em CHERI e ARM Morello 😊
    • Mas, no momento, esta é a maior tentativa de defesa entre fabricantes de dispositivos de consumo
  • Este texto não aborda com clareza exatamente quais componentes foram movidos para exclaves
    • Pelas imagens de build, os seguintes elementos parecem estar rodando em exclaves:
      • Indicadores seguros de câmera/microfone
      • Parte das funções do Apple Neural Engine (ANE)
      • Alguns drivers de dispositivo
      • Componentes de comunicação com o Secure Enclave
  • Existe a possibilidade de que mais componentes sejam migrados para exclaves no futuro
    • O efeito de segurança dos exclaves depende do nível de otimização desse trabalho de migração
  • Há a possibilidade de os exclaves serem usados na infraestrutura do Apple Private Cloud Compute
    • Possível garantia de alto nível de segurança e privacidade em IA baseada em nuvem

1 comentários

 
GN⁺ 2025-03-10
Comentários no Hacker News
  • Os SoCs mais recentes da Apple oferecem suporte a virtualização aninhada, e no M4 iPad Pro um exclave é usado para o LED da câmera
    • Espera-se que a próxima revisão do guia Apple Platform Security trate do exclave SK e da mitigação da banda base para detecção de radar Wi‑Fi
  • Há adições específicas da Apple ao SPTM
    • O XNU está sendo refatorado para uma arquitetura inspirada em microkernel, com o objetivo de reduzir a base de código e separar tarefas sensíveis à segurança
    • O isolamento do espaço de memória é realizado com a ajuda do Secure Page Table Monitor (SPTM)
    • Tarefas sensíveis à segurança, como assinatura de código, verificação de permissões, modo de desenvolvedor e modo de execução restrita, são tratadas pelo Trusted eXecution Monitor (TXM)
  • É muito provável que isso seja feito por meio da tecnologia TrustZone da ARM
    • O código-fonte do XNU inclui várias referências à transição para o conceito de mundo seguro do TrustZone
    • Existem mais de 150 CVEs do TrustZone
  • Há alguns anos, o Google implementou o pKVM no Pixel usando virtualização aninhada em hardware e enviou o código para o mainline do Linux
    • No entanto, além da VM Debian "Linux Terminal", não anunciou defesas usando pKVM/AVF
  • Steve acreditava que um laptop era um diário e achava que tinha responsabilidade sobre isso
    • Se Tim não compartilhasse a crença de Steve, não teria se tornado CEO
    • Há quem diga sentir falta de Steve
  • A Apple está reestruturando o kernel XNU em exclaves
    • O autor deste texto escreveu um artigo muito sofisticado e bem escrito
    • Como alguém que acompanha exclaves, considera que está muito bem escrito
  • Não estou acostumado com esse nível de conhecimento, mas fico me perguntando se seria possível atacar o próprio enclave para obter privilégios mais altos que os do kernel
    • Também me pergunto se esse hardware é algo como um coprocessador
  • Fico curioso sobre o impacto que isso terá na segurança do macOS
    • Segundo a documentação da Apple, o SPTM não é usado
    • O exclave atual que exibe o indicador da câmera não se aplica ao macOS, mas pode vir a se aplicar no futuro
  • A Apple é excelente em proteger sua "plantation"
    • Mas fico me perguntando o que protege os usuários dela
    • Pergunta-se se alguém já pensou na possibilidade de um "último geohot"
  • A Apple pode usar o SPTM para gerenciar a transição entre o mundo seguro e o mundo não seguro
    • Porque não há TrustZone