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 and/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.
Varan is 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.
[CF_18] FreeDA: Deploying Incompatible Stock Dynamic Analyses in Production via Multi-Version Execution. Luís Pina and Anastasios Andronidis and Cristian Cadar. In Proceedings of the 2018 ACM International Conference on Computing Frontiers (CF), May, 2018.
[USENIX ATC_17] A DSL Approach to Reconcile Equivalent Divergent Program Executions. Luís Pina and Daniel Grumberg and Anastasios Andronidis and Cristian Cadar. In Proceedings of the 2017 USENIX Annual Technical Conference (USENIX ATC), July, 2017.
[WODA_15] Towards Deployment-Time Dynamic Analysis of Server Applications. Luís Pina and Cristian Cadar. In Proceedings of the 13th International Workshop on Dynamic Analysis (WODA), October, 2015. Extended abstract.