Extensões do kernel e do sistema no macOS
O macOS 10.15 ou posterior permite que os programadores ampliem as capacidades do macOS ao instalar e gerir extensões do sistema que são executadas no espaço do utilizador em vez de serem executadas ao nível do kernel. Ao serem executadas no espaço do utilizador, as extensões do sistema aumentam a estabilidade e segurança do macOS. Embora as kexts tenham inerentemente acesso total a todo o sistema operativo, as extensões que são executadas no espaço do utilizador recebem apenas os privilégios necessários para executar a função específica.
As extensões do sistema suportam um gestão robusta através de MDM, incluindo a capacidade de permitir que todas as extensões de um programador específico ou de um tipo específico (como extensões de rede) carreguem sem a interação do utilizador. Opcionalmente, a solução MDM pode não permitir que os utilizadores autorizem o carregamento das suas próprias extensões do sistema.
Do macOS 11.3 ao macOS 11.6.4, fazer alterações a um perfil de extensão do sistema afeta diretamente o estado de uma extensão. Por exemplo, se uma extensão estiver pendente de aprovação e for enviado um perfil de configuração que autorize a extensão, esta pode ser carregada. Por outro lado, se uma aprovação for revogada, a extensão do sistema é descarregada e marcada para remoção no próximo reinício do Mac. Se uma extensão do sistema tentar descarregar-se, surge uma caixa de diálogo de autenticação interativa que solicita as credenciais de administrador para autorizar a descarga.
No macOS 12.0.1 ou posterior, um dicionário na carga útil de extensões do sistema — denominada RemovableSystemExtensions
, permite que um administrador de MDM especifique que aplicações devem ser capazes de remover as suas próprias extensões do sistema. Não é necessária autenticação de administrador local para remover as extensões do sistema. Esta funcionalidade é particularmente útil para fornecedores que possam fornecer desinstaladores automatizados para as respetivas aplicações.
Extensões do kernel
No macOS 11 ou posterior, se extensões de kernel (kexts) de terceiros estiverem ativadas, não podem ser carregadas no kernel mediante pedido. Exige a aprovação do utilizador e o reinício do macOS para carregar as alterações no kernel, e também exige que o arranque seguro seja configurado como “Segurança reduzida” num Mac com Apple Silicon.
Os programadores podem utilizar frameworks, incluindo DriverKit e NetworkExtension, para escrever recursos de interface humana e USB, ferramentas de segurança de ponto terminal (como prevenção de perda de dados ou outros agentes de ponto terminal), e VPN e ferramentas de rede, sem a necessidade de escrever kexts. Os agentes de segurança de terceiros só devem ser utilizados se tirarem partido destas API ou tiverem um roteiro robusto para passarem para eles e para longe das extensões kernel.
Importante: as kexts já não são recomendadas para macOS. As kexts arriscam a integridade e a fiabilidade do sistema operativo. Os utilizadores devem dar preferência a soluções que não exijam a ampliação do kernel e em vez disso usarem extensões do sistema.
Adicionar kexts num Mac baseado em Intel ou com Apple Silicon com o macOS 11 ou posterior
Se for necessário usar extensões kernel, reveja os métodos de aprovação com base no tipo de registo.
Tipo de registo na MDM | Método de aprovação | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Not enrolled (Não registado) User Enrollment (Registo do utilizador) | Quando um novo kext é instalado e existe uma tentativa de o carregar, um reinício tem de ser iniciado pelo utilizador a partir da caixa de diálogo de aviso em:
Este reinício inicia a reconstrução do AuxKC antes do arranque do kernel. | ||||||||||
Device Enrollment (Registo do dispositivo) Automated Device Enrollment (Registo automático de dispositivos) | Sempre que um novo kext é instalado e existe uma tentativa de o carregar, um reinício tem de ser iniciado por uma das seguintes opções:
Nota: primeiro, a solução MDM tem de instalar um perfil de lista de permissões kext antes da especificação do kext. O macOS 11.3 ou posterior permite, opcionalmente, que a solução MDM notifique o utilizador para concluir o reinício assim que for possível. |
Passos adicionais para adicionar kexts num Mac com Apple Silicon
Se estiver a adicionar extensões do kernel num Mac com Apple Silicon, tem de tomar passos adicionais.
Tipo de registo na MDM | Método de aprovação | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Not enrolled (Não registado) | A gestão de kext pelo utilizador exige um reinício com o recoveryOS para efetuar o downgrade das definições de segurança. O utilizador tem de premir e manter premido o botão de alimentação para reiniciar com o recoveryOS e efetuar a autenticação como administrador. O Secure Enclave apenas aceita a alteração de política aquando do arranque a partir do recoveryOS ao premir o botão de alimentação. Em seguida, o utilizador tem de selecionar a opção “Segurança reduzida” e a opção “Permitir a gestão de utilizador de extensões kernel de programadores identificados” e, depois, reiniciar o Mac. | ||||||||||
User Enrollment (Registo do utilizador) | O utilizador tem de reiniciar com o recoveryOS para efetuar o downgrade das definições de segurança. O utilizador tem de premir e manter premido o botão de alimentação para reiniciar com o recoveryOS e efetuar a autenticação como administrador local. O Secure Enclave apenas aceita a alteração de política aquando do arranque a partir do recoveryOS ao premir o botão de alimentação. Em seguida, o utilizador tem de selecionar “Segurança reduzida”, selecionar a opção “Permitir a gestão de utilizador de extensões kernel de programadores identificados” e, depois, reiniciar o Mac. | ||||||||||
Device Enrollment (Registo do dispositivo) | A solução MDM deve avisar o utilizador que tem de reiniciar com o recoveryOS para efetuar o downgrade das definições de segurança. O utilizador tem de premir e manter premido o botão de alimentação para reiniciar com o recoveryOS e efetuar a autenticação como administrador. O Secure Enclave apenas aceita a alteração de política aquando do arranque a partir do recoveryOS ao premir o botão de alimentação. Em seguida, o utilizador tem de selecionar “Segurança reduzida”, selecionar a opção “Permitir a gestão remota de extensões kernel e atualizações de software automáticas” e, depois, reiniciar o Mac. Para saber se essa funcionalidade é compatível com os seus dispositivos, consulte a documentação do seu fornecedor de MDM. | ||||||||||
Automated Device Enrollment (Registo automático de dispositivos) (o número de série do Mac tem de aparecer no Apple School Manager, Apple Business Manager ou Apple Business Essentials e o Mac tem de estar registado numa solução MDM associada ao serviço.) | As soluções MDM podem gerir isto automaticamente. Para saber se essa funcionalidade é compatível com os seus dispositivos, consulte a documentação do seu fornecedor de MDM. |
Extensões kernel com proteção da integridade do sistema
Se a proteção de 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 de kext não é aplicada.
Esta abordagem permite fluxos de segurança permissiva para programadores e utilizadores que não fazem parte do programa da Apple para programadores para testar kexts antes de serem assinadas.