Extensiones del sistema y kernel en macOS
macOS 10.15 o posterior permite a los desarrolladores aprovechar al máximo las funcionalidades de macOS mediante la instalación y administración de extensiones del sistema que se ejecutan en el espacio del usuario, en lugar de en el kernel del sistema. Cuando las extensiones del sistema se ejecutan en el espacio del usuario, aumenta la estabilidad y seguridad de macOS. Aunque las extensiones de kernell (kexts) tienen acceso total al sistema operativo, las extensiones ejecutadas en el espacio del usuario cuentan sólo con los privilegios necesarios para realizar su función específica.
Las extensiones del sistema son compatibles con la administración sólida mediante MDM, incluida la capacidad de permitir que todas las extensiones de un desarrollador en específico o de un tipo en específico (por ejemplo, extensiones de red) se carguen sin interacción por parte del usuario. De manera opcional, la solución de MDM puede impedir que los usuarios aprueben la carga de sus propias extensiones del sistema.
En macOS 11.3 y hasta macOS 11.6.4, hacer cambios en un perfil de extensión del sistema afecta directamente el estado de una extensión. Por ejemplo, si una extensión está pendiente de aprobar y se envía un perfil de configuración que permite la extensión, se puede cargar la extensión. Por el contrario, si se revoca una aprobación, se anula la carga de la extensión del sistema y se marca para eliminarse la siguiente vez que se reinicia la Mac. Si una extensión del sistema intenta anular su propia carga, aparece un diálogo de autenticación interactivo que le pide al administrador ingresar las credenciales para autorizar la anulación de la carga.
En macOS 12.0.1 o posterior, un diccionario en la carga útil Extensiones del sistema —llamado RemovableSystemExtensions
— permite que un administrador de MDM especifique las apps que deberían poder quitar sus propias extensiones del sistema. No se requiere la autenticación del administrador local para eliminar las extensiones del sistema. Esto es particularmente útil para los proveedores que pueden proporcionar desinstaladores automatizados para sus apps.
Extensiones del kernel
En macOS 11 o posterior, si las extensiones del kernel (kexts) de terceros están activadas, no se pueden cargar al kernel por solicitud. En su lugar, se requiere la aprobación del usuario, reiniciar macOS para cargar los cambios en el kernel y establecer el arranque seguro a la política de seguridad Seguridad reducida en una computadora Mac con Apple Chip.
Los desarrolladores pueden usar estructuras, como DriverKit y NetworkExtension, para escribir controladores USB y de interfaz humana, herramientas de seguridad para terminales (como agentes para la prevención de pérdida de datos y otros agentes terminales), y herramientas de redes y VPN, todo esto sin necesidad de escribir kexts. Los agentes de seguridad de terceros sólo deben utilizarse si aprovechan estas API o si tienen una sólida hoja de ruta para la transición a ellas y para alejarse de las extensiones del kernel.
Importante: se desaconseja el uso de extensiones del kernel (kexts) en macOS. Las extensiones del kernel ponen en riesgo la integridad y la fiabilidad del sistema operativo. Los usuarios deberían preferir soluciones que no requieran ampliar el kernel, y usar en su lugar extensiones del sistema.
Agregar kexts en una Mac con procesador Intel o Apple Chip con macOS 11 o posterior
Si debes usar extensiones del kernel, revisa los métodos de aprobación según el tipo de inscripción.
Tipo de inscripción de MDM | Método de aprobación | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
No inscrito Perfil Inscripción de usuarios | Cuando se instala una kext nueva y se intenta cargarla, el usuario debe reiniciar la Mac desde el mensaje de advertencia en:
Este reinicio vuelve a crear la colección de kernels auxiliares (AuxKC) antes de arrancar con el kernel. | ||||||||||
Perfil Inscripción de dispositivos Perfil Inscripción de dispositivos automatizada | Cada vez que se instala una kext nueva y se intenta cargarla, el usuario debe reiniciar la Mac utilizando uno de los siguientes métodos:
Nota: la solución de MDM primero debe instalar un perfil con la lista de kexts permitidas. En macOS 11.3 o posterior permite opcionalmente que la MDM envíe notificaciones al usuario para que termine el reinicio cuando lo desee. |
Pasos adicionales para agregar kexts en computadoras Mac con Apple Chip
Si vas a agregar extensiones del kernel en una Mac con Apple Chip, debes tomar medidas adicionales.
Tipo de inscripción de MDM | Método de aprobación | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
No inscrito | La administración de kext por el usuario requiere reiniciar para arrancar en recoveryOS y degradar la configuración de seguridad. El usuario debe mantener presionado el botón de encendido para arrancar en recoveryOS y autenticarse como administrador. Secure Enclave aceptará el cambio de política sólo cuando se arranque recoveryOS presionando el botón de encendido. El usuario debe seleccionar la casilla Seguridad reducida y la opción Permitir que el usuario administre extensiones de kernel de desarrolladores identificados y luego reiniciar la Mac. | ||||||||||
Perfil Inscripción de usuarios | El usuario debe reiniciar y arrancar en recoveryOS para degradar la configuración de seguridad. El usuario debe mantener presionado el botón de encendido para arrancar en recoveryOS y autenticarse como administrador local. Secure Enclave aceptará el cambio de política sólo cuando se arranque recoveryOS presionando el botón de encendido. El usuario debe elegir Seguridad reducida, seleccionar Permitir que el usuario administre extensiones de kernel de desarrolladores identificados, y luego reiniciar la Mac. | ||||||||||
Perfil Inscripción de dispositivos | La solución de MDM debería notificar al usuario que debe reiniciar la Mac y arrancar en recoveryOS para degradar la configuración de seguridad. El usuario debe mantener presionado el botón de encendido para arrancar en recoveryOS y autenticarse como administrador. Secure Enclave aceptará el cambio de política sólo cuando se arranque recoveryOS presionando el botón de encendido. El usuario debe elegir Seguridad reducida, seleccionar Permitir la administración remota de extensiones de kernel y actualizaciones de software automáticas, y luego reiniciar la Mac. Para averiguar si esta función es compatible con tus dispositivos, consulta la documentación de tu proveedor de MDM. | ||||||||||
Perfil Inscripción de dispositivos automatizada (el número de serie de la Mac debe aparecer en Apple School Manager, Apple Business Manager o Apple Business Essentials, y la Mac debe estar inscrita a una solución MDM enlazada al servicio). | Las soluciones MDM pueden administrar este método automáticamente. Para averiguar si esta función es compatible con tus dispositivos, consulta la documentación de tu proveedor de MDM. |
Extensiones de kernel con la protección de la integridad del sistema
Si la protección de integridad del sistema (SIP) está activada, se verifica la firma de cada kext antes de incluirlas a la AuxKC.
Si la función SIP está desactivada, no se requiere la verificación de las firmas de las kexts.
Este método permite realizar flujos de trabajo con el nivel Seguridad permisiva a desarrolladores y usuarios que no son parte del Programa de Apple para desarrolladores con el objetivo de probar kexts antes de su firma.