2018
DOI: 10.1007/978-3-319-89884-1_17
|View full text |Cite
|
Sign up to set email alerts
|

Reasoning About a Machine with Local Capabilities

Abstract: Capability machines provide security guarantees at machine level which makes them an interesting target for secure compilation schemes that provably enforce properties such as control-flow correctness and encapsulation of local state. We provide a formalization of a representative capability machine with local capabilities and study a novel calling convention. We provide a logical relation that semantically captures the guarantees provided by the hardware (a form of capability safety) and use it to prove contr… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
4
1

Citation Types

1
27
0

Year Published

2018
2018
2022
2022

Publication Types

Select...
3
2
2

Relationship

3
4

Authors

Journals

citations
Cited by 17 publications
(28 citation statements)
references
References 35 publications
1
27
0
Order By: Relevance
“…In most work on verified compartmentalization [14,58,85], communication between low-level compartments is done by jumping to a specified set of entry points; the model considered here is more structured and enforces the correct return discipline. Skorstengaard et al have also recently investigated a secure stack-based calling convention for a simple capability machine [71]; they plan to simplify their calling convention using a notion of linear return capability [70] that seems similar to the one used in our micro-policy from §4.5.…”
Section: Related Workmentioning
confidence: 99%
See 1 more Smart Citation
“…In most work on verified compartmentalization [14,58,85], communication between low-level compartments is done by jumping to a specified set of entry points; the model considered here is more structured and enforces the correct return discipline. Skorstengaard et al have also recently investigated a secure stack-based calling convention for a simple capability machine [71]; they plan to simplify their calling convention using a notion of linear return capability [70] that seems similar to the one used in our micro-policy from §4.5.…”
Section: Related Workmentioning
confidence: 99%
“…Compartmentalization offers a strong, practical defense against a range of devastating low-level attacks, such as control-flow hijacks exploiting buffer overflows and other vulnerabilities in C, C++, and other unsafe languages [18,33,81]. Widely deployed compartmentalization technologies include process-level privilege separation [18,33,47] (used in OpenSSH [67] and for sandboxing plugins and tabs in web browsers [69]), software fault isolation [74,79] (e.g., Google Native Client [84]), WebAssembly modules [34] in modern web browsers, and hardware enclaves (e.g., Intel SGX [38]); many more are on the drawing boards [14,20,71,81]. These mechanisms offer an attractive base for building more secure compilation chains that mitigate low-level attacks [30,33,44,65,[75][76][77].…”
Section: Introductionmentioning
confidence: 99%
“…Practically, the only way accidental leaking can be avoided is by clearing unused registers and sweeping over this write-local memory to clear it entirely or at least erase local capabilities. For example, in a secure calling convention built on local capabilities, Skorstengaard et al [2018] have to clear the entire unused part of the stack before any invocation of adversarial code. This requirement is very costly in practice, and also hard to avoid, since the stack must be made write-local if we want to allow invoked code to spill registers or store local capabilities away during sub-invocations.…”
Section: Introductionmentioning
confidence: 99%
“…Although uninitialized capabilities are more generally useful, this paper focuses on how they redeem local capabilities as a revocation primitive. To this end, we formally establish the guarantees provided by local and uninitialized capabilities with a capability safety result based on the one by Skorstengaard et al [2018]. Capability safety is expressed as a universal contractÐor specificationÐ that holds for arbitrary assembly code.…”
Section: Introductionmentioning
confidence: 99%
See 1 more Smart Citation