On Modular and Fully-Abstract Compilation -- Technical Appendix
Marco Patrignani, Dominique Devriese, Frank Piessens

TL;DR
This paper explores how to design modular, fully-abstract secure compilers that maintain security when independently compiled components are linked together, addressing security threats arising from linking.
Contribution
It introduces a new compiler from an object-based language to untyped assembly with memory isolation, proving it is both fully-abstract and modular.
Findings
The compiler preserves security properties upon linking.
Identification of security threats due to linking.
Proof sketch demonstrating full abstraction and modularity.
Abstract
Secure compilation studies compilers that generate target-level components that are as secure as their source-level counterparts. Full abstraction is the most widely-proven property when defining a secure compiler. A compiler is modular if it allows different components to be compiled independently and then to be linked together to form a whole program. Unfortunately, many existing fully-abstract compilers to untyped machine code are not modular. So, while fully-abstractly compiled components are secure from malicious attackers, if they are linked against each other the resulting component may become vulnerable to attacks. This paper studies how to devise modular, fully-abstract compilers. It first analyses the attacks arising when compiled programs are linked together, identifying security threats that are due to linking. Then, it defines a compiler from an object-based language with…
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 · Advanced Malware Detection Techniques · Logic, programming, and type systems
