The Meaning of Memory Safety - Archive ouverte HAL Accéder directement au contenu
Communication Dans Un Congrès Année : 2018

The Meaning of Memory Safety

Résumé

We give a rigorous characterization of what it means for a programming language to be memory safe, capturing the intuition that memory safety supports local reasoning about state. We formalize this principle in two ways. First, we show how a small memory-safe language validates a noninterference property: a program can neither affect nor be affected by unreachable parts of the state. Second, we extend separation logic, a proof system for heap-manipulating programs, with a memory-safe variant of its frame rule. The new rule is stronger because it applies even when parts of the program are buggy or malicious, but also weaker because it demands a stricter form of separation between parts of the program state. We also consider a number of pragmatically motivated variations on memory safety and the reasoning principles they support. As an application of our characterization, we evaluate the security of a previously proposed dynamic monitor for memory safety of heap-allocated data.

Dates et versions

hal-01949201 , version 1 (09-12-2018)

Licence

Paternité

Identifiants

Citer

Arthur Azevedo de Amorim, Cătălin Hriţcu, Benjamin C. Pierce. The Meaning of Memory Safety. 7th International Conference on Principles of Security and Trust (POST), Apr 2018, Thessaloniki, Greece. pp.79--105, ⟨10.1007/978-3-319-89722-6_4⟩. ⟨hal-01949201⟩

Collections

INRIA INRIA2
42 Consultations
0 Téléchargements

Altmetric

Partager

Gmail Facebook X LinkedIn More