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

Технология 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»[5][6][7]. Код, работающий в режиме SMM, получает неограниченный доступ ко всей системной памяти, включая память ядра и память гипервизора.

Активация SMM

[править | править код]

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

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

Проблемы

[править | править код]

См. также

[править | править код]

Примечания

[править | править код]
  1. Loic Duflot. «Security Issues Related to Pentium System Management Mode.» Presented at CanSecWest 2006, Vancouver, Canada, 2006.
  2. Hackers find a new place to hide rootkits. Дата обращения: 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. https://www.youtube.com/watch?v=X72LgcMpM9k&feature=player_detailpage#t=2070s Архивная копия от 25 июня 2016 на Wayback Machine Google Tech Talks — Coreboot — 00:34:30
  5. 1 2 3 invisiblethingslab.com/resources/misc09/smm_cache_fun.pdf Rafal Wojtczuk, Рутковская, Йоанна, «Attacking SMM Memory via Intel® CPU Cache Poisoning»
  6. Ring −1 vs. Ring −2: Containerizing Malicious SMM Interrupt Handlers on AMD-V Архивная копия от 13 ноября 2013 на Wayback Machine, 2010
  7. In-depth Analysis of x86’s System Management Mode Архивировано 23 сентября 2013 года., Georg Wassen: "If Virtual Machine Monitors can be called Ring −1, the System Management Mode is Ring −2. "
  8. 1 2 3 4 Intel’s System Management Mode by Robert R. Collins
  9. 1 2 Шестнадцатеричный код
  10. прим. 5

Литература

[править | править код]

Ссылки

[править | править код]