Según informa The Register, existe una grave vulnerabilidad en los procesadores Intel que afecta a la gestión de la memoria del procesador, algo que en Linux ya cuenta con varias soluciones, pero que afectan de manera importante al rendimiento del procesador.

Concretamente se especula sobre una potencial vulnerabilidad de los procesadores de la compañía, que está revolucionando las redes. El problema principal, además del propio agujero de seguridad, está en que solucionar el error requiere una importante revisión de los sistemas operativos, algo que afectaría al rendimiento de los sistemas. Este problema parece ser exclusivo de Intel, ya que los procesadores de AMD no se ven afectados por este importante fallo de seguridad.

 

Los desarrolladores del kernel de Linux han realizado cambios significativos en el subsistema de memoria virtual del kernel en las últimas semanas. Los ambos no son triviales, ya que esta parte es fundamental en el kernel de Linux y los cambios que se realizan en este punto se suelen debatir durante meses o años. Parece ser que ya se han distribuido varios parches para solventar el problema, uno de los cuales estará en la versión 4.15 del kernel de Linux, mientras que también se ha transferido a lo núcleos 4.9 y 4.14, los cuales ya han sido publicados y que están catalogados como ‘estables’. Los observadores son conscientes de que debe haber una razón válida para este ajetreo en unas fechas tan señaladas.

Según informes recientes, los parches evitan la explotación de una vulnerabilidad de seguridad masiva en todos los procesadores de Intel. Aparentemente, un proceso puede hacer que una CPU de Intel explote por error de hardware, la carga de áreas de almacenamiento y luego permite el acceso sin más pruebas, sin que el proceso tenga los derechos necesarios. Esto permite que un proceso sin privilegios acceda a la memoria del núcleo, que puede contender datos confidenciales. Esto es especialmente precario para los proveedores de servicios en la nube, como Amazon y Google, que desean evitar el corte de las máquinas virtuales. Además, la técnica de seguridad utilizada como ‘Defense in Depth’ (defensa en profundidad o defensa profunda), podría ser de tipo Address Space Layout Randomization en el kernel de Linux.

Los desarrolladores de Linux han desarrollado una solución para este problema, denominada Kernel Page-Table Isolation (KPTI), que asegura el área de memoria del kernel, que ya no está asignada a la zona de almacenamiento de procesos. Con KPTI, un proceso solo ve su propia área de almacenamiento. El espacio de memoria del kernel es simplemente invisible para él, por lo que una verificación de acceso aparentemente fácil de manejar ya no juega ningún papel.

Los procesos de trabajo con direcciones de memoria virtual son a partir de 0. El trabajo del núcleo, es ver los espacios libres de memoria y comparar estas direcciones virtuales en tiempo de ejecución de un proceso para traducir direcciones físicas. Por lo tanto, varios procesos de ejecución se pueden ejecutar al mismo tiempo sin entrar en el bloque sin leer o escribir las áreas de memoria de otro bloque. Para verificar que esta abstracción no afecta al rendimiento negativamente, cada CPU tiene su propia caché especial, denominada Translation Lookside Buffer (TLB), que acelera la traducción de una dirección lógica a una dirección física.

Pese a que KPTI suena como una solución simple, tiene un problema ye es que si la memoria del núcleo no está asignada al espacio de dirección del proceso, cada llamada requiere una función proporcionada por el núcleo o llamada al sistema y vaciar el buffer, algo que impacta en el rendimiento. El lavar el TLB, solo se hace durante el cambio de proceso, es decir, cuando el kernel pausa un proceso cada pocos milisegundos y continua ejecutando el siguiente proceso. Además, con KPTI, el TLB se debe vaciar antes y después de cada syscall. La degradación del rendimiento, por tanto, depende de la frecuencia con que un proceso utilice las llamadas al sistema. Los desarrolladores de Linux esperan que KPTI afecte en torno a un 5% en el rendimiento, pero en algunos casos se puede ir casi al 50%.

Debemos sumar a esto otro problema y es que la implementación de KPTI en un sistema AMD, que no cuenta con esta brecha de seguridad, es un elemento superfluo y que solo influye en reducir el rendimiento de estos procesadores. Lógicamente, se espera que el impacto sea menor que en los procesadores Intel, pero también se podrían dar casos de perdida de rendimiento en puntos de referencia menos específicos, por lo que las perdidas, de darse, serán menos significativas o apenas mesurables en los procesadores de AMD.

Independientemente del sistema operativo, el error está ahí porque es debido a los procesadores de Intel y por lo tanto son los sistemas operativos Linux, Windows y macOS, entre otros sistemas operativos, los que deben corregir el problema. En Linux ya hay soluciones, gracias a que es de código abierto, pero para Windows no, aunque en Microsoft están trabajando duramente para implementar algo similar a lo implementado en Linux, para esta vulnerabilidad que se detectó a mediados de noviembre.

Fuente: segu-info.com.ar

Compartir