Seguridad de DriverKit para macOS
DriverKit es la estructura que permite a los desarrolladores crear controladores de dispositivo que el usuario instala en el Mac. Los controladores creados con DriverKit se ejecutan en el espacio del usuario, en lugar de hacerlo como extensiones del kernel, para mejorar la seguridad y la estabilidad del sistema. Esto facilita la instalación y aumenta la estabilidad y seguridad de macOS.
El usuario solo tiene que descargar la app (no se necesitan instaladores si se usan las extensiones del sistema o DriverKit) y la extensión solo se activa cuando es necesario. Esto sustituye a las kexts en muchos casos de uso que requieren privilegios de administrador para instalar en /Sistema/Librería o /Librería.
Se recomienda a los administradores de TI que usan controladores de dispositivos, soluciones de almacenamiento en la nube, conexiones de red y apps de seguridad que requieren extensiones del kernel que se pasen a las versiones más recientes que estén creadas en extensiones del sistema. Estas versiones más recientes reducen significativamente la posibilidad de que se produzcan situaciones de “kernel panic” en el Mac, además de reducir la superficie de ataque. Estas nuevas extensiones se ejecutan en el espacio del usuario, no requieren privilegios especiales para la instalación y se eliminan automáticamente cuando la app que hospeda la extensión se traslada a la Papelera.
La estructura DriverKit proporciona clases de C++ para servicios de E/S, coincidencias de dispositivos, descriptores de memoria y colas de envío. También define tipos adecuados de E/S para números, colecciones, cadenas y otros tipos comunes. El usuario utiliza estos junto con las estructuras de controladores específicas para cada familia, como USBDriverKit y HIDDriverKit. Se puede usar la estructura de la extensiones del sistema para instalar y actualizar un controlador.