¿Qué es un System Extension?
Las extensiones del sistema son el reemplazo moderno de las extensiones del kernel (kexts) en macOS Catalina. Con las extensiones del sistema, Apple proporciona nuevos marcos para que los desarrolladores realicen tareas que antes estaban reservadas para kexts. El nuevo beneficio principal de las extensiones del sistema es que se ejecutan en el espacio del usuario en lugar del espacio del kernel; Al ejecutarse en el espacio de usuario, las extensiones del sistema no pueden comprometer la seguridad o la estabilidad integradas de macOS. Aunque las kexts todavía funcionan en macOS Catalina, Apple ha dejado de usar ciertos tipos de ellas, y los desarrolladores deben trabajar para mover sus kexts a extensiones del sistema a medida que estén disponibles marcos equivalentes.
Actualmente, hay tres nuevos marcos de extensión del sistema disponibles para reemplazar kexts:
DriverKit: use el nuevo marco DriverKit para crear controladores para dispositivos USB, serie, NIC y HID que los usuarios pueden instalar en macOS Catalina o posterior. Más información sobre DriverKit.
Extensiones de red: Las aplicaciones de extensión de red, como los filtros de contenido, los proxies DNS y los clientes VPN, ahora se pueden distribuir como extensiones del sistema a macOS Catalina o posterior. Más información sobre NetworkExtension.
Endpoint Security: Los clientes de seguridad de endpoints, incluido el software antivirus, ahora pueden aprovechar la nueva API de EndpointSecurity para monitorear e incluso bloquear eventos del sistema para cumplir mejor con las políticas de seguridad y protegerse de posibles actividades maliciosas en macOS Catalina o posterior. Más información sobre Endpoint Security
Las kexts que operan fuera de estos nuevos marcos, como el software de virtualización, deben continuar usando kexts hasta que Apple ofrezca marcos de extensión del sistema equivalentes.
Las extensiones del sistema también se pueden permitir mediante un perfil de configuración independiente.
Si está utilizando una aplicación que todavía usa una extensión de kernel, le recomendamos que se ponga en contacto con sus proveedores de software para animarlos a pasar a las extensiones del sistema.
Información adicional:
Descripción general deKernel Extensions - Archivo de documentación para desarrolladores de Apple
System Extensions - Desarrollador de Apple
¿Qué es un Kernel Extension?
Las extensiones del kernel, a veces denominadas kexts, permiten a los desarrolladores cargar código dinámicamente en el kernel macOS . También proporcionan acceso a interfaces internas del kernel que permiten que las aplicaciones complejas funcionen correctamente. Algunos ejemplos de este tipo de aplicaciones son las aplicaciones de virtualización y los hipervisores, como Parallels o VMware Fusion.
La diferencia entre Kernel Extensions y System Extensions
Si no está seguro de si una pieza de software usa una extensión del sistema o una kext, hay algunas formas de averiguarlo:
Póngase en contacto con el fabricante del software.
Después de instalar su software, ejecute el siguiente comando para enumerar todas las extensiones del sistema activas. Si no se enumeran las extensiones del sistema, es probable que el software aproveche una kextex heredada.
systemextensionsctl list
A continuación, se muestra un ejemplo de la salida que puede ver si no hay extensiones del sistema instaladas.
KandjiSupport@TestMac1 ~ % systemextensionsctl list0 extension(s)
A continuación, se muestra un ejemplo de la salida que puede ver si se instala una extensión del sistema.
KandjiSupport@TestMac1 ~ % systemextensionsctl list
1 extension(s)
--- com.apple.system_extension.endpoint_security
enabled active teamID bundleID (version) name [state]
* * 9PTGMPNXZ2 com.symantec.mes.systemextension
System Extension
[activated enabled]
Crear un perfil de System Extension
Siga estos pasos para crear un perfil de extensión del sistema en Kandji que aprobará previamente las extensiones del sistema de una aplicación.
Inicie sesión en el inquilino Kandji y vaya a la sección Biblioteca en el panel de navegación.
Haga clic en Agregar nuevo.
Haga clic System Extension.
Haga clic en Agregar y configurar.
Asigne un nombre descriptivo a su nuevo perfil, como System Extension Allowance.
Seleccione la Blueprint que desea incluir en el menú desplegable Blueprint .
Opcional: Si anulas la selección de Permitir que los usuarios aprueben extensiones del sistema, se evitará que todos los usuarios del Mac, incluidos los administradores locales, aprueben extensiones del sistema adicionales no aprobadas a través de un perfil. Además, al seleccionar esta opción, se rechazarán las extensiones del sistema que un usuario haya aprobado anteriormente.
Introduzca el ID del equipo; este es el identificador en la tercera columna de la salida del terminal generada por el comando systemextensionsctl list mencionado anteriormente.
Opcionalmente, proporcione un nombre para asociarlo con el ID de equipo.
En la parte de Extensiones del sistema , puede cambiar opcionalmente el valor predeterminado de Aprobar todas las extensiones del sistema. Si deja esta opción en su configuración predeterminada, se aprobará previamente cualquier System Extension del ID de equipo especificado. Opcionalmente, puede establecer esta opción en una de las siguientes opciones:
Permitir extensiones específicas del sistema: Le permite especificar el ID de paquete exacto de la extensión del sistema específica que desea aprobar; utilice el ID de paquete generado por el comando systemextensionsctl list descrito anteriormente. Opcionalmente, también puede configurar una o más de estas extensiones específicas para que puedan eliminarse automáticamente mediante herramientas de administración, como Kandji o un paquete proporcionado por el proveedor.
Permitir tipos específicos de extensiones del sistema: Le permite especificar los tipos de extensiones del sistema de un desarrollador, como extensiones de seguridad de puntos de conexión, extensiones de controladores o extensiones de red, que desea que se aprueben previamente. Para nuestro ejemplo de Symantec, aprobaríamos el tipo de extensiones de seguridad para terminales , ya que coincide con el tipo de extensión generado por el comando systemextensionsctl list descrito anteriormente. Si es necesario, puede seleccionar el botón Agregar ID de equipo para permitir extensiones de sistema adicionales en un solo perfil.
Haga clic en Guardar.