El PC dentro de tu PC: así son los anillos de ejecución negativos

El PC dentro de tu PC: así son los anillos de ejecución negativos

Josep Roca

Uno de los elementos más desconocidos que existen dentro de nuestros PCs: son unos procesadores que están integrados dentro de las propias CPUs de nuestros PCs, y cuyo trabajo es supuestamente es otorgar un entorno fiable, o «trusted» en inglés. ¿Pero qué significa esto y que consecuencias conlleva? Os explicamos que es este procesador y su relación con los anillos de ejecución negativos.

Desde el punto de vista de las empresas de informática, el hecho que una plataforma sea fiable no tiene nada que ver con lo que entendemos tradicionalmente como seguridad informática, sino con metodologías de control basadas en asegurarse de que los entornos son legales. Dicho de otra manera, que el usuario está ejecutando un sistema operativo y aplicaciones que ha adquirido no son piratas.

Los anillos de ejecución y su función

Cuando se hizo necesaria la implementación de sistemas operativos multitarea, las CPUs evolucionaron a incluir unidades MMU que se encargaban de controlar el acceso a la RAM tanto del sistema operativo y de las aplicaciones.

Con tal de aislar las partes sensibles de la memoria, a partir del 80386 en adelante se añadieron los anillos de ejecución, los cuales delimitan cuatro niveles de privilegio para el software, los cuales van desde el nivel 0 al nivel 3 y de mayor a menor rango de privilegio.

Anillos Ejecución

Cada proceso ejecutado por la CPU tiene un nivel de privilegio asociado, de tal manera que si la CPU está ejecutando un proceso con un nivel de privilegio 3 entonces no podrá acceder a las direcciones de memoria asociadas a los anillos 2, 1 y 0. Pero en cambio un proceso que se ejecute en el anillo 0 sí que podrá acceder a los anillos 0, 1, 2 y 3 debido a si mayor rango de privilegios.

Como curiosidad los anillos 1 y 2 no se suelen utilizar en Windows y Linux, estos sistemas operativos solo utilizan el 0 y el 3, y ciertos programas de virtualización como VirtualBox, VMWare y similares suelen tomar los anillos 1 y 2 para sí mismos.

Los anillos de ejecución negativos

CPU Seguridad

En realidad, no existen los anillos negativos, en el caso del anillo de ejecución -1 es un sobrenombre que se le da a la función de virtualización de la CPU que permite ejecutar un hipervisor capaz de hacer funcionar varios sistemas operativos al mismo tiempo.

En cuanto al anillo de ejecución -2 se refiere al modo de gerencia del sistema, el cual es un modo de operación que existe desde el 80396 en adelante, se ejecuta cunado un tipo especial de interrupción llamada SMI ocurre, entonces cuando se está ejecutando dicha interrupción todo el código relacionado se ejecuta en el modo de más alto privilegio de todos.

Debido a que esto puede ser explotado para la ejecución de software malicioso, ya que solo hace falta activar una interrupción de ese tipo y ejecutar dicho software en medio de esa interrupción. En realidad, no es algo nada fácil de hacer, pero existe la posibilidad y esto es lo que forzó tanto a Intel como a AMD a encontrar una solución al problema.

Un ordenador dentro de la CPU de tu ordenador: El AMD PSP y el Intel ME

¿La solución a la que llegaron? Crear un elemento adicional de control, un procesador aparte encargado de comprobar que todo el software que, entre este firmado, algo que resulta en un enorme sinsentido en el mundo del PC donde el desarrollo y distribución de los programas es completamente libre y abierto pero que “evita” el control remoto de nuestros ordenadores por parte de elementos maliciosos, pero que a su misma vez resulta en otra puerta trasera.

Dichos procesadores se encuentran en todos los PCs del mundo con arquitectura x86, estos tienen unos privilegios que corresponden al anillo -3 dentro del sistema y por tanto son los que más jerarquía de privilegios tienen, en el caso de AMD dicho procesador es el llamado PSP (Platform Secure Processor) y en el caso de Intel es el ME (Intel Management Engine).

AMD PSP

Los privilegios y funciones, tanto del PSP como del ME, son básicamente los siguientes:

  • Tienen acceso completo a la RAM del sistema de manera independiente a la CPU principal
  • Tienen acceso a la pila TCP/IP y a las interfaces de red de manera directa.
  • Puede enviar/recibir paquetes por la red, incluso con el SO teniendo esto vetado.
  • Se encuentra activos cuando el ordenador esta hibernando y cuando el resto del sistema esta apagado.
  • Se puede tomar el control de tu ordenador remotamente vía internet si se consigue el control sobre ellos.

No obstante, pese a que ambos realizan una función similar, ambos son dos implementaciones de hardware diferenciadas. Mientras que el PSP de AMD es una CPU Cortex A5, el ME es un Intel Pentium clásico, es decir, estamos hablando de un x86 dentro de su x86.

En realidad, funcionan como espías en el interior de nuestros ordenadores, a los que no se tiene acceso directamente de manera normal por el hecho que tanto el PSP como el ME bloquean por completo los accesos desde los otros anillos de ejecución del sistema hacía su zona privilegiada.  Se supone que hay formas de desactivarlos, y decimos que se supone porque no podemos comprobar cuando están activas estas unidades.