Reference 1
A new security property, secure compartmentalizing compilation (SCC), that formally characterizes the guarantees provided by compartmentalizing compilation and clarifies its attacker model.
Notion of fully abstract compilation: 2 3 4 5 6 7 8 9 10 11 12.
A fully abstract compiler toolchain contains compiler, linker, loader, and underlying architecture with its security mechanism. The toolchain protects the interactions between a compiled program and its low-level environment, allowing programmers to reason soundly about the behavior of their code when it is placed in an arbitrary target-language context, by considering only its behavior in arbitrary source-language contexts.
In particular, if we link the code produced by such a compiler against arbitrary low-level libraries – perhaps compiled from an unsafe language or even written directly in assembly – the resulting execution will not be any less secure than if we had restricted ourselves to library code written in the same high-level language as the calling program.
If you could revise
the fundmental principles of
computer system design
to improve security...
... what would you change?