Nov 29, 2024; Defence
Echtzeit-AGImplementierung und Nutzung von Memory Protection Keys (MPK) in einem mikrokernbasierten Betriebssystem
Memory Protection Keys (MPK) ist eine Hardwarefunktion, um den virtuellen Speicher einer Anwendung in Gruppen zu unterteilen. Eine einzelne unprivilegierte Instruktion verändert die Lese- und Schreibberechtigungen dieser Gruppen. MPK-Berechtigungen sind Thread-lokal, Gruppen sind hingegen pro Prozess festgelegt. MPK kann genutzt werden, um die Speichersicherheit eines Systems zu erhöhen, indem eine Isolierung zwischen verschiedenen Teilen eines Prozesses erstellt wird. Potenzielle Angriffe auf geschützte Daten können durch die Isolierung vereitelt werden, die Angriffe lösen stattdessen lediglich eine Schutzverletzung aus. MPK ist auch in der Lage klassische Rechteverwaltung in einigen Szenarien abzulösen, wodurch die Leistung des Programms erhöht wird.
In dieser Arbeit wird eine MPK-Unterstützung für L4Re, ein mikrokernbasiertes Betriebssystem, implementiert. Dazu wird der Kern erweitert, um die Zuweisung von Speichergruppen zu ermöglichen. Zusätzlich wird eine Bibliothek „L4pk“ zum Verwalten der Berechtigungen der Gruppen entwickelt. Die Leistungstests zeigen einen zehnfachen Leistungsunterschied zwischen dem Verändern von Gruppenberechtigungen und dem Verändern eines Seitentabelleneintrags, um die gleichen Berechtigungen zu erreichen.