VARAN the Unbelievable An Efficient N-version Execution Framework

VARAN the Unbelievable An Efficient N-version Execution Framework
复制标题

VARAN 令人难以置信的高效 N 版本执行框架

DOI:
10.1145/2775054.2694390
复制
发表时间:
2015
影响因子:
--
通讯作者:
Hosek P
Hosek P
中科院分区:
--
文献类型:
--
作者:
Hosek P

文献摘要

相似文献

随着多核处理器的广泛使用,并行运行应用程序的多个多样化变体或多个不同版本正在成为提高软件系统可靠性和安全性的可行方法。这种 N 版本执行 (NVX) 系统的关键组件是运行时监视器,它能够并行执行多个版本。不幸的是,现有的监视器要么带来很大的性能开销,要么依赖侵入性的内核级更改。此外,由于运行时监视器成为性能瓶颈,现有的解决方案都无法很好地随版本数量扩展。在本文中,我们介绍了 Varan,这是一种 NVX 框架,它将选择性二进制重写与新颖的事件流架构相结合,可显着降低性能开销,并能随版本数量良好扩展,而无需依赖侵入式内核修改。我们的评估表明,Varan 可以运行基于流行的 C10k 网络服务器的 NVX 系统,而只需适度的性能开销,并且可以有效地用于提高软件可靠性透明故障转移、实时清理和多修订执行等技术。
With the widespread availability of multi-core processors, running multiple diversified variants or several different versions of an application in parallel is becoming a viable approach for increasing the reliability and security of software systems. The key component of such N-version execution (NVX) systems is a runtime monitor that enables the execution of multiple versions in parallel. Unfortunately, existing monitors impose either a large performance overhead or rely on intrusive kernel-level changes. Moreover, none of the existing solutions scales well with the number of versions, since the runtime monitor acts as a performance bottleneck.In this paper, we introduce Varan, an NVX framework that combines selective binary rewriting with a novel event-streaming architecture to significantly reduce performance overhead and scale well with the number of versions, without relying on intrusive kernel modifications.Our evaluation shows that Varan can run NVX systems based on popular C10k network servers with only a modest performance overhead, and can be effectively used to increase software reliability using techniques such as transparent failover, live sanitization and multi-revision execution.