
Principles and Implementation Techniques of Software-Based Fault Isolation
Beim Schutz eines Computersystems ist es oft notwendig, eine nicht vertrauenswürdige Komponente in einer separaten Schutzdomäne zu isolieren und nur eine kontrollierte Interaktion zwischen der Domäne und dem Rest des Systems zu ermöglichen. Die softwarebasierte Fehlerisolierung (SFI) richtet eine logische Schutzdomäne ein, indem sie dynamische Prüfungen vor Speicher- und Kontrollübertragungsanweisungen einfügt.
Im Vergleich zu anderen Isolationsmechanismen hat sie den Vorteil, dass sie sehr effizient ist (mit weniger als 5 % Leistungs-Overhead), problemlos auf älteren nativen Code anwendbar ist und keine spezielle Hardware oder Betriebssystemunterstützung benötigt. SFI wurde bereits in vielen Anwendungen erfolgreich eingesetzt, darunter die Isolierung von Betriebssystem-Kernel-Erweiterungen, die Isolierung von Plug-ins in Browsern und die Isolierung nativer Bibliotheken in der Java Virtual Machine.
In dieser Monographie werden die SFI-Politik, ihre wichtigsten Implementierungs- und Optimierungstechniken sowie eine SFI-Formalisierung in einer idealisierten Assemblersprache behandelt. Sie schließt mit einer kurzen Diskussion über zukünftige Forschungsrichtungen und einem Blick auf andere Eigenschaften, die starke Integritäts- und Vertraulichkeitsgarantien für Softwaresysteme bieten.