KPAC: Efficient Emulation of the ARM Pointer Authentication Instructions

Publikation: Beitrag in FachzeitschriftArtikelForschungPeer-Review

Autoren

  • Illia Ostapyshyn
  • Gabriele Serra
  • Tim Marek Thomas
  • Daniel Lohmann

Externe Organisationen

  • Scuola Superiore Sant'Anna di Studi Universitari e di Perfezionamento
Forschungs-netzwerk anzeigen

Details

OriginalspracheEnglisch
Seiten (von - bis)3467-3478
Seitenumfang12
FachzeitschriftIEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems
Jahrgang43
Ausgabenummer11
PublikationsstatusVeröffentlicht - 6 Nov. 2024

Abstract

ARMv8.3-A has introduced the pointer authentication (PA) feature, a new set of measures and instructions to sign and validate pointers. PA is already used and supported by the major compilers to protect the return addresses on the stack as a measure against memory corruption attacks. As more and more SoCs implement ARMv8.3-A and code compiled with PA is even fully backwards compatible on CPUs without (where the new instructions are just ignored), we can expect PA-enabled binaries to become standard in the near future. This gives rise to the question, if and how also systems without the native PA could benefit from the extra security provided by the return address protection. In this article, we explore KPAC, a set of efficient software-based approaches to bring the PA-based return-address protection onto the platforms without the hardware support in an easily adoptable (binary-compatible) and scalable manner. Technically, KPAC achieves this by either a synchronous trap-based emulation inside the kernel or an asynchronous novel memory-based invocation of a dedicated CPU core. Our experiments with the CortexSuite benchmarks, Chromium, and Memcached on a variety of platforms running Linux ranging from a Xilinx ZCU102 board over a Raspberry Pi 4 up to an 80-core Ampere Altra demonstrate the broad applicability and scalability of our approach. Furthermore, we discuss how the principles of KPAC can be generalized to the other suited problem areas.

ASJC Scopus Sachgebiete

Zitieren

KPAC: Efficient Emulation of the ARM Pointer Authentication Instructions. / Ostapyshyn, Illia; Serra, Gabriele; Thomas, Tim Marek et al.
in: IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems, Jahrgang 43, Nr. 11, 06.11.2024, S. 3467-3478.

Publikation: Beitrag in FachzeitschriftArtikelForschungPeer-Review

Ostapyshyn I, Serra G, Thomas TM, Lohmann D. KPAC: Efficient Emulation of the ARM Pointer Authentication Instructions. IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems. 2024 Nov 6;43(11):3467-3478. doi: 10.1109/TCAD.2024.3443773
Ostapyshyn, Illia ; Serra, Gabriele ; Thomas, Tim Marek et al. / KPAC : Efficient Emulation of the ARM Pointer Authentication Instructions. in: IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems. 2024 ; Jahrgang 43, Nr. 11. S. 3467-3478.
Download
@article{3a88a94d3b9c42bb91ba82afc3b2af8d,
title = "KPAC: Efficient Emulation of the ARM Pointer Authentication Instructions",
abstract = "ARMv8.3-A has introduced the pointer authentication (PA) feature, a new set of measures and instructions to sign and validate pointers. PA is already used and supported by the major compilers to protect the return addresses on the stack as a measure against memory corruption attacks. As more and more SoCs implement ARMv8.3-A and code compiled with PA is even fully backwards compatible on CPUs without (where the new instructions are just ignored), we can expect PA-enabled binaries to become standard in the near future. This gives rise to the question, if and how also systems without the native PA could benefit from the extra security provided by the return address protection. In this article, we explore KPAC, a set of efficient software-based approaches to bring the PA-based return-address protection onto the platforms without the hardware support in an easily adoptable (binary-compatible) and scalable manner. Technically, KPAC achieves this by either a synchronous trap-based emulation inside the kernel or an asynchronous novel memory-based invocation of a dedicated CPU core. Our experiments with the CortexSuite benchmarks, Chromium, and Memcached on a variety of platforms running Linux ranging from a Xilinx ZCU102 board over a Raspberry Pi 4 up to an 80-core Ampere Altra demonstrate the broad applicability and scalability of our approach. Furthermore, we discuss how the principles of KPAC can be generalized to the other suited problem areas.",
keywords = "Computer security - application security, modeling - emulation, software - embedded software, software - system software - operating systems",
author = "Illia Ostapyshyn and Gabriele Serra and Thomas, {Tim Marek} and Daniel Lohmann",
note = "Publisher Copyright: {\textcopyright} 2024 IEEE.",
year = "2024",
month = nov,
day = "6",
doi = "10.1109/TCAD.2024.3443773",
language = "English",
volume = "43",
pages = "3467--3478",
journal = "IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems",
issn = "0278-0070",
publisher = "Institute of Electrical and Electronics Engineers Inc.",
number = "11",

}

Download

TY - JOUR

T1 - KPAC

T2 - Efficient Emulation of the ARM Pointer Authentication Instructions

AU - Ostapyshyn, Illia

AU - Serra, Gabriele

AU - Thomas, Tim Marek

AU - Lohmann, Daniel

N1 - Publisher Copyright: © 2024 IEEE.

PY - 2024/11/6

Y1 - 2024/11/6

N2 - ARMv8.3-A has introduced the pointer authentication (PA) feature, a new set of measures and instructions to sign and validate pointers. PA is already used and supported by the major compilers to protect the return addresses on the stack as a measure against memory corruption attacks. As more and more SoCs implement ARMv8.3-A and code compiled with PA is even fully backwards compatible on CPUs without (where the new instructions are just ignored), we can expect PA-enabled binaries to become standard in the near future. This gives rise to the question, if and how also systems without the native PA could benefit from the extra security provided by the return address protection. In this article, we explore KPAC, a set of efficient software-based approaches to bring the PA-based return-address protection onto the platforms without the hardware support in an easily adoptable (binary-compatible) and scalable manner. Technically, KPAC achieves this by either a synchronous trap-based emulation inside the kernel or an asynchronous novel memory-based invocation of a dedicated CPU core. Our experiments with the CortexSuite benchmarks, Chromium, and Memcached on a variety of platforms running Linux ranging from a Xilinx ZCU102 board over a Raspberry Pi 4 up to an 80-core Ampere Altra demonstrate the broad applicability and scalability of our approach. Furthermore, we discuss how the principles of KPAC can be generalized to the other suited problem areas.

AB - ARMv8.3-A has introduced the pointer authentication (PA) feature, a new set of measures and instructions to sign and validate pointers. PA is already used and supported by the major compilers to protect the return addresses on the stack as a measure against memory corruption attacks. As more and more SoCs implement ARMv8.3-A and code compiled with PA is even fully backwards compatible on CPUs without (where the new instructions are just ignored), we can expect PA-enabled binaries to become standard in the near future. This gives rise to the question, if and how also systems without the native PA could benefit from the extra security provided by the return address protection. In this article, we explore KPAC, a set of efficient software-based approaches to bring the PA-based return-address protection onto the platforms without the hardware support in an easily adoptable (binary-compatible) and scalable manner. Technically, KPAC achieves this by either a synchronous trap-based emulation inside the kernel or an asynchronous novel memory-based invocation of a dedicated CPU core. Our experiments with the CortexSuite benchmarks, Chromium, and Memcached on a variety of platforms running Linux ranging from a Xilinx ZCU102 board over a Raspberry Pi 4 up to an 80-core Ampere Altra demonstrate the broad applicability and scalability of our approach. Furthermore, we discuss how the principles of KPAC can be generalized to the other suited problem areas.

KW - Computer security - application security

KW - modeling - emulation

KW - software - embedded software

KW - software - system software - operating systems

UR - http://www.scopus.com/inward/record.url?scp=85209569919&partnerID=8YFLogxK

U2 - 10.1109/TCAD.2024.3443773

DO - 10.1109/TCAD.2024.3443773

M3 - Article

AN - SCOPUS:85209569919

VL - 43

SP - 3467

EP - 3478

JO - IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems

JF - IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems

SN - 0278-0070

IS - 11

ER -