Program-level support for protecting an application from untrustworthy components
Data(s) |
2012
|
---|---|
Resumo |
Many software applications extend their functionality by dynamically loading executable components into their allocated address space. Such components, exemplified by browser plugins and other software add-ons, not only enable reusability, but also promote programming simplicity, as they reside in the same address space as their host application, supporting easy sharing of complex data structures and pointers. However, such components are also often of unknown provenance and quality and may be riddled with accidental bugs or, in some cases, deliberately malicious code. Statistics show that such component failures account for a high percentage of software crashes and vulnerabilities. Enabling isolation of such fine-grained components is therefore necessary to increase the stability, security and resilience of computer programs. This thesis addresses this issue by showing how host applications can create isolation domains for individual components, while preserving the benefits of a single address space, via a new architecture for software isolation called LibVM. Towards this end, we define a specification which outlines the functional requirements for LibVM, identify the conditions under which these functional requirements can be met, define an abstract Application Programming Interface (API) that encompasses the general problem of isolating shared libraries, thus separating policy from mechanism, and prove its practicality with two concrete implementations based on hardware virtualization and system call interpositioning, respectively. The results demonstrate that hardware isolation minimises the difficulties encountered with software based approaches, while also reducing the size of the trusted computing base, thus increasing confidence in the solution’s correctness. This thesis concludes that, not only is it feasible to create such isolation domains for individual components, but that it should also be a fundamental operating system supported abstraction, which would lead to more stable and secure applications. |
Formato |
application/pdf |
Identificador | |
Publicador |
Queensland University of Technology |
Relação |
http://eprints.qut.edu.au/60851/1/Nuwan_Goonasekera_Thesis.pdf Goonasekera, Nuwan Abhayawardena (2012) Program-level support for protecting an application from untrustworthy components. PhD thesis, Queensland University of Technology. |
Fonte |
Faculty of Science and Technology; Information Security Institute |
Palavras-Chave | #component isolation, system call interpositioning, hardware virtualization, application isolation |
Tipo |
Thesis |