Modo de Gerencia del Sistema

El Modo de Gerencia de Sistema, o System Management Mode (SMM) en inglés, es un modo de operación lanzado por primera vez con el Intel 386SL y disponible en microprocesadores posteriores de la arquitectura x86, en el que es suspendida toda la ejecución normal (incluyendo el sistema operativo), y es ejecutado un software especial separado en un modo de alto privilegio (usualmente un depurador en firmware o asistido por hardware).

Uso

Algunos usos comunes del SMM son:

  • Para emular hardware de la tarjeta madre que no está implementado o tiene errores (bugs).
  • Operaciones de gerencia de energía, como encendido de ventiladores.
  • Para emular un ratón o un teclado PS/2 desde un USB.
  • Funciones de seguridad del sistema, como apagar el computador cuando hay alta temperatura en el CPU.
  • Configuración del sistema, como por ejemplo en los computadores notebook de Toshiba e IBM.

Entrando al SMM

Al SMM se entra por medio del SMI, interrupción de gerencia del sistema (system management interrupt), que es causada por:

  • El hardware de la tarjeta madre enviando una señal por medio de un pin designado del chip procesador. Esta señal puede ser un evento independiente, o disparada por el software del sistema vía una lectura de I/O de una localización considerada especial por la lógica de la tarjeta madre (el puerto $B2 es común).
  • Una escritura de I/O hacia una localización que el firmware ha solicitado para que el chip del procesador actúe.

Problemas

  • Puesto que el código de SMM (manejador del SMI) es instalado por el firmware del sistema (BIOS), el sistema operativo y el código del SMM pueden tener expectativas sobre los ajustes del hardware que son incompatibles, por ejemplo diferentes ideas de cómo el APIC debe ser iniciado.
  • Las operaciones en el SIMM toman tiempo del CPU fuera del sistema operativo, ya que el estado del CPU debe ser almacenado a la memoria (SMRAM) y cualquier caché writeback debe ser limpiado. Esto puede destruir el comportamiento de tiempo real y causar que se pierdan ticks del reloj.
  • Un analizador lógico digital puede ser requerido para determinar si el SMM está ocurriendo.
  • Recuperando al código del manejador del SMI para analizarlo por errores, vulnerabilidades, y secretos requiere un analizador lógico o desensamblar el firmware del sistema.

Véase también

  • Modo real — Modo irreal — Modo 8086 virtual — Modo protegido — Modo de Gerencia del Sistema — Modo largo
  • El procesador MediaGX, que implementa hardware no existente vía el SMM.
  • Extensible Firmware Interface.

Enlaces externos

  • Badness of SMM
  • [1] - This old edition of the Intel Software developer's manual has a chapter (12) on SMM, starting on page 403
  • The AMD Hammer BIOS and Kernel Developer's guide has a chapter on SMM
  • An exploit against SMM based on OpenBSD: http://www.ssi.gouv.fr/archive/fr/sciences/fichiers/lti/cansecwest2006-duflot-paper.pdf
  • Getting into the SMRAM: SMM Reloaded http://cansecwest.com/csw09/csw09-duflot.pdf Archivado el 19 de abril de 2009 en Wayback Machine.
Control de autoridades
  • Proyectos Wikimedia
  • Wd Datos: Q1197124
  • Wd Datos: Q1197124