conference-paper Open access

PortPrint: Identifying Inaccessible Code with Port Contention

  • Proceedings of the Microarchitecture Security Conference
Research footprint

At a glance

Citations
2
References
0
Comments
0
Paper overview

Abstract

In many real-world scenarios, being able to infer specific software versions or variations of cryptographic libraries is critical to mounting targeted exploits. For this, traditional version-detection approaches often rely on direct inspection of programs. However, modern computing platforms frequently employ protection for code, e.g., using execute-only memory (XOM) or trusted execution environments (TEE) to safeguard sensitive code from disclosure and reverse engineering. This paper demonstrates how side-channel measurements via CPU port contention reveal distinctive execution signatures, even when code is inaccessible for inspection. Our proof-of-concept implementation PortPrint identifies cryptographic functions, reveals library versions, and even uncovers whether a WolfSSL build is vulnerable to CVE-2024-1544 or if Spectre mitigations are active in Xen. We verify that PortPrint works despite state-of-the-art code protection mechanisms, such as memory protection keys, hypervisor-based XOM, Intel SGX, Intel TDX, and AMD SEV. We also report a negative result for leaking code protected with these techniques using Meltdown and Foreshadow, providing valuable insights into the limitations of these attacks. Our results show that hardware-based isolation is insufficient to conceal instruction streams.

Record transparency

Publication details

DOI
10.46586/uasc.2025.004
OpenAlex
W4408228828
Document type
conference-paper
Language
EN
Source
Proceedings of the Microarchitecture Security Conference
Last metadata update
Community

Comments

Log in to join the discussion.

  1. No comments yet. Start the discussion.