Description
Applications are increasingly deployed in the cloud, but limiting the trust required in the cloud-provider remains challenging. Existing solutions that build upon TEEs only allow the integrity of the environment to be attested at launch-time and to protect data confidentiality. Protecting the integrity of memory is still, at best, a partially solved problem. This thesis proposes a redundancy-based approach. It executes a singlethreaded containerized application a second time at a different cloud-provider in a different execution environment and compares the resulting behavior to detect integrity violations. The approach requires reproducible executions. This thesis investigates the extent to which such reproducibility can be achieved across heterogeneous Linuxbased execution environments. We implement a proof-of-concept and evaluate how different observation levels and execution environment differences affect reproducibility. We identify incompatibilities between environments and analyze ways to remove or circumvent them. Our results show that reproducible execution is feasible, but only for compatible execution environment pairs with respect to the chosen observation level. Overall, this thesis contributes a design and an experimental analysis demonstrating that reproducible execution across heterogeneous Linux-based environments is feasible, but depends critically on the chosen environment pair and observation level.
|