Multi-Variant Execution of Parallel Programs
Stijn Volckaert, Bjorn De Sutter, Koen De Bosschere, Per Larsen

TL;DR
This paper extends Multi-Variant Execution Environments to effectively protect multi-threaded programs by introducing synchronization replication agents, achieving low overhead and enhancing security against memory corruption attacks.
Contribution
It introduces synchronization replication agents that enable MVEEs to handle multi-threaded programs, overcoming previous limitations due to nondeterministic behavior.
Findings
Achieves only 1.32x runtime overhead on PARSEC benchmarks.
Successfully protects multi-threaded software from memory corruption attacks.
Extends MVEE applicability to complex multi-threaded applications.
Abstract
Multi-Variant Execution Environments (MVEEs) are a promising technique to protect software against memory corruption attacks. They transparently execute multiple, diversified variants (often referred to as replicae) of the software receiving the same inputs. By enforcing and monitoring the lock-step execution of the replicae's system calls, and by deploying diversity techniques that prevent an attacker from simultaneously compromising multiple replicae, MVEEs can block attacks before they succeed. Existing MVEEs cannot handle non-trivial multi-threaded programs because their undeterministic behavior introduces benign system call inconsistencies in the replicae, which trigger false positive detections and deadlocks in the MVEEs. This paper for the first time extends the generality of MVEEs to protect multi-threaded software by means of secure and efficient synchronization replication…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsSecurity and Verification in Computing · Distributed systems and fault tolerance · Parallel Computing and Optimization Techniques
