stringtranslate.com

Modo de gestión del sistema

El modo de administración del sistema ( SMM , a veces llamado anillo −2 en referencia a los anillos de protección ) [1] [2] es un modo operativo de las unidades de procesamiento central (CPU) x86 en el que se suspende toda ejecución normal, incluido el sistema operativo . Luego se ejecuta un sistema de software alternativo que generalmente reside en el firmware de la computadora, o un depurador asistido por hardware , con privilegios elevados.

Se lanzó por primera vez con el Intel 386SL . [3] [4] Si bien inicialmente se requerían versiones SL especiales para SMM, Intel incorporó SMM en sus procesadores 486 y Pentium de línea principal en 1993. AMD implementó el SMM de Intel con los procesadores Am386 en 1991. [5] Está disponible en todos los microprocesadores posteriores en la arquitectura x86 . [ cita requerida ]

En la arquitectura ARM, el modo de nivel de excepción 3 (EL3) también se conoce como modo de monitorización segura o modo de gestión del sistema. [6]

Operación

SMM es un modo operativo de propósito especial que se proporciona para manejar funciones de todo el sistema, como administración de energía, control de hardware del sistema o código propietario diseñado por OEM. Está destinado a ser utilizado únicamente por el firmware del sistema ( BIOS o UEFI ), no por software de aplicaciones o software de sistemas de propósito general. El principal beneficio de SMM es que ofrece un entorno de procesador distinto y fácilmente aislado que opera de manera transparente para el sistema operativo o las aplicaciones ejecutivas y de software. [ cita requerida ]

Para lograr transparencia, el SMM impone ciertas reglas. El SMM solo puede ser accedido a través de SMI (System Management Interrupt). El procesador ejecuta el código SMM en un espacio de direcciones separado (SMRAM) que el firmware debe hacer inaccesible para otros modos operativos de la CPU . [7]

El modo de administración del sistema puede direccionar hasta 4 GB de memoria como modo real enorme . En procesadores x86-64 , SMM puede direccionar >4 GB de memoria como modo de dirección real. [8]

Uso

Inicialmente, el modo de administración del sistema se utilizaba para implementar funciones de administración de energía y control de hardware como la administración avanzada de energía (APM). Sin embargo, los fabricantes de BIOS y los OEM han confiado en el SMM para funciones más nuevas como la interfaz avanzada de configuración y energía (ACPI). [9] [10]

Algunos usos del Modo de Gestión del Sistema son:

El modo de administración del sistema también se puede utilizar de forma abusiva para ejecutar rootkits con altos privilegios , como se demostró en Black Hat 2008 [14] y 2015. [15]

Entrando a SMM

El acceso al SMM se realiza a través de la SMI (interrupción de gestión del sistema), que se invoca mediante:

Al ingresar a SMM, el procesador busca la primera instrucción en la dirección SMBASE (contenido del registro SMBASE) + 8000h (por defecto 38000h), utilizando los registros CS = 3000h y EIP = 8000h. El valor del registro CS (3000h) se debe al uso de direcciones de memoria en modo real por parte del procesador cuando está en SMM. En este caso, el CS se agrega internamente con 0h en su extremo más a la derecha.

Problemas

Por diseño, el sistema operativo no puede anular o deshabilitar el SMI. Debido a este hecho, es un objetivo para rootkits maliciosos que residen en él, [18] [19] incluidos los "implantes" de la NSA , [20] que tienen nombres de código individuales para hardware específico, como SOUFFLETROUGH para los firewalls de Juniper Networks , [21] SCHOOLMONTANA para los enrutadores de la serie J de la misma empresa, [22] DEITYBOUNCE para DELL, [23] o IRONCHEF para los servidores HP Proliant . [24]

Un código BIOS SMM diseñado incorrectamente y probado de manera insuficiente puede hacer suposiciones erróneas y no funcionar correctamente al interrumpir algunos otros modos operativos x86 como PAE o el modo largo de 64 bits . [25] Según la documentación del kernel de Linux , alrededor de 2004, tales implementaciones defectuosas de la función de soporte heredado de USB eran una causa común de fallas, por ejemplo, en placas base basadas en el chipset Intel E7505 . [11]

Dado que el código SMM (controlador SMI) lo instala el firmware del sistema ( BIOS ), el sistema operativo y el código SMM pueden tener expectativas sobre configuraciones de hardware que son incompatibles, como diferentes ideas sobre cómo se debe configurar el Controlador de interrupciones programable avanzado (APIC).

Las operaciones en SMM consumen tiempo de CPU de las aplicaciones, el núcleo del sistema operativo y el hipervisor , con efectos magnificados para procesadores multinúcleo, ya que cada SMI hace que todos los núcleos cambien de modo. [26] También hay cierta sobrecarga involucrada con la activación y desactivación de SMM, ya que el estado de la CPU debe almacenarse en la memoria (SMRAM) y cualquier caché de escritura diferida debe vaciarse. Esto puede destruir el comportamiento en tiempo real y hacer que se pierdan tics de reloj . Los núcleos de Windows y Linux definen una configuración de "Tiempo de espera de SMI", un período dentro del cual los controladores de SMM deben devolver el control al sistema operativo, o se " colgará " o " fallará ".

