Securing Asynchronous Exceptions
Title | Securing Asynchronous Exceptions |
Publication Type | Conference Paper |
Year of Publication | 2020 |
Authors | Cortiñas, C. T., Vassena, M., Russo, A. |
Conference Name | 2020 IEEE 33rd Computer Security Foundations Symposium (CSF) |
Keywords | compiler security, compositionality, concurrency control, Concurrent computing, data structures, different covert channels, features asynchronous exceptions, Human Behavior, IFC language, Instruction sets, language constructs, language-based information-flow control techniques, Libraries, Metrics, pattern locks, program compilers, program diagnostics, program invariants, program verification, Programming, programming language semantics, pubcrawl, Resiliency, Runtime, runtime system, Scalability, security, security of data, Synchronization, telecommunication security, theorem proving |
Abstract | Language-based information-flow control (IFC) techniques often rely on special purpose, ad-hoc primitives to address different covert channels that originate in the runtime system, beyond the scope of language constructs. Since these piecemeal solutions may not compose securely, there is a need for a unified mechanism to control covert channels. As a first step towards this goal, we argue for the design of a general interface that allows programs to safely interact with the runtime system and the available computing resources. To coordinate the communication between programs and the runtime system, we propose the use of asynchronous exceptions (interrupts), which, to the best of our knowledge, have not been considered before in the context of IFC languages. Since asynchronous exceptions can be raised at any point during execution-often due to the occurrence of an external event-threads must temporarily mask them out when manipulating locks and shared data structures to avoid deadlocks and, therefore, breaking program invariants. Crucially, the naive combination of asynchronous exceptions with existing features of IFC languages (e.g., concurrency and synchronization variables) may open up new possibilities of information leakage. In this paper, we present MACasync, a concurrent, statically enforced IFC language that, as a novelty, features asynchronous exceptions. We show how asynchronous exceptions easily enable (out of the box) useful programming patterns like speculative execution and some degree of resource management. We prove that programs in MACasync satisfy progress-sensitive non-interference and mechanize our formal claims in the Agda proof assistant. |
DOI | 10.1109/CSF49147.2020.00023 |
Citation Key | cortinas_securing_2020 |
- Libraries
- Theorem Proving
- telecommunication security
- Synchronization
- security of data
- security
- Runtime system
- Runtime
- pubcrawl
- programming language semantics
- programming
- program verification
- program invariants
- program diagnostics
- program compilers
- Metrics
- pattern locks
- language-based information-flow control techniques
- language constructs
- Instruction sets
- IFC language
- features asynchronous exceptions
- different covert channels
- data structures
- Concurrent computing
- concurrency control
- Compositionality
- compiler security
- Resiliency
- Scalability
- Human behavior