Portable Software Fault Isolation
Authors: Joshua Kroll, Gordon Stewart and Andrew Appel
Paper Information
| Title: | Portable Software Fault Isolation |
| Authors: | Joshua Kroll, Gordon Stewart and Andrew Appel |
| Proceedings: | CSF 2014 Proceedings |
| Editors: | Anupam Datta, Cedric Fournet, Deepak Garg and Laura Kovacs |
| Keywords: | Software Fault Isolation, Memory Safety, Verified Software |
| Abstract: | ABSTRACT. We present a set of novel techniques for architecture portable software fault isolation (SFI) together with a working, proved-sound prototype in the Coq proof assistant. Unlike traditional SFI, which relies on analysis of assembly-level programs, we analyze and rewrite programs in a compiler intermediate language, the Cminor language of the CompCert C compiler. But like traditional SFI, the compiler remains outside of the trusted computing base. By composing our program transformer with the verified back-end of CompCert, we can obtain binary modules that satisfy the SFI memory safety policy for any of CompCert's supported architectures (currently: PowerPC, ARM, and x86-32). This allows the same SFI analysis to be used across multiple architectures, greatly simplifying the most difficult part of deploying trustworthy SFI systems. Specifically, we prove that any program output by our transformer will be safe with respect to a modified Cminor operational semantics that respects the SFI policy. Further, we arrange that this safety extends to assembly code when our transformer is composed with CompCert. Finally, we argue that our transformer does not modify the observable behavior of safe executions in the Cminor semantics. |
| Pages: | 15 |
| Talk: | Jul 19 11:15 |
| Paper: | ![]() |
