Implementation and Analysis of Software Based Fault Isolation


Scott M. Silver. Implementation and Analysis of Software Based Fault Isolation. Technical Report number PCS-TR96-287, Dartmouth Computer Science, Hanover, NH, June 1996. ©Copyright the author. Available as Dartmouth Computer Science Technical Report PCS-TR96-287. Senior Honors Thesis. Advisor: David Kotz.


Extensible applications rely upon user-supplied, untrusted modules to extend their functionality. To remain reliable, applications must isolate themselves from user modules. One method places each user module in a separate address space (process), which uses hardware virtual memory support to isolate the user process. Costly inter-process communication, however, prohibits frequent communication between the application and the untrusted module. We implemented and analyzed a software method for isolating an application from user modules. The technique uses a single address space. We provide a logical address space and per-module access to system resources for each module. Our software technique is a two-step process. First, we augment a module's code so that it cannot access any address outside of an assigned range. Second, we prevent the module from using system calls to access resources outside of its fault domain.

This method for software isolation has two particular advantages over processes. First, for frequently communicating modules, we significantly reduce context switch time. Thus, we demonstrate near-optimal inter-module communication using software fault isolation. Second, our software-based techniques provide an efficient and expedient solution in situations where only one address space is available (e.g., kernel, or a single-address-space operating system).

Citable with [BibTeX]

Keywords: [security]

Available from the publisher: [page]

Available from the author: [bib]
Please obtain a copy from the publisher.

[Kotz research]