„System Management Mode“ – Versionsunterschied
[gesichtete Version] | [ungesichtete Version] |
K Formatierung |
K |
||
Zeile 1: | Zeile 1: | ||
Der '''System Management Mode''' ('''SMM''') ist ein Ausführungsmodus von [[Mikroprozessor|Prozessoren]] der [[X86-Prozessor|x86-Architektur]]. Er wurde mit dem Intel386 SL eingeführt und ist für die Hardware-Kontrolle, das |
Der '''System Management Mode''' ('''SMM''') ist ein Ausführungsmodus von [[Mikroprozessor|Prozessoren]] der [[X86-Prozessor|x86-Architektur]]. Er wurde mit dem Intel386 SL eingeführt und ist für die Hardware-Kontrolle, das Energiemanagement und herstellerspezifische Anwendungen gedacht. Die im SMM ausgeführte [[Firmware]] unterbricht das [[Betriebssystem]] und die laufenden Anwendungen auf [[Transparenz (Computersystem)|transparente]] Art. |
||
== Charakteristika == |
== Charakteristika == |
||
Der Übergang aus dem [[Protected Mode]], dem [[Virtual 8086 Mode]] oder dem [[Real Mode]] in den SMM erfolgt immer über einen externen, nicht-maskierbaren System Management Interrupt (SMI). Es ist allerdings möglich, diesen Interrupt indirekt per Software auszulösen, indem ein Programm |
Der Übergang aus dem [[Protected Mode]], dem [[Virtual 8086 Mode]] oder dem [[Real Mode]] in den SMM erfolgt immer über einen externen, nicht-maskierbaren ''System Management Interrupt'' (SMI). Es ist allerdings möglich, diesen [[Interrupt]] indirekt per Software auszulösen, indem ein Programm bestimmte privilegierte Portzugriffe tätigt. Der Prozessorkontext wird dabei gespeichert und nach Beendigung des SMM mit der Instruktion ''RSM'' wiederhergestellt. |
||
Innerhalb des SMM können, wie bei hoher Privilegierung, alle E/A- und Systembefehle verwendet werden. Es wird ein eigener Adressierungsmodus verwendet, der SMRAM genannt wird. Trotzdem kann auf den gesamten physischen Speicher zugegriffen werden. |
Innerhalb des SMM können, wie bei hoher Privilegierung, alle E/A- und Systembefehle verwendet werden. Es wird ein eigener Adressierungsmodus verwendet, der SMRAM genannt wird. Trotzdem kann auf den gesamten physischen Speicher zugegriffen werden. |
||
Interrupts werden im SMM gesperrt, |
Interrupts werden im SMM gesperrt, so dass erst nach dem Austritt eine Bearbeitung erfolgen kann. Insbesondere kann eine verschachtelte Ausführung des SMM nicht passieren, da das Auftreten eines SMIs während der Ausführung im SMM nicht möglich ist.<ref>[http://www.intel.com/products/processor/manuals/index.htm Intel® 64 and IA-32 Architectures Software Developer's Manual Volume 3B: System Programming Guide]</ref> |
||
== Problematiken == |
== Problematiken == |
||
=== Sicherheit === |
=== Sicherheit === |
||
Da die Ausführung im SMM für das Betriebssystem und die laufenden Anwendungen (wie beispielsweise Virenscanner) nicht sichtbar ist, stellt der SMM einen erstrebenswerten Betriebsmodus für Schadsoftware dar.<ref>[http://www.ssi.gouv.fr/archive/fr/sciences/fichiers/lti/cansecwest2006-duflot-paper.pdf Using CPU ''System Management Mode'' to Circumvent Operating System Security Functions]( |
Da die Ausführung im SMM für das Betriebssystem und die laufenden Anwendungen (wie beispielsweise Virenscanner) nicht sichtbar ist, stellt der SMM einen erstrebenswerten Betriebsmodus für Schadsoftware dar.<ref>[http://www.ssi.gouv.fr/archive/fr/sciences/fichiers/lti/cansecwest2006-duflot-paper.pdf Using CPU ''System Management Mode'' to Circumvent Operating System Security Functions](PDF; 130 kB)</ref><ref>[http://www.phrack.org/issues.html?issue=65&id=7#article "System Management Mode Hack" in Phrack]</ref> |
||
=== Echtzeit === |
=== Echtzeit === |
||
Zeile 17: | Zeile 17: | ||
# Während der Ausführung im SMM kann nicht auf Interrupts reagiert werden. |
# Während der Ausführung im SMM kann nicht auf Interrupts reagiert werden. |
||
# Die Ausführungszeit wird dem Echtzeitsystem entzogen. |
# Die Ausführungszeit wird dem Echtzeitsystem entzogen. |
||
Unter [[Linux]] existiert ein Kernelmodul, um die Ausführung im SMM aufgrund der vom Betriebssystem „gestohlenen“ Zeit zu detektieren.<ref>[http://lkml.org/lkml/2009/4/2/426 SMI Detector: a simple module for detecting System Management Interrupts, LKML] |
Unter [[Linux]] existiert ein Kernelmodul, um die Ausführung im SMM aufgrund der vom Betriebssystem „gestohlenen“ Zeit zu detektieren.<ref>[http://lkml.org/lkml/2009/4/2/426 SMI Detector: a simple module for detecting System Management Interrupts, LKML]</ref> |
||
== Siehe auch == |
== Siehe auch == |
Version vom 24. März 2015, 12:03 Uhr
Der System Management Mode (SMM) ist ein Ausführungsmodus von Prozessoren der x86-Architektur. Er wurde mit dem Intel386 SL eingeführt und ist für die Hardware-Kontrolle, das Energiemanagement und herstellerspezifische Anwendungen gedacht. Die im SMM ausgeführte Firmware unterbricht das Betriebssystem und die laufenden Anwendungen auf transparente Art.
Charakteristika
Der Übergang aus dem Protected Mode, dem Virtual 8086 Mode oder dem Real Mode in den SMM erfolgt immer über einen externen, nicht-maskierbaren System Management Interrupt (SMI). Es ist allerdings möglich, diesen Interrupt indirekt per Software auszulösen, indem ein Programm bestimmte privilegierte Portzugriffe tätigt. Der Prozessorkontext wird dabei gespeichert und nach Beendigung des SMM mit der Instruktion RSM wiederhergestellt.
Innerhalb des SMM können, wie bei hoher Privilegierung, alle E/A- und Systembefehle verwendet werden. Es wird ein eigener Adressierungsmodus verwendet, der SMRAM genannt wird. Trotzdem kann auf den gesamten physischen Speicher zugegriffen werden.
Interrupts werden im SMM gesperrt, so dass erst nach dem Austritt eine Bearbeitung erfolgen kann. Insbesondere kann eine verschachtelte Ausführung des SMM nicht passieren, da das Auftreten eines SMIs während der Ausführung im SMM nicht möglich ist.[1]
Problematiken
Sicherheit
Da die Ausführung im SMM für das Betriebssystem und die laufenden Anwendungen (wie beispielsweise Virenscanner) nicht sichtbar ist, stellt der SMM einen erstrebenswerten Betriebsmodus für Schadsoftware dar.[2][3]
Echtzeit
Durch die Ausführung im SMM können bei x86-Echtzeitsystemen Latenzen im Millisekundenbereich auftreten. Zweierlei Aspekte machen eine Verletzung der Echtzeitschranken möglich:
- Während der Ausführung im SMM kann nicht auf Interrupts reagiert werden.
- Die Ausführungszeit wird dem Echtzeitsystem entzogen.
Unter Linux existiert ein Kernelmodul, um die Ausführung im SMM aufgrund der vom Betriebssystem „gestohlenen“ Zeit zu detektieren.[4]
Siehe auch
Einzelnachweise
- ↑ Intel® 64 and IA-32 Architectures Software Developer's Manual Volume 3B: System Programming Guide
- ↑ Using CPU System Management Mode to Circumvent Operating System Security Functions(PDF; 130 kB)
- ↑ "System Management Mode Hack" in Phrack
- ↑ SMI Detector: a simple module for detecting System Management Interrupts, LKML