English

Bunshin: Compositing Security Mechanisms through Diversification (with Appendix)

Cryptography and Security 2017-06-01 v2

Abstract

A number of security mechanisms have been proposed to harden programs written in unsafe languages, each of which mitigates a specific type of memory error. Intuitively, enforcing multiple security mechanisms on a target program will improve its overall security. However, this is not yet a viable approach in practice because the execution slowdown caused by various security mechanisms is often non-linearly accumulated, making the combined protection prohibitively expensive; further, most security mechanisms are designed for independent or isolated uses and thus are often in conflict with each other, making it impossible to fuse them in a straightforward way. In this paper, we present Bunshin, an N-version-based system that enables different and even conflicting security mechanisms to be combined to secure a program while at the same time reducing the execution slowdown. In particular, we propose an automated mechanism to distribute runtime security checks in multiple program variants in such a way that conflicts between security checks are inherently eliminated and execution slowdown is minimized with parallel execution. We also present an N-version execution engine to seamlessly synchronize these variants so that all distributed security checks work together to guarantee the security of a target program.

Keywords

Cite

@article{arxiv.1705.09165,
  title  = {Bunshin: Compositing Security Mechanisms through Diversification (with Appendix)},
  author = {Meng Xu and Kangjie Lu and Taesoo Kim and Wenke Lee},
  journal= {arXiv preprint arXiv:1705.09165},
  year   = {2017}
}

Comments

To be appeared in Proceedings of the 2017 USENIX Annual Technical Conference (ATC)

R2 v1 2026-06-22T19:58:54.891Z