Características nuevas y futuras del núcleo de Linux que deberían entusiasmarle
Estas son algunas de las características relevantes para la seguridad que debutan en versiones recientes (e incluso aún en pruebas) del núcleo de Linux. Pretenden aumentar la seguridad inherente de los sistemas Linux básicos (léase: sin ningún ajuste especial de seguridad), y sin duda se utilizarán para implementar nuevas formas de realizar tareas y procesos existentes.
Analicemos algunas de las más destacadas, centrándonos en sus implicaciones para la seguridad del sistema.
Control-Flow Enforcement Technology (CET) Shadow Stack
Una de las próximas características del núcleo Linux es la tecnología de control de flujo (CET). Pila sombra. Se trata de una pila secundaria que valida la pila de llamadas real y ayuda a detectar posibles cambios maliciosos.
La pila sombra utiliza hardware para proporcionar su funcionalidad y garantizar la seguridad - la CPU es responsable de mantener la pila sombra directamente, y no está disponible para su modificación desde el código de usuario. Recientemente, Intel ha presentado una serie de parches para ampliar la compatibilidad de shadow stack con sus últimas familias de CPU. Los parches son lo suficientemente genéricos como para soportar hardware de otros proveedores, como AMD, en la arquitectura x64.
La principal ventaja de Shadow Stack es su capacidad para detectar ataques basados en programación orientada al retorno (ROP), que son ataques que abusan del retorno de funciones específicas a funciones llamantes. Como tal, esta función mejorará la seguridad de los sistemas frente a este tipo de amenazas que existen desde hace más de una década.
Sin embargo, Shadow Stack ha encontrado problemas de última hora, lo que significa que su inclusión en el núcleo principal se retrasará probablemente a partir de la versión 6.4. Una vez resuelto el problema, el software que manipule la pila o los punteros de función tendrá que adaptarse para funcionar en las nuevas versiones del kernel compatibles con Shadow Stack.
IO_uring Hardening
IO_uring es una interfaz Linux de alto rendimiento utilizada para operaciones asíncronas de E/S. A pesar de sus importantes mejoras en las operaciones de E/S, Google ha encontrado (y ha demostrado) que IO_uring adolece de "graves vulnerabilidades". Como resultado, Google ha prohibido su uso en los servidores de producción, Chrome OS y otros productos hasta que se encuentre una forma adecuada de sandboxing.
Una vez que se encuentre una solución, es probable que tenga un amplio impacto en el núcleo, mejorando la seguridad de las operaciones de E/S en todo el sistema. Dada la amplia adopción de IO_uring por sus ventajas de rendimiento, cualquier cambio en la seguridad se dejará sentir en múltiples cargas de trabajo y entornos y puede requerir una refactorización del código.
Aún no se ha hecho pública ninguna estimación sobre cuándo aparecerá este cambio de seguridad.
Contexto de los niveles virtuales de confianza (VTL)
Los sistemas Linux desplegados bajo la plataforma de virtualización HyperV de Microsoft (presente en algunos proveedores de Cloud, por ejemplo) tienen ahora la opción de soportar los "Niveles de confianza virtuales". Esto permite diferentes niveles de confianza para diferentes máquinas virtuales. Con el recién introducido ajuste HYPER_VTL_MODE en el kernel, es posible especificar el nivel de confianza deseado para el sistema. Esto podría ser útil para solicitar menos confianza para los sistemas orientados a Internet, por ejemplo, lo que haría que el hipervisor restringiera las capacidades expuestas a dichos sistemas invitados Linux.
Esta función se fusionó y está disponible a partir de la versión 6.4 del Kernel.
Funciones de seguridad adicionales en el núcleo Linux 6.3
En la versión 6.3 del kernel Linux se han introducido varias funciones nuevas relevantes para la seguridad. Por ejemplo, el kernel es ahora compatible con la función automática Indirect Branch Restricted Speculation (IBRS) de AMD para la mitigación de Spectre. Esto proporciona una alternativa menos intensiva en rendimiento a la ejecución especulativa retpoline, haciendo que los procesadores AMD más antiguos sean más seguros y rápidos.
El núcleo Linux 6.3 también incluye nuevos controladores de gestión de energía para arquitecturas ARM y RISC-V, que mejoran su seguridad y rendimiento. En cuanto a los sistemas de archivos, Linux 6.3 incorpora compatibilidad con el cifrado basado en AES-SHA2 para NFS, lo que hará más seguras las operaciones con archivos.
Además, el núcleo ya es compatible con el modo de usuario de Linux para el código Rust, un lenguaje seguro para la memoria. Se trata de un paso más hacia el objetivo de incorporar los primeros módulos Rust al núcleo Linux, lo que mejorará la seguridad gracias a las propiedades de seguridad de memoria de Rust.
Reflexiones finales
Éstos son sólo algunos de los cambios que se van a introducir y de los que se han introducido recientemente, y que subrayan el compromiso de la comunidad Linux de mejorar la seguridad de los sistemas, manteniendo al mismo tiempo la reconocida flexibilidad y rendimiento del núcleo. Estos cambios pueden tener un profundo impacto en usuarios y desarrolladores, mejorando el panorama de la seguridad de los sistemas Linux en todo el mundo.