Recently there have been several proposals to use redundant execution
of diverse replicas to defend against attempts to exploit memory corruption vulnerabilities. However, redundant execution relies on the premise that the replicas behave deterministically, so that if inputs are replicated to both replicas, any divergences in their outputs can only be the result of an attack. Unfortunately, this assumption does not hold for multithreaded programs, which are becoming increasingly prevalent -- the
non-deterministic interleaving of threads can also cause divergences in the replicas.
This thesis presents a method to eliminate concurrency related non-determinism between replicas.
We introduce changes to the existing cache coherence hardware used in multicores to support
deterministic redundant execution. We demonstrate that our solution requires moderate hardware changes and shows modest overhead in scientific applications.
Identifer | oai:union.ndltd.org:TORONTO/oai:tspace.library.utoronto.ca:1807/18795 |
Date | 12 February 2010 |
Creators | Kvasov, Stanislav |
Contributors | Lie, David |
Source Sets | University of Toronto |
Language | en_ca |
Detected Language | English |
Type | Thesis |
Page generated in 0.0019 seconds