El SMM puede alterar el comportamiento de aplicaciones en tiempo real con requisitos de tiempo restringidos.

Es posible que se requiera un analizador lógico para determinar si la CPU ha ingresado a SMM (verificando el estado del pin SMIACT# de la CPU). [16] Para recuperar el código del controlador SMI y analizarlo en busca de errores, vulnerabilidades y secretos, se requiere un analizador lógico o el desmontaje del firmware del sistema.

Véase también

Referencias

  1. ^ Domas, Christopher (20 de julio de 2015). "El sumidero de la memoria" (PDF) . Black Hat . Consultado el 22 de agosto de 2015 .
  2. ^ Tereshkin, Alexander; Wojtczuk, Rafal (29 de julio de 2009). "Introducción a los rootkits Ring-3" (PDF) . Invisible Things Lab , Black Hat USA . pág. 4. Consultado el 22 de agosto de 2015 .
  3. ^ "Los SMI son EEEEVIL (Parte 1)". msdn.com . Microsoft. 2020-07-17.
  4. ^ Ellis, Simson C., "El microprocesador 386 SL en las computadoras portátiles", Intel Corporation, Microcomputer Solutions, marzo/abril de 1991, página 20
  5. ^ "Hoja de datos de AMD Am386SX/SXL/SXLV" (PDF) . AMD.
  6. ^ https://documentation-service.arm.com/static/5ed11e40ca06a95ce53f905c?token= [ URL básica PDF ]
  7. ^ "Manual del desarrollador de arquitecturas Intel 64 e IA-32: vol. 3B" (PDF) . Intel.
  8. ^ Manual de desarrollo de software Intel 64 e IA-32, vol. 3, Modo de administración del sistema.
  9. ^ "Los SMI son EEEEVIL (Parte 2)". msdn.com . Microsoft.
  10. ^ "Modo de administración del sistema - Wiki de OSDev" . wiki.osdev.org . Consultado el 12 de septiembre de 2020 .
  11. ^ por Vojtech Pavlik (enero de 2004). "Documentación del núcleo de Linux: compatibilidad con USB Legacy". kernel.org . Consultado el 6 de octubre de 2013 .
  12. ^ Charlas técnicas de Google – Coreboot – 00:34:30.
  13. ^ Especificación de inicialización de la plataforma UEFI .
  14. ^ Robert McMillan (10 de mayo de 2008). "Los piratas informáticos encuentran un nuevo lugar para ocultar rootkits". InfoWorld .
  15. ^ Rob Williams (7 de agosto de 2015). "Investigadores descubren un exploit rootkit en procesadores Intel que data de 1997". HotHardware.com .
  16. ^ ab Modo de gestión del sistema de Intel por Robert R. Collins
  17. ^ US 5963738, "Sistema informático para leer/escribir la configuración del sistema utilizando instrucciones de E/S"  .
  18. ^ Shawn Embleton; Sherri Sparks; Cliff Zou (septiembre de 2008). "SMM Rootkits: una nueva raza de malware independiente del sistema operativo" (PDF) . ACM . Consultado el 6 de octubre de 2013 .
  19. ^ "Los piratas informáticos encuentran un nuevo lugar para ocultar rootkits". PC World. 2008-05-09 . Consultado el 2013-10-06 .
  20. ^ ¡ La fuente número uno de filtraciones de todo el mundo! (30 de diciembre de 2013). "Catálogo de vulnerabilidades de la División ANT de la NSA para casi todos los principales programas, hardware y firmware | LeakSource". Leaksource.wordpress.com. Archivado desde el original el 2 de enero de 2014. Consultado el 13 de enero de 2014 .{{cite web}}: CS1 maint: numeric names: authors list (link)
  21. ^ "Schneier on Security: SOUFFLETROUGH: Exploit of the Day de la NSA". Schneier.com. 2013-12-30 . Consultado el 2014-01-13 .
  22. ^ "Schneier on Security: SCHOOLMONTANA: Exploit of the Day de la NSA". Schneier.com. 2008-05-30 . Consultado el 2014-01-16 .
  23. ^ "Schneier sobre seguridad". schneier.com .
  24. ^ "Schneier on Security: IRONCHEF: Exploit of the Day de la NSA". Schneier.com. 2014-01-03 . Consultado el 2014-01-13 .
  25. ^ http://images0.cnitblog.com/cnitblog_com/yuhensong/mode.JPG [ archivo de imagen URL simple ]
  26. ^ Brian Delgado y Karen L. Karavanic, "Implicancias en el rendimiento del modo de gestión del sistema", Simposio internacional IEEE 2013 sobre caracterización de la carga de trabajo, 22 al 24 de septiembre, Portland, OR, EE. UU.

Lectura adicional