Zum Inhalt springen

System Management Mode

aus Wikipedia, der freien Enzyklopädie
Dies ist eine alte Version dieser Seite, zuletzt bearbeitet am 12. Mai 2009 um 07:28 Uhr durch Succu (Diskussion | Beiträge) (Siehe auch:: Doppelpunkt ist unnötig). Sie kann sich erheblich von der aktuellen Version unterscheiden.

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 Energie-Management und herstellerspezifische Anwendungen gedacht. Die im SMM ausgeführte Firmware unterbricht das Betriebssystem und die laufenden Anwendungen in transparenter Art und Weise.

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). Der Prozessorkontext wird dabei gespeichert und nach Beendigung des SMM mit der Instruktion RSM wiederhergestellt.

Innerhalb des SMM können, wie bei hoher Pivilegierung, alle E/A- und Systembefehle verwendet werden. Es wird ein eigener Adressierungsmodus, der SMRAM genannt wird, verwendet. Trotzdem kann auf den gesamten physikalischen Speicher zugegriffen werden.

Interrupts werden im SMM gesperrt, sodass 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:

  1. Während der Ausführung im SMM kann nicht auf Interrupts reagiert werden.
  2. 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

  1. Intel® 64 and IA-32 Architectures Software Developer's Manual Volume 3B: System Programming Guide(engl.)
  2. Using CPU System Management Mode to Circumvent Operating System Security Functions(engl.)
  3. "System Management Mode Hack" in Phrack(engl.)
  4. SMI Detector: a simple module for detecting System Management Interrupts, LKML(engl.)