English
 
Help Privacy Policy Disclaimer
  Advanced SearchBrowse

Item

ITEM ACTIONSEXPORT

Released

Paper

An Instrumenting Compiler for Enforcing Confidentiality in Low-Level Code

MPS-Authors
/persons/resource/persons144522

Garg,  Deepak
Group D. Garg, Max Planck Institute for Software Systems, Max Planck Society;

External Resource
No external resources are shared
Fulltext (restricted access)
There are currently no full texts shared for your IP range.
Fulltext (public)

arXiv:1711.11396.pdf
(Preprint), 775KB

Supplementary Material (public)
There is no public supplementary material available
Citation

Brahmakshatriya, A., Kedia, P., McKee, D. P., Bhatu, P., Garg, D., Lal, A., et al. (2017). An Instrumenting Compiler for Enforcing Confidentiality in Low-Level Code. Retrieved from http://arxiv.org/abs/1711.11396.


Cite as: https://hdl.handle.net/21.11116/0000-0000-AC98-3
Abstract
We present an instrumenting compiler for enforcing data confidentiality in low-level applications (e.g. those written in C) in the presence of an active adversary. In our approach, the programmer marks secret data by writing lightweight annotations on top-level definitions in the source code. The compiler then uses a static flow analysis coupled with efficient runtime instrumentation, a custom memory layout, and custom control-flow integrity checks to prevent data leaks even in the presence of low-level attacks. We have implemented our scheme as part of the LLVM compiler. We evaluate it on the SPEC micro-benchmarks for performance, and on larger, real-world applications (including OpenLDAP, which is around 300KLoC) for programmer overhead required to restructure the application when protecting the sensitive data such as passwords. We find that performance overheads introduced by our instrumentation are moderate (average 12% on SPEC), and the programmer effort to port OpenLDAP is only about 160 LoC.