LibVM: An architecture for shared library sandboxing


Autoria(s): Goonasekera, Nuwan A.; Caelli, William; Fidge, Colin
Data(s)

06/11/2015

Resumo

Many software applications extend their functionality by dynamically loading libraries into their allocated address space. However, shared libraries are also often of unknown provenance and quality and may contain accidental bugs or, in some cases, deliberately malicious code. Most sandboxing techniques which address these issues require recompilation of the libraries using custom tool chains, require significant modifications to the libraries, do not retain the benefits of single address-space programming, do not completely isolate guest code, or incur substantial performance overheads. In this paper we present LibVM, a sandboxing architecture for isolating libraries within a host application without requiring any modifications to the shared libraries themselves, while still retaining the benefits of a single address space and also introducing a system call inter-positioning layer that allows complete arbitration over a shared library’s functionality. We show how to utilize contemporary hardware virtualization support towards this end with reasonable performance overheads and, in the absence of such hardware support, our model can also be implemented using a software-based mechanism. We ensure that our implementation conforms as closely as possible to existing shared library manipulation functions, minimizing the amount of effort needed to apply such isolation to existing programs. Our experimental results show that it is easy to gain immediate benefits in scenarios where the goal is to guard the host application against unintentional programming errors when using shared libraries, as well as in more complex scenarios, where a shared library is suspected of being actively hostile. In both cases, no changes are required to the shared libraries themselves.

Formato

application/pdf

Identificador

http://eprints.qut.edu.au/90042/

Publicador

John Wiley & Sons, Ltd.

Relação

http://eprints.qut.edu.au/90042/1/LibVM-AcceptedVersion.pdf

DOI:10.1002/spe.2294

Goonasekera, Nuwan A., Caelli, William, & Fidge, Colin (2015) LibVM: An architecture for shared library sandboxing. Software: Practice and Experience, 45(12), pp. 1597-1617.

Direitos

Copyright 2015 John Wiley and Sons, Ltd.

Fonte

School of Electrical Engineering & Computer Science; Science & Engineering Faculty

Palavras-Chave #080303 Computer System Security #080307 Operating Systems #Software components #Information security #Component isolation #Sandboxing
Tipo

Journal Article