Extensiones del kernel y del sistema en macOS
macOS 10.15 o posterior permite a los desarrolladores ampliar las capacidades de macOS para instalar y gestionar extensiones del sistema que se ejecutan en el espacio de usuario en lugar de al nivel del kernel. Al ejecutarse en el espacio de usuario, las extensiones del sistema aumentan la estabilidad y la seguridad de macOS. A pesar de que las extensiones del kernel acceso completo a todo el sistema operativo de forma inherente, las extensiones que se ejecutan en el espacio de usuario solo reciben los privilegios necesarios para realizar la función que tienen especificada.
Las extensiones del sistema permiten realizar una potente gestión usando MDM, incluida la capacidad de permitir que se carguen sin interacción con el usuario todas las extensiones de un desarrollador concreto o de un tipo específico (como, por ejemplo, extensiones de red). MDM también puede no permitir a los usuarios que aprueben la carga de sus propias extensiones del sistema.
En macOS 11.3 y hasta macOS 11.6.4, realizar cambios en un perfil de extensión del sistema afecta directamente al estado de la extensión. Por ejemplo, si una extensión está pendiente de aprobación y se envía un perfil de configuración que permite la extensión, se permite que se cargue la extensión. A la inversa, si se revoca una aprobación, se descarga la extensión del sistema y se marca para que se elimine la siguiente vez que se reinicie el Mac. Si una extensión del sistema intenta descargarse a sí misma, aparece un cuadro de diálogo de autenticación interactiva que requiere credenciales de administrador para autorizar la descarga.
En macOS 12.0.1 o posterior, un diccionario en la carga “Extensiones del sistema” (denominado RemovableSystemExtension
), permite que un administrador de MDM especifique qué apps deben poder eliminar sus propias extensiones del sistema. Para eliminar las extensiones del sistema no se requiere la autenticación de un administrador local. Esto resulta especialmente útil para los proveedores que ofrecen desinstaladores automatizados para sus apps.
Extensiones del kernel
En macOS 11 o posterior, si están activadas las extensiones de kernel (kexts) de terceros, no se pueden cargar en el kernel por petición. Requieren la aprobación del usuario y que se reinicie el macOS para que se carguen los cambios en el kernel y, además, que, en ordenadores Mac con chip de Apple, el arranque seguro esté configurado en el modo “Seguridad reducida”.
Los desarrolladores pueden utilizar estructuras, como DriverKit y NetworkExtension, para escribir USB y drivers de interfaz humana, herramientas de seguridad de punto final (como la prevención de pérdida de datos u otros agentes de punto final), y herramientas de red y VPN, todo ello sin necesidad de escribir extensiones de kernel. Solo se deberían utilizar agentes de seguridad de terceros si utilizan esas API o tienen un plan para realizar una transición hacia ellos y alejarlos de las extensiones de kernel.
Importante: Ya no se recomienda usar extensiones de kernel (kext) para macOS. Las kexts ponen en riesgo la integridad y la confiabilidad del sistema operativo. Los usuarios deberían preferir soluciones que no requieran extender el kernel y usar en su lugar las extensiones del sistema.
Añadir extensiones del kernel en un Mac con chip de Intel o Apple y macOS 11 o posterior
Si tienes que usar extensiones del kernel, repasa los métodos de aprobación basados en el tipo de inscripción.
Tipo de inscripción MDM | Método de aprobación | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
No inscrito Inscripción de usuario | Cuando se instala una nueva extensión de kernel y se produce un intento de cargarla, el usuario debe comenzar un reinicio desde el cuadro de diálogo de aviso en:
Este reinicio es el comienzo de la reconstrucción de la AuxKC antes de arrancar el kernel. | ||||||||||
Inscripción de dispositivo Inscripción automatizada de dispositivo | Cada vez que se instala una nueva extensión de kernel y se intenta cargarla, se debe realizar un reinicio por parte de:
Nota: La solución MDM que especifique la extensión de kernel (kext) debe instalar primero un perfil con una lista de extensiones kext autorizadas. macOS 11.3 o posterior ofrece la opción de permitir que MDM notifique al usuario que complete el reinicio cuando le sea más conveniente. |
Pasos adicionales para añadir extensiones del kernel en un Mac con chip de Apple
Si estás añadiendo extensiones del kernel en un Mac con chip de Apple, debes dar algunos pasos más.
Tipo de inscripción MDM | Método de aprobación | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
No inscrito | La gestión de kext por parte del usuario requiere que se reinicie el equipo en recoveryOS para aflojar los ajustes de seguridad. El usuario debe mantener pulsado el botón de encendido para reiniciar el equipo en recoveryOS y autenticarse como administrador. Secure Enclave solo aceptará el cambio de política cuando se entre en recoveryOS pulsando el botón de encendido. El usuario debe activar la casilla “Seguridad reducida” y la opción “Permitir la gestión del usuario de las extensiones de kernel de desarrolladores identificados” y reiniciar el Mac. | ||||||||||
Inscripción de usuario | El usuario debe reiniciar el equipo en recoveryOS para reducir los ajustes de seguridad. El usuario debe mantener pulsado el botón de encendido para reiniciar el equipo en recoveryOS y autenticarse como administrador local. Secure Enclave solo aceptará el cambio de política cuando se entre en recoveryOS pulsando el botón de encendido. El usuario debe activar la casilla “Seguridad reducida” y la opción “Permitir la gestión del usuario de las extensiones de kernel de desarrolladores identificados”, y reiniciar el Mac. | ||||||||||
Inscripción de dispositivo | La solución MDM debería indicar al usuario que debe reiniciar el equipo en recoveryOS para reducir los ajustes de seguridad. El usuario debe mantener pulsado el botón de encendido para reiniciar el equipo en recoveryOS y autenticarse como administrador. Secure Enclave solo aceptará el cambio de política cuando se entre en recoveryOS pulsando el botón de encendido. El usuario debe activar la casilla “Seguridad reducida” y la opción “Permitir la gestión remota de las extensiones de kernel y las actualizaciones de software automáticas”, y reiniciar el Mac. Para ver si esta función se admite para tus dispositivos, consulta la documentación de tu proveedor de MDM. | ||||||||||
Inscripción automatizada de dispositivo (El número de serie del Mac debe aparece en Apple School Manager, Apple Business Manager o Apple Business Essentials, y el Mac se debe inscribir automáticamente en una solución MDM enlazada al servicio). | Las soluciones MDM pueden gestionar automáticamente esta funcionalidad. Para ver si esta función se admite para tus dispositivos, consulta la documentación de tu proveedor de MDM. |
Extensiones de kernel con protección de la integridad del sistema
Si está activada la protección de la integridad del sistema (SIP), se verifica la firma de cada extensión de kernel antes de incluirla en la colección AuxKC.
Si la SIP está desactivada, no se obliga a que la extensión de kernel esté firmada.
Este enfoque permite que los desarrolladores o usuarios que no forman parte del programa para desarrolladores de Apple puedan usar flujos de “Seguridad permisiva” para probar extensiones de kernel antes de firmarlas.