Extensions système sous macOS

Un Mac doté de 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 à un service de gestion des appareils, 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, un service de gestion des appareils peut interdire aux utilisateurs d’approuver le chargement de leurs propres extensions système.

Pour les Mac dotés de macOS 12.0.1 ou ultérieur, un dictionnaire dans les données utiles Extensions système (appelé RemovableSystemExtensions) permet à un administrateur de service de gestion des appareils de spécifier quelles apps peuvent 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.

Pour les Mac dotés 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.

Extensions du noyau

Pour les Mac dotés de 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.

Ajouter des 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 de la méthode d’inscription.

Méthode d’inscription

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 :

  • macOS 13 ou ultérieur : menu Pomme > Réglages Système > Confidentialité et sécurité.

  • macOS 12.0.1 ou antérieur : menu Pomme > Préférences Système > Sécurité et confidentialité.

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 :

  • Un compte d’administrateur local, à partir de l’avertissement dans « Confidentialité et sécurité » de « Réglages Système » (macOS 13 ou ultérieur) ou dans la sous-fenêtre « Sécurité et confidentialité » de « Préférences Système » (macOS 12.0.1 ou antérieur). Un service de gestion des appareils peut également autoriser ceci pour les utilisateurs standard.

  • Le service de gestion des appareils lui-même, en utilisant la commande RestartDevice avec RebuildCache activé. L’AuxKC est reconstruit lors du prochain redémarrage du Mac. Les extensions du noyau déjà détectées par macOS (par exemple, chargées par leur logiciel et bloquées) sont incluses et le service de gestion des appareils peut fournir celles qui n’ont pas encore tenté de se charger à l’aide de la clé KextPaths.

Remarque : le service de gestion des appareils doit d’abord installer un profil de liste blanche de kext qui spécifie le kext. Avec un Mac doté de macOS 11.3 ou ultérieur, le service peut être autorisé à informer lʼutilisateur que le redémarrage peut être effectué lorsquʼil le souhaite.

É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.

Méthode d’inscription

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

Le service de gestion des appareils 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 savoir si cette fonctionnalité est prise en charge pour vos appareils, consultez la documentation du service de gestion des appareils de votre développeur.

Inscription automatisée d’appareils

Le numéro de série du Mac doit apparaître dans Apple School Manager ou Apple Business, et le Mac doit être inscrit auprès d’un service de gestion des appareils lié à Apple School Manager ou Apple Business.

Les services de gestion des appareils peuvent gérer ceci automatiquement.

Pour savoir si cette fonctionnalité est prise en charge pour vos appareils, consultez la documentation du service de gestion des appareils de votre développeur.

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 protection de l’intégrité du système (SIP) est désactivée, la signature kext n’est pas appliquée.

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.

Date de publication : 27 octobre 2021
Morty Proxy This is a proxified and sanitized view of the page, visit original site.
Avez-vous trouvé cet article utile ?
Limite de caractères : 250
La limite maximale des caractères est 250.
Merci de votre feedback.
Morty Proxy This is a proxified and sanitized view of the page, visit original site.