Extensões de Kernel e sistema no macOS
O macOS 10.15 ou posterior permite que os desenvolvedores estendam os recursos do macOS ao instalar e gerenciar extensões do sistema que são executadas no espaço do usuário, e não no nível do kernel. Ao serem executadas no espaço do usuário, as extensões do sistema aumentam a estabilidade e a segurança do macOS. Mesmo que as kexts tenham acesso inerentemente completo a todo o sistema operacional, as extensões executadas no espaço do usuário recebem apenas os privilégios necessários para executar a função especificada.
As Extensões do sistema são compatíveis com gerenciamento robusto por meio do MDM, incluindo a possibilidade de permitir que todas as extensões de um desenvolvedor específico ou de um tipo específico (como extensões de rede) sejam carregadas sem a interação do usuário. Opcionalmente, o MDM pode impedir que os usuários aprovem o carregamento de suas próprias extensões do sistema.
Do macOS 11.3 ao macOS 11.6.4, fazer alterações em um perfil de extensões do sistema afeta diretamente o estado de uma extensão. Por exemplo, se uma extensão estiver com aprovação pendente e um perfil de configuração for enviado para permiti-la, a extensão poderá ser carregada. Por outro lado, se uma aprovação for revogada, a extensão do sistema será descarregada e marcada para remoção na próxima reinicialização do Mac. Se uma extensão do sistema tentar se descarregar, um diálogo de autenticação interativa aparece e solicita credenciais de administrador para autorizar o descarregamento.
No macOS 12.0.1 ou posterior, um dicionário no payload de Extensões do Sistema (chamado RemovableSystemExtension
) permite que um administrador do MDM especifique quais apps podem remover as próprias extensões do sistema. Não é necessário autenticação de um administrador local para remover as extensões do sistema. Esse recurso é especialmente útil para fornecedores que podem fornecer desinstaladores automatizados para seus apps.
Extensões do kernel
No macOS 11 ou posterior, se extensões de kernel de terceiros (kexts) estiverem habilitadas, elas não poderão ser carregadas no kernel sob demanda. Elas requerem a aprovação do usuário e a reinicialização do macOS para carregar as alterações no kernel. Requerem também que a inicialização segura seja configurada para Segurança Reduzida em um Mac com Apple silicon.
Os desenvolvedores podem usar estruturas como DriverKit e NetworkExtension para gravar em drivers de interface humana e USB, ferramentas de segurança de ponto final (como prevenção de perda de dados ou outros agentes de ponto final) e ferramentas de rede e VPN, tudo sem a necessidade de gravar kexts. Agentes de segurança de terceiros devem ser usados apenas se utilizarem essas APIs ou tiverem um roteiro robusto para fazer a transição para elas, afastando-se das extensões do kernel.
Importante: as kexts não são mais recomendadas para macOS. As kexts arriscam a integridade e confiabilidade do sistema operacional. Os usuários devem preferir soluções que não exijam extensões de kernel e usar extensões do sistema.
Adição de kexts em um Mac com processador Intel ou Apple Silicon com macOS 11 ou posterior
Se você precisar usar extensões de kernel, consulte os métodos de aprovação de acordo com o tipo de registro.
Tipo de registro de MDM | Método de aprovação | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Não registrado Registro de Usuário | Quando uma kext nova é instalada e é feita uma tentativa de carregá-la, o usuário deve fazer a reinicialização a partir da caixa de diálogo de aviso em:
Esta reinicialização inicia a reconstrução do AuxKC antes da inicialização do kernel. | ||||||||||
Registro de Dispositivo Registro de Dispositivo Automatizado | Sempre que uma kext nova é instalada e é feita uma tentativa de carregá-la, a reinicialização deve ser feita de uma das formas a seguir:
Nota: um perfil de lista de permissões kext deve primeiro ser instalado pela solução MDM especificando a kext. O macOS 11.3 ou posterior permite, opcionalmente, que o MDM notifique o usuário para concluir a reinicialização quando lhe for conveniente. |
Passos complementares para adicionar kexts em um Mac com Apple Silicon
Se estiver adicionando extensões de kernel a um Mac com Apple Silicon, você deve realizar etapas adicionais.
Tipo de registro de MDM | Método de aprovação | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Não registrado | O gerenciamento de kext pelo usuário requer a reinicialização pelo recoveryOS para fazer o downgrade dos ajustes de segurança. O usuário deve manter o botão ligar/desligar pressionado para reiniciar pelo recoveryOS e fazer a autenticação como administrador. O Secure Enclave aceitará a mudança de política apenas se a entrada pelo recoveryOS for feita através do botão ligar/desligar. O usuário deve marcar a caixa de seleção Segurança Reduzida e a opção “Permitir o gerenciamento de usuário das extensões de kernel de desenvolvedores identificados” e reiniciar o Mac. | ||||||||||
Registro de Usuário | O usuário deve reiniciar pelo recoveryOS para fazer o downgrade dos ajustes de segurança. O usuário deve manter o botão de força pressionado para reiniciar no recoveryOS e autenticar como administrador local. O Secure Enclave aceitará a mudança de política apenas se a entrada pelo recoveryOS for feita através do botão ligar/desligar. O usuário deve selecionar Segurança Reduzida, marcar “Permitir o gerenciamento de usuário das extensões de kernel de desenvolvedores identificados” e reiniciar o Mac. | ||||||||||
Registro de Dispositivo | A solução MDM deve notificar o usuário que ele deve reiniciar pelo recoveryOS para fazer o downgrade dos ajustes de segurança. O usuário deve manter o botão ligar/desligar pressionado para reiniciar pelo recoveryOS e fazer a autenticação como administrador. O Secure Enclave aceitará a mudança de política apenas se a entrada pelo recoveryOS for feita através do botão ligar/desligar. O usuário deve selecionar Segurança Reduzida, marcar “Permitir o gerenciamento remoto de extensões de kernel e atualizações automáticas de software” e reiniciar o Mac. Para saber se este recurso é compatível com os seus dispositivos, confira a documentação do fornecedor do MDM. | ||||||||||
Registro de Dispositivo Automatizado (O número de série do Mac deve aparecer no Apple School Manager, Apple Business Manager ou Apple Business Essentials e o Mac deve estar registrado em uma solução MDM vinculada ao serviço.) | As soluções MDM podem gerenciar isso automaticamente. Para saber se este recurso é compatível com os seus dispositivos, confira a documentação do fornecedor do MDM. |
Extensões de Kernel com Proteção da Integridade do Sistema
Se a Proteção da Integridade do Sistema (SIP) estiver ativada, a assinatura de cada kext é verificada antes de ser incluída no AuxKC.
Se a SIP estiver desativada, a assinatura da kext não é imposta.
Essa abordagem permite fluxos de Segurança Permissiva para que desenvolvedores e usuários que não fazem parte do Apple Developer Program testem as kexts antes de serem assinadas.