References & Citations
Computer Science > Cryptography and Security
Title: Using Name Confusion to Enhance Security
(Submitted on 5 Nov 2019 (v1), revised 28 Feb 2020 (this version, v2), latest version 26 Aug 2020 (v3))
Abstract: Virtual memory is an abstraction that assigns references, or names, to data objects and instructions. Typically, instructions have exactly one name: a uniquely-identifiable virtual address. This mapping can be leveraged by adversaries to deterministically construct exploit payloads. In this work, we investigate how virtual memory should be redesigned to eliminate the need for this one-to-one mapping, effectively increasing system security. Our solution, Name Confusion, provides multiple names (i.e.,virtual addresses) for an instruction. This allows us to define a security protocol, namely Phantom Name System (PNS), in which the order of names used during execution can be randomized. It works as follows: during instruction fetch, the address (name) used to fetch an instruction is randomly chosen, and from that point on, any PC-relative addresses use the name obtained during the fetch. PNS can be used to mitigate a class of attacks known as code-reuse attacks by significantly reducing the success probability of an exploit payload. If an attacker causes any of the PC-relative addresses to be different from the one chosen during the fetch, the program will crash. PNS provides a new security feature that requires minor microarchitectural adjustments, and can be combined with other security features to enhance their strength. Lastly, we show that our performance is better than commercially-available state-of-the-art hardware primitives, e.g., cryptographic CFI, by a significant margin.
Submission history
From: Miguel A. Arroyo [view email][v1] Tue, 5 Nov 2019 19:02:53 GMT (991kb,D)
[v2] Fri, 28 Feb 2020 05:39:44 GMT (990kb,D)
[v3] Wed, 26 Aug 2020 18:12:53 GMT (1023kb,D)
Link back to: arXiv, form interface, contact.