Modo de gestión del sistema
La versión actual de la página aún no ha sido revisada por colaboradores experimentados y puede diferir significativamente de la
versión revisada el 27 de mayo de 2016; las comprobaciones requieren
10 ediciones .
Modo de administración del sistema (SMM ) : modo de ejecución en procesadores x86 / x86-64 , en el que se suspende la ejecución de otro código (incluidos los sistemas operativos y el hipervisor ) y se inicia un programa especial almacenado en SM RAM en el modo más privilegiado.
La tecnología SMM se implementó por primera vez en el microprocesador Intel 386 SL. Inicialmente, SMM solo se ejecutaba en procesadores especiales (SL), pero se introdujo en 1992 en el 80486 y el Intel Pentium . AMD implementó la tecnología en Enhanced Am486 ( 1994 ). Todos los procesadores x86/x86-64 más recientes lo admiten.
Entre las posibles aplicaciones de SMM:
El sistema operativo se ejecuta en un " Anillo 0" de protección; sin embargo, el hipervisor (en los sistemas VT/AMD-v) tiene más privilegios y el modo de ejecución del hipervisor se denomina convencionalmente "Ring −1". En consecuencia, SMM, que tiene una prioridad más alta que el hipervisor, se denomina condicionalmente "Ring −2" [5] [6] [7] . El código que se ejecuta en modo SMM tiene acceso sin restricciones a toda la memoria del sistema, incluida la memoria del kernel y la memoria del hipervisor.
Activación de SMM
SMM se activa usando interrupciones SMI ( interrupción de administración del sistema ), que ocurre:
- En una señal del conjunto de chips o periféricos en la placa base. Se utiliza el pin SMI# [8] del procesador dedicado .
- Software SMI enviado por el software del sistema a través de un puerto de E/S (a menudo se usa el número de puerto B2 [9] ) [10] .
- Escriba en una dirección de E/S cuyo firmware esté configurado para requerir la activación de SMM.
En el límite de instrucción más cercano después de recibir la señal SMI#, el procesador almacena su estado en la memoria y realiza la transición a SMM. La instrucción RSM (0F AA [9] ) [8] se utiliza para salir de SMM y restaurar el estado del procesador .
Problemas
- De acuerdo con la arquitectura SMM, el sistema operativo no puede deshabilitar las interrupciones SMI.
- En conjuntos de chips más antiguos (antes de 2006), el bit D_LOCK no estaba configurado para proteger la memoria SMM (lo que permitía crear malware SMM) [5]
- Dado que los controladores SMM (controlador SMI) se instalan desde el firmware base del BIOS [5] , es posible que la configuración esperada de los periféricos importantes (por ejemplo, APIC ) en el sistema operativo y los programas SMM no coincidan.
- Trabajar en modo SMM suspende el sistema operativo. El estado del procesador se almacena en SMRAM [8] y las cachés de reescritura deben vaciarse. Debido a esto, se pueden violar los requisitos de tiempo real duro. El sistema operativo Windows y el kernel de Linux establecen "SMI Timeout", un período de tiempo en el que cualquier programa SMM debe devolver el control al sistema operativo.
- Es posible que se requiera un analizador lógico digital (equipo de depuración adicional) para determinar la entrada del procesador al SMM. Cuando se trabaja en SMM, se establece la señal del procesador SMIACT# [8] .
- La recuperación de los códigos del programa SMM para el análisis y la depuración también requiere un analizador lógico o ingeniería inversa del firmware del BIOS , ya que la memoria TSEG que almacena los programas SMM no está disponible para el sistema operativo en tiempo de ejecución.
Véase también
Notas
- ↑ Loïc Dufleot. "Problemas de seguridad relacionados con el modo de administración del sistema Pentium". Presentado en CanSecWest 2006, Vancouver, Canadá, 2006.
- ↑ Los hackers encuentran un nuevo lugar para ocultar los rootkits . Consultado el 2 de mayo de 2011. Archivado desde el original el 8 de junio de 2011. (indefinido)
- ↑ Sherri Sparks y Shawn Embleton. Rootkits SMM: una nueva generación de malware independiente del sistema operativo. Presentado en Black Hat USA, Las Vegas, NV, USA, 2008.
- ↑ https://www.youtube.com/watch?v=X72LgcMpM9k&feature=player_detailpage#t=2070s Archivado el 25 de junio de 2016 en Wayback Machine Google Tech Talks - Coreboot - 00:34:30
- ↑ 1 2 3 invisiblethingslab.com/resources/misc09/smm_cache_fun.pdf Rafal Wojtczuk, Joanna Rutkowska , "Atacando la memoria SMM a través del envenenamiento de caché de CPU Intel®"
- ↑ Anillo −1 vs. Anillo −2: contenedores de controladores de interrupciones de SMM maliciosos en AMD-V Archivado el 13 de noviembre de 2013 en Wayback Machine , 2010
- ↑ Análisis detallado del modo de administración del sistema de x86 Archivado el 23 de septiembre de 2013. , Georg Wassen: "Si los monitores de máquinas virtuales se pueden llamar Ring −1, el modo de administración del sistema es Ring −2".
- ↑ 1 2 3 4 Modo de administración del sistema de Intel por Robert R. Collins
- ↑ 1 2 código hexadecimal
- ↑ aprox. 5
Literatura
Enlaces