Unos investigadores han descubierto un fallo de diseño en el firmware de los procesadores Intel que abre la puerta a saltarse las implementaciones de ASLR de todos los sistemas operativos comerciales, disminuyendo de forma notable la seguridad de sistemas y aplicaciones ante ataques y explotaciones de vulnerabilidades.
ASLR, que son las siglas en inglés de Disposición Aleatoria del Espacio de Direcciones (Address Space Layout Randomization), es una defensa contra la explotación de vulnerabilidades presentes en el sistema operativo y las aplicaciones en ejecución. Mediante la aleatorización de las ubicaciones de la memoria donde se cargan trozos de software específicos, ASLR se encarga de limitar el posible daño provocado por los exploits, que pueden ir desde un cuelgue del sistema a cosas más complejas y dañinas para la víctima como el robo de información sensible.
El fallo en el firmware de los procesadores de Intel permite la utilización de una técnica para saltarse esta protección, aumentando así la efectividad de ciertos tipos de ataques. Nael Abu-Ghazaleh, científico en computación de la Universidad de California y uno de los investigadores tras este hallazgo, ha comentado que “ASLR es una importante defensa implementada por todos los sistemas operativos comerciales”, abarcando Windows, Linux y macOS.
EXPLOTANDO LA VULNERABILIDAD
En lo que respecta al uso de la memoria, una tabla en el predictor de saltos llamada buffer de salto objetivo (branch target buffer) se encarga de almacenar ciertas localizaciones como direcciones de salto. Las CPU modernas se apoyan en el predictor de saltos para acelerar las operaciones a través de la anticipación de las direcciones donde se ubican las siguientes instrucciones a ejecutar. Los buffers almacenan direcciones de saltos previos para facilitar la predicción de la siguiente.
Mediante la explotación de la vulnerabilidad descubierta, se pueden explotar las colisiones en la tabla de buffer de salto objetivo para descubrir las direcciones en las que se encuentran trozos de código específicos, de esta manera, se consigue que nada pueda detener la explotación de vulnerabilidades en aplicaciones y el propio sistema operativo. Actores maliciosos podrían utilizar exploits que muestren las localizaciones de la memoria para así asegurar la ejecución exitosa de malware, mientras que en el caso de tener ASLR activo se haría flush sin haber sido ejecutados.
Pero la utilización de la tabla de buffer de salto objetivo no es la única forma de saltarse ASLR. Aprovechando el fallo en las CPU de Intel, los exploits no necesitarán en muchos casos de apoyarse en una segunda vulnerabilidad de filtración de memoria para llevar a cabo el ataque. Además, la virtualización no esquiva el problema, por lo que los entornos cloud tampoco se libran de verse afectados.
Hay que tener en cuenta que la técnica desarrollada por los investigadores facilita la ejecución de otros ataques, los cuales pueden simplemente provocar un cuelgue del sistema o bien acceder a datos sensibles de los usuarios mediante el acceso a la memoria del kernel.
EL ARREGLO SERÁ “DOLOROSO” PARA USUARIOS Y EMPRESAS
Debido a que el origen del problema está en un fallo de diseño de las CPU Intel, este no puede ser arreglado mediante una actualización del microcódigo, por lo que la única alternativa que hay es la actualización de los sistemas operativos.
La solución pasa forzosamente por separar totalmente los procesos del usuario de la memoria del kernel, lo que dará como resultado una importante merma en el rendimiento de hasta el 30%, así que muchos usuarios verán una importante disminución en el desempeño de sus ordenadores tras aplicar las correspondientes actualizaciones.
Pero no solo los usuarios finales se verán perjudicados, ya que al no quedar los sistemas virtualizados aislados, entornos de computación en la nube como Amazon EC2, Microsoft Azure y Google Compute Engine también están afectados, por lo que las compañías encargadas ya están avisando a sus clientes.
¿ESTÁN AMD Y ARM AFECTADOS?
Está habiendo debate sobre si el histórico gran rival de Intel, AMD, está también afectado por este problema que permite saltarse la protección ofrecida por ASLR. Según un portavoz de la compañía de Sunnyvale, “los procesadores AMD no están afectados por los tipos de ataques contra los que protege la función de aislamiento de la tabla de páginas del núcleo. La microarquitectura de AMD no permite referencias de memoria, incluidas referencias especulativas, que al acceder a datos que exigen un mayor nivel de privilegios desde un modo con privilegios menores daría como resultado un error de página.”
Las declaraciones de AMD no se pueden contrastar debido a que Intel tiene embargados los detalles del fallo que afecta a sus procesadores, así que lo conocido hasta ahora puede cambiar parcial o totalmente con el paso del tiempo y según se vaya conociendo más detalles. Por otro lado, ya se han presentado parches para la versión ARM de Linux que separan totalmente los procesos de usuario de la memoria del kernel, evitando así la posibilidad de saltarse ASLR.