Vulnerabilidades en el kernel Linux que afectan a todas las arquitecturas contemporáneas
Un misterioso error de seguridad afecta a todas las arquitecturas de CPU contemporáneas que tienen capacidad para implementar memoria virtual. Probablemente se necesite el rediseño total de estas arquitecturas de hardware para solventar el problema por completo, pero ya se ha trabajado en parches para enmendarlo desde el software y los parches ya están aterrizando en el kernel Linux. En el caso de los sistemas de Microsoft basados en Windows NT ya se empezaron a resolver en noviembre del año pasado. Otro caso similar al que tuvimos con la conocida vulnerabilidad que afectaba a las memorias RAM y que se conocía como Rowhammer, comprometiendo la seguridad.
Pues bien, ahora este nuevo problema podría estar afectando a entornos de virtualización tan comunes y usados como los servicios de Amazon Web Services (AWS) EC2 y también a los de Google Compute Engine entre otros. Lo cierto es que el problema no es demasiado grave, pero el calado es amplio debido a la gran cantidad de arquitecturas a las que afecta, además de que resolver el problema mediante software es complicado. Concretamente el problema radica en el LWN, las tablas de aislamiento de páginas del kernel y que intervienen en la gestión de memoria por parte del kernel. Entonces nos encontramos con una solución complicada si se hace por software y que no implicaría la mejor de las soluciones y por otro lado tenemos ir a la raíz del problema y rediseñar el hardware, concretamente las arquitecturas afectadas que permiten gestionar este tipo de memoria. Eso tampoco es barato ni rápido, puesto que se tendrá que esperar a nuevas generaciones de hardware que evidentemente tendríamos que adquirir.
Pero volviendo a la solución de software, es decir, mediante parches, tampoco es buena ya que afectaría gravemente al rendimiento. Nuestra CPU podría tener una pérdida considerable de rendimiento, de hasta el 50%. ¿Por qué? Pues para solucionarlo se tendría que generar un código para que se vacíen la memoria del TLB (Translation Lookaside Buffer), una cache que acelera bastante el rendimiento localizando más rápido dónde se encuentran los datos y las instrucciones en la memoria virtual del sistema. Pero al tenerlos que borrar cada vez que se inicia el kernel y cada vez que el código de usuario reanude su ejecución, pues el problema es notable…
El artículo Vulnerabilidades en el kernel Linux que afectan a todas las arquitecturas contemporáneas ha sido originalmente publicado en Linux Adictos.