Citation
Sánchez Marín, Andrés
(2019).
Detecting speculative information flows on large code-bases.
Proyecto Fin de Carrera / Trabajo Fin de Grado, E.T.S. de Ingenieros Informáticos (UPM), Madrid, España.
Abstract
Cuando programamos, esperamos que el código sea ejecutado en el orden en el que está escrito, debido a las optimizaciones en la microarquitectura como el pipelining y la ejecución fuera de orden, ese principio no se sostiene, haciendo que los resultados obtenidos de la ejecución sean los mismos y obteniendo un mayor rendimiento aunque el procesador ejecute tareas adicionales. Los microprocesadores mdoernos están afectados por SPECTRE v1, una vulnerabilidad que permite explotar las optimizaciones hardware de la microarquitectura. Es difícil detectar el código explotable en todas sus posibilidades por la gran cantidad de patrones que pueden explotarla. Partiendo del trabajo de la herramienta SPECTECTOR, hemos conseguido aumentar la detección de los posibles flujos de memoria explotables por SPECTRE v1, extendiendo el dominio de programas analizados. Se han desarrollado nuevas técnicas para realizar este trabajo, como un analizador de las dependencias internas de los proyectos, una traducción más consistente o la recolección de estadísticas. Se ha demostrado el funcionamento de estos métodos en un proyecto tal como Xen hypervisor.---ABSTRACT---When programming, we hope that the code is executed in the order it’s written, due to the optimizations on the microarchitecture such as pipelining and out of order execution, that principle doesn’t hold, making the results being the same and getting a higher performance although the processor executes additional tasks. Modern microprocessors are affected by SPECTRE v1, a vulnerability that let to exploit the hardware optimizations on the microarchitecture. It’s difficult to detect the exploitable code on all its possibilities due to the so large different patterns that can exploit it. Based on the work that SPECTECTOR does, we’ve leveraged the detection of the possible exploitable memory leaks by SPECTRE v1, extending the domain of analyzed programs. New techniques for doing this work have been developed such as an analyzer for the projects internal dependencies, a more consistent parsing or the collection of statistics. We demonstrate the behavior of these methods with the Xen hypervisor project.