首页> 外文期刊>Software >LibVM: an architecture for shared library sandboxing
【24h】

LibVM: an architecture for shared library sandboxing

机译:LibVM:共享库沙箱的体系结构

获取原文
获取原文并翻译 | 示例
           

摘要

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 that 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. Copyright (c) 2014 John Wiley & Sons, Ltd.
机译:许多软件应用程序通过将库动态加载到其分配的地址空间中来扩展其功能。但是,共享库通常也没有来源和质量,并且可能包含偶然的错误,或者在某些情况下包含故意的恶意代码。解决这些问题的大多数沙盒技术都需要使用自定义工具链重新编译库,需要对库进行重大修改,不能保留单个地址空间编程的优势,不能完全隔离来宾代码,或者会产生大量的性能开销。在本文中,我们介绍了LibVM,它是一种沙箱体系结构,用于隔离主机应用程序中的库,而无需对共享库本身进行任何修改,同时仍保留单个地址空间的优点,并且还引入了系统调用中间层,该层允许关于共享库功能的完整仲裁。我们展示了如何以合理的性能开销为此目的利用当代的硬件虚拟化支持,并且在没有此类硬件支持的情况下,我们的模型也可以使用基于软件的机制来实现。我们确保我们的实现尽可能与现有的共享库操作函数保持一致,从而最大程度地减少将这种隔离应用于现有程序所需的工作量。我们的实验结果表明,在使用共享库的目的是防止主机应用程序遭受意外编程错误的情况下,以及在怀疑共享库被积极敌对的更复杂的情况下,很容易立即获得收益。 。在这两种情况下,共享库本身都不需要更改。版权所有(c)2014 John Wiley&Sons,Ltd.

著录项

相似文献

  • 外文文献
  • 中文文献
  • 专利
获取原文

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号