title: ArmorVM: Virtual Machine Code-Obfuscation in the Arm TrustZone
Creators: name: Hurbean, Alexander
Publisher: name: TU Wien
Year: 2025
Subjects: subject: code obfuscation
subject: virtual machine
subject: Arm
subject: TrustZone
subject: security
subject: software development
subject: virtualization-based obfuscation

description: Anwendungen, welche auf Nutzergeräten ausgeführt werden, können proprietäre Algorithmen oder vertrauliche Daten enthalten. Es ist böswilligen Akteuren möglich, diese Anwendungen zu analysieren, um an dieses geistige Eigentum zu gelangen, da sie Zugriff auf diese Anwendungen haben. Code-Obfuskation ist eine gängige Technik um Anwendungen gegen solche Analyseangriffe zu schützen. Diese Technik erschwert es Angreifern, die Anwendung zu verstehen. Einer der effektivsten Methoden der Code-Obfuskation ist die Verwendung einer virtuellen Maschine (VM), welche den Anwendungscode in ihrer speziellen Instruktionssprache in Prozessorinstruktionen übersetzt. Angreifer müssen zuerst die VM und die spezielle Instruktionssprache analysieren und verstehen bevor sie den Anwendungscode analysieren können. Trotz des erhöhten Aufwands für Angreifer, ist die VM selbst anfällig für Analyseangriffe, weil Angreifer durch den Zugriff auf die VM diese auch analysieren können.Durch die Ausführung der VM in einer einer vertrauenswürdigen Ausführungsumgebung (engl. TEE) wie der Arm TrustZone, wird die VM vor Analyseangriffen geschützt. Die TrustZone ist eine Hardware-basierte Sicherheitstechnologie, die eine sichere Ausführungsumgebung, sog. "secure world", innerhalb der weit verbreiteten Arm Systeme schafft. Hoch-privilegierte Angreifer, welche die sog. "normal world" vollständig kompromittiert haben, erhalten keinen Einblick in die "secure world". Unseres Wissens nach wurden bisher keine Untersuchungen zu dieser Methodik zum Schutz der VM durchgeführt.Im Rahmen dieser Arbeit werden durch Design und Prototyping eine VM (ArmorVM) und Hilfsmittel (ForgeLang) entwickelt, um die Umsetzbarkeit und Wirksamkeit einer TrustZone-basierten VM zur Obfuskation zu untersuchen. Resultate der Evaluierung zeigen, dass die TrustZone-basierte VM die Stärken der VM-basierten Obfuskationmethode effektiv nutzt und durch den zusätzlichen Schutz der TrustZone vor Analyseangriffen die Sicherheit der darin ausgeführten Anwendung erhöht. Jedoch zeigen Ergebnisse auch, dass dieser zusätzlich Schutz zu einem erhöhtem Leistungsverlust führt. Die Integration der VM in bestehende Entwicklungsumgebungen wurde ebenfalls untersucht. Ergebnisse zeigen, dass die Entwicklung für Programme und der VM nahtlos in bestehende Entwicklungsumgebungen integriert werden kann.
description: Applications that run on user devices can contain proprietary algorithms or confidential data. Malicious actors may attempt to analyze these applications to gain access to this intellectual property (IP), as they have access to them. Code obfuscation is a common technique to protect applications against such analysis attacks. This technique makes it more difficult for attackers to analyze the application. One of the most effective methods of code obfuscation is using a virtual machine (VM) that translates the application code from its custom instruction form into processor instructions. Attackers must first analyze and understand the VM and the custom instruction language before analyzing the application code. Despite the increased effort for attackers, the VM itself is vulnerable to analysis attacks because attackers can analyze it by accessing the VM.Executing the VM in a trusted execution environment (TEE), such as the Arm TrustZone, helps avoid analysis attacks. The TrustZone is a hardware-based security technology that creates a secure execution environment, the so-called "secure world", within widely used Arm system. Even highly privileged attackers within the "normal world" cannot gain insight into the "secure world". To the best of our knowledge, studies have yet to be conducted on the methodology to protect the VM utilizing the Arm TrustZone.In this work, we present a VM (ArmorVM) and supporting development framework (ForgeLang). Through design and prototyping we investigate the feasibility and effectiveness of a TrustZone-based VM for obfuscation. Evaluation results show that the TrustZone-based VM effectively leverages the strengths of the VM-based obfuscation method and increases the security of the application executed therein by providing additional protection against VM analysis attacks. However, results also show that this additional protection increases performance loss. We additionally investigate the VM integration into existing development environments. Results show that program and VM development can be seamlessly integrated into existing development environments, displaying the practicality of the proof of concept.