Cache side-channel attacks on language runtimes
department or school: Science, Faculty of
department or school: Computer Science, Department of
data provider: DSpace
degree campus: UBCV
creator: Wang, Yayu
issued: 2025-04-25T08:35:50Z
issued: 2025
related degree: Master of Science - MSc
degree grantor: University of British Columbia
description: Cache side-channel attacks are a class of attacks where an attacker co-located with a victim application on a server infers the victim’s secrets from observations of the victim’s usage of shared caches. Conventionally, cache side-channel attacks have been used to leak sensitive information from applications written in statically typed languages (e.g., C) and compiled into binary. However, cache side-channel vulnerabilities in applications using language runtimes have received less attention. Language runtimes introduce several barriers to performing cache side-channel attacks. First, with language runtimes, the application code is converted into a bytecode sequence, which is then interpreted as a sequence of machine instructions during execution. The attacker therefore needs to identify the cache lines that uniquely map to the sequence of machine instructions corresponding to specific bytecode operations in the victim’s logic. Second, the control flow in runtime interpretation logic might influence the state of the cache, which is shared between the attacker, the victim application, and the runtime. Consequently, the runtime induces noise in the cache measurements that prevents the attacker from accurately inferring the victim’s execution logic. We address the above challenges and demonstrate that cache side-channel attacks can be exploited on applications executed with language runtimes. We present two well-known types of cache side-channel attacks, namely Prime+Scope and Flush+Reload, on a JavaScript implementation of RSA that is run on QuickJS. We show that even if the RSA source code is hardened to have secret-independent execution time, an attacker can derive the secret key via cache side-channel observations on RSA’s bytecode interpretation with 99% accuracy after only 32 runs of the RSA.
aggregated CHO: https://circle.library.ubc.ca/rest/handle/2429/90781
note: Cache Side-Channel Attacks on Language RuntimesbyYayu WangB. Engineering, Beijing University of Posts and Telecommunications, 2021A THESIS SUBMITTED IN PARTIAL FULFILLMENTOF THE REQUIREMENTS FOR THE DEGREE OFMaster of ScienceinTHE FACULTY OF GRADUATE AND POSTDOCTORALSTUDIES(Computer Science)The University of British Columbia(Vancouver)April 2025© Yayu Wang, 2025The following individuals certify that they have read, and recommend to the Fac-ulty of Graduate and Postdoctoral Studies for acceptance, the thesis entitled:Cache Side-Channel Attacks on Language Runtimessubmitted by Yayu Wang in partial fulfillment of the requirements for the degreeof Master of Science in Computer Science.Examining Committee:Aastha Mehta, Assistant Professor, Computer Science, UBCSupervisorMargo Seltzer, Professor, Computer Science, UBCSupervisory Committee MemberReto Achermann, Assistant Professor, Computer Science, UBCSupervisory Committee MemberiiAbstractCache side-channel attacks are a class of attacks where an attacker co-located witha victim application on a server infers the victim’s secrets from observations ofthe victim’s usage of shared caches. Conventionally, cache side-channel attackshave been used to leak sensitive information from applications written in staticallytyped languages (e.g., C) and compiled into binary. However, cache side-channelvulnerabilities in applications using language runtimes have received less attention.Language runtimes introduce several barriers to performing cache side-channelattacks. First, with language runtimes, the application code is converted into abytecode sequence, which is then interpreted as a sequence of machine instruc-tions during execution. The attacker therefore needs to identify the cache lines thatuniquely map to the sequence of machine instructions corresponding to specificbytecode operations in the victim’s logic. Second, the control flow in runtime in-terpretation logic might influence the state of the cache, which is shared between…
has type: Thesis/Dissertation
date issued: 2025-05
is shown at: 10.14288/1.0448547
language: eng
degree discipline: Computer Science
provider: Vancouver : University of British Columbia Library
publisher: University of British Columbia
rights: Attribution-NonCommercial-NoDerivatives 4.0 International
rights URI: http://creativecommons.org/licenses/by-nc-nd/4.0/
scholar level: Graduate
contributor: Mehta, Aastha
type: Text
identifier URI: http://hdl.handle.net/2429/90781