Interested Article - System Management Mode

Режим системного управления ( англ. System Management Mode, SMM ) — режим исполнения на процессорах x86 / x86-64 , при котором приостанавливается исполнение другого кода (включая операционные системы и гипервизор ), и запускается специальная программа , хранящаяся в SM RAM в наиболее привилегированном режиме.

Технология SMM была впервые реализована в микропроцессоре Intel 386 SL. Изначально SMM работал только на специальных процессорах (SL), но в 1992 году была внедрена в 80486 и Intel Pentium . AMD реализовала технологию в Enhanced Am486 ( 1994 ). Все более современные x86/x86-64 процессоры поддерживают её.

Среди возможных применений SMM:

Операционная система работает в защитном « Кольце 0»; однако, гипервизор (в системах VT/AMD-v) является более привилегированным, и режим исполнения гипервизора условно называется «Кольцом −1». Соответственно, SMM, являющимся более приоритетным, чем гипервизор, условно называют «Кольцом −2» . Код, работающий в режиме SMM, получает неограниченный доступ ко всей системной памяти, включая память ядра и память гипервизора.

Активация SMM

SMM активируется при помощи прерываний SMI ( system management interrupt — прерывание системного управления), которое возникает:

  • По сигналу от чипсета или периферии на материнской плате. Используется выделенный контакт процессора SMI# .
  • Программный SMI, посланный системным ПО через порт ввода-вывода (часто используется порт номер B2 ) .
  • Запись по адресу ввода-вывода, для которого микропрограммно установлена необходимость активации SMM.

На ближайшей границе инструкций после получения сигнала SMI#, процессор сохраняет своё состояние в памяти и переходит в SMM. Для выхода из SMM и восстановления состояния процессора используется инструкция RSM (0F AA ) .

Проблемы

  • Согласно архитектуре SMM, прерывания SMI не могут быть заблокированы операционной системой
  • На старых чипсетах (до 2006 года) не выставлялся бит D_LOCK для защиты памяти SMM (что позволяло создавать SMM-зловреды)
  • Так как программы обработки SMM (SMI handler) устанавливаются из базовой микропрограммы BIOS , предполагаемые настройки важной периферии (например, APIC ) в ОС и программах SMM могут не совпадать
  • Работа в режиме SMM приостанавливает работу ОС. Состояние процессора сохраняется в SMRAM , а кэши write-back должны быть сброшены. Из-за этого могут нарушиться требования жесткого реального времени. ОС Windows и ядро Linux устанавливают «SMI Timeout» — период времени, в который любая программа SMM должна вернуть управление операционной системе.
  • Для определения входа процессора в SMM может потребоваться цифровой логический анализатор (дополнительное отладочное оборудование). При работе в SMM выставляется сигнал процессора SMIACT# .
  • Получение кодов программ SMM для их анализа и отладки также требует логического анализатора или обратной разработки микропрограмм BIOS, так как во время исполнения память TSEG, хранящая программы SMM, недоступна ОС.

См. также

  • Процессор MediaGX , использующий SMM для эмуляции аппаратных функций
  • Extensible Firmware Interface (EFI)
  • Coreboot , реализующий SMM/SMI обработчики для некоторых чипсетов

Примечания

  1. Loic Duflot. «Security Issues Related to Pentium System Management Mode.» Presented at CanSecWest 2006, Vancouver, Canada, 2006.
  2. . Дата обращения: 2 мая 2011. 8 июня 2011 года.
  3. Sherri Sparks and Shawn Embleton. «SMM Rootkits: A New Breed of OS Independent Malware.» Presented at Black Hat USA, Las Vegas, NV, USA, 2008.
  4. от 25 июня 2016 на Wayback Machine Google Tech Talks — Coreboot — 00:34:30
  5. invisiblethingslab.com/resources/misc09/smm_cache_fun.pdf Rafal Wojtczuk, Рутковская, Йоанна , «Attacking SMM Memory via Intel® CPU Cache Poisoning»
  6. от 13 ноября 2013 на Wayback Machine , 2010
  7. 23 сентября 2013 года. , Georg Wassen: "If Virtual Machine Monitors can be called Ring −1, the System Management Mode is Ring −2. "
  8. Intel’s System Management Mode by Robert R. Collins
  9. Шестнадцатеричный код
  10. прим. 5

Литература

  • by Robert R. Collins, 1997 (англ.)

Ссылки

  • Badness of SMM, and , 2005
  • , Chapter 6
  • , 2006
  • , 2008
Источник —

Same as System Management Mode