Extensions système et du noyau sous macOS
macOS 10.15 ou ultérieur permet aux développeurs d’étendre les capacités de macOS en installant et en gérant des extensions système qui s’exécutent dans l’espace réservé à l’utilisateur plutôt qu’au niveau du noyau. En s’exécutant dans l’espace réservé à l’utilisateur, les extensions système accroissent la stabilité et la sécurité de macOS. Alors que les extensions du noyau disposent de manière inhérente d’un accès complet à l’intégralité du système d’exploitation, les extensions s’exécutant dans l’espace réservé à l’utilisateur bénéficient uniquement des privilèges nécessaires pour effectuer la fonction qui leur est attribuée.
Les extensions système permettent une gestion rigoureuse grâce à la solution MDM, y compris la capacité dʼautoriser toutes les extensions dʼun développeur ou dʼun type en particulier (comme les extensions de réseau) à charger sans interaction avec lʼutilisateur. Si lʼoption est activée, la solution MDM peut interdire aux utilisateurs dʼapprouver le chargement de leurs propres extensions système.
De macOS 11.3 à macOS 11.6.4, les changements apportés à un profil dʼextensions système affectent directement lʼétat de lʼextension. Par exemple, si une extension est en attente dʼapprobation et un profil de configuration autorisant lʼextension est chargé, le chargement de lʼextension est autorisé. À lʼinverse, si une approbation est révoquée, lʼextension système ne sera pas chargée et sera marquée pour suppression lors du prochain redémarrage du Mac. Si une extension système tente de se décharger elle-même, un dialogue dʼauthentification interactif apparaît et demande la saisie des identifiants administrateurs afin dʼautoriser le déchargement.
Sous macOS 12.0.1 ou ultérieur, un dictionnaire dans les données utiles Extensions système (appelé RemovableSystemExtensions
) permet à un administrateur MDM de spécifier quelles apps doivent pouvoir supprimer leurs propres extensions système. Les administrateurs locaux nʼont pas besoin de sʼauthentifier pour supprimer les extensions système. Cela est particulièrement utile pour les prestataires qui peuvent fournir des programmes de désinstallation automatiques pour leurs apps.
Extensions du noyau
Sous macOS 11 ou ultérieur, si des extensions du noyau (kexts) tierces sont activées, elles ne peuvent pas être chargées dans le noyau à la demande. Elles nécessitent l’autorisation de l’utilisateur et le redémarrage de macOS afin de charger les modifications dans le noyau, et requièrent également que le démarrage sécurisé soit configuré sur « Sécurité réduite » sur un Mac doté d’une puce Apple.
Les développeurs peuvent utiliser des structures comme DriverKit et NetworkExtension, pour programmer des gestionnaires USB et d’interface utilisateur, des outils de point de terminaison de sécurité (tels que la protection contre la perte de données ou d’autres agents de point de terminaison), ainsi que des outils VPN et réseau, le tout sans devoir concevoir des extensions de noyau. Les agents de sécurité tiers ne doivent être utilisés que s’ils ont recours à ces API ou s’ils disposent d’un plan d’action robuste visant à migrer vers celles-ci et à s’affranchir des extensions de noyau.
Important : les extensions de noyau ne sont plus recommandées pour macOS. Les extensions du noyau compromettent l’intégrité et la fiabilité du système d’exploitation. Il est recommandé aux utilisateurs de privilégier des solutions qui n’impliquent pas d’étendre le noyau et qui utilisent plutôt des extensions système.
Ajout d’extensions de noyau sur un Mac à processeur Intel ou doté d’une puce Apple exécutant macOS 11 ou une version ultérieure
Si vous devez utiliser des extensions de noyau, consultez les méthodes d’approbation en fonction du type d’inscription.
Type d’inscription à la solution MDM | Méthode d’autorisation | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Non inscrit Inscription d’utilisateurs | Lorsqu’une nouvelle extension de noyau est installée et qu’elle fait l’objet d’une tentative de chargement, l’utilisateur doit procéder à un redémarrage à partir de la zone de dialogue d’avertissement dans le chemin suivant :
Ce redémarrage lance la recompilation de l’AuxKC préalable au démarrage du noyau. | ||||||||||
Inscription d’appareils Inscription automatisée d’appareils | Chaque fois qu’une nouvelle extension du noyau est installée et qu’elle fait l’objet d’une tentative de chargement, un redémarrage doit être amorcé par l’un ou l’autre des intervenants suivants :
Remarque : un profil répertoriant les extensions du noyau autorisées doit d’abord être installé par la solution MDM et indiquer l’extension du noyau. Sous macOS 11.3 ou ultérieur, la solution MDM peut être autorisée à informer lʼutilisateur que le redémarrage peut être effectué lorsquʼil le souhaite. |
Ajout d’étapes supplémentaires pour l’ajout d’extensions de noyau sur un Mac doté d’une puce Apple
Si vous ajoutez des extensions de noyau sur un Mac doté d’une puce Apple, vous devez prendre des mesures supplémentaires.
Type d’inscription à la solution MDM | Méthode d’autorisation | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Non inscrit | La gestion du noyau par l’utilisateur nécessite un redémarrage avec le système d’exploitation de secours (recoveryOS) afin de réduire les réglages de sécurité. L’utilisateur doit maintenir le bouton d’alimentation enfoncé pour redémarrer avec le système d’exploitation de secours (recoveryOS) et s’authentifier en tant qu’administrateur. Il faut impérativement accéder au système d’exploitation de secours (recoveryOS) en maintenant le bouton d’alimentation enfoncé pour que Secure Enclave accepte le changement de règlement. L’utilisateur doit alors cocher la case « Sécurité réduite » et sélectionner l’option « Autoriser la gestion par les utilisateurs des extensions du noyau provenant de développeurs identifiés », puis redémarrer le Mac. | ||||||||||
Inscription d’utilisateurs | L’utilisateur doit redémarrer avec le système d’exploitation de secours (recoveryOS) afin de réduire les réglages de sécurité. L’utilisateur doit maintenir le bouton d’alimentation enfoncé pour redémarrer avec le système d’exploitation de secours (recoveryOS) et s’authentifier en tant qu’administrateur local. Il faut impérativement accéder au système d’exploitation de secours (recoveryOS) en maintenant le bouton d’alimentation enfoncé pour que Secure Enclave accepte le changement de règlement. L’utilisateur doit alors sélectionner « Sécurité réduite » et cocher la case « Autoriser la gestion par les utilisateurs des extensions du noyau provenant de développeurs identifiés », puis redémarrer le Mac. | ||||||||||
Inscription d’appareils | La solution MDM doit informer l’utilisateur qu’il doit redémarrer en mode de système d’exploitation de secours (recoveryOS) afin de réduire les réglages de sécurité. L’utilisateur doit maintenir le bouton d’alimentation enfoncé pour redémarrer avec le système d’exploitation de secours (recoveryOS) et s’authentifier en tant qu’administrateur. Il faut impérativement accéder au système d’exploitation de secours (recoveryOS) en maintenant le bouton d’alimentation enfoncé pour que Secure Enclave accepte le changement de règlement. L’utilisateur doit alors sélectionner « Sécurité réduite » et cocher la case « Autoriser la gestion à distance des extensions du noyau et des mises à jour automatiques de logiciels », puis redémarrer le Mac. Pour découvrir si cette fonctionnalité est prise en charge par vos appareils, consultez la documentation de votre fournisseur de solution MDM. | ||||||||||
Inscription automatisée d’appareils (Le numéro de série du Mac doit apparaître dans Apple School Manager, Apple Business Manager ou Apple Business Essentials, et le Mac doit être inscrit auprès d’une solution MDM liée au service.) | Les solutions MDM peuvent gérer ceci automatiquement. Pour découvrir si cette fonctionnalité est prise en charge par vos appareils, consultez la documentation de votre fournisseur de solution MDM. |
Extensions du noyau et protection de l’intégrité du système
Si la protection de l’intégrité du système (SIP) est activée, la signature de chaque extension du noyau est vérifiée avant que celle-ci soit intégrée à l’AuxKC.
Si la SIP est désactivée, la signature de l’extension du noyau n’est pas prise en compte.
Cette approche permet aux flux de type « Sécurité moyenne » pour les développeurs ou utilisateurs ne faisant pas partie du programme de développeurs Apple de tester les extensions du noyau avant qu’elles soient signées.