Securing a High-Level Language Virtual Machine Through its ISA: Pharo as a Case Study
Résumé
Managed languages such as Python, C#, Java or JavaScript are the most popular when looking at the PYPL (PopularitY of Programming Language) index. These languages come with modern engines called virtual machines (VMs) composed of performant and intricate pieces of software such as garbage collectors or just-in-time compilers. As these components need to be extremely performant, they have grown in size and complexity. They are also powerful tools that could become an important breach if exploited maliciously. Using vulnerabilities in a JIT compiler can lead to code injection or JIT spraying attacks, often needing no more than a carefully written input program. Enforcing memory security has been a hot topic for several years; our goal is to extend the RISC-V instruction set to enforce this memory isolation dynamically. This work-in-progress focuses on Pharo, a metacircular VM extended to the RISC-V ISA. We believe that the concepts applied to this VM should be applicable to other implementations.
Origine | Fichiers produits par l'(les) auteur(s) |
---|