Table Of ContentARENBERG DOCTORAL SCHOOL
Faculty of Engineering Science
Hardware-supported Software
and Control Flow Integrity
Ruan de Clercq
Supervisor: Dissertation presented in partial
Prof. dr. ir. I. Verbauwhede fulfillment of the requirements for the
degree of Doctor of Engineering
Science (PhD): Electrical Engineering
November 2017
Hardware-supported Software and Control Flow
Integrity
Ruan DE CLERCQ
Examination committee: Dissertation presented in partial
Prof. dr. ir. Omer Van der Biest, chair fulfillment of the requirements for
Prof. dr. ir. I. Verbauwhede, supervisor thedegreeofDoctorofEngineering
Prof. dr. ir. F. Piessens Science (PhD): Electrical Engineer-
Prof. dr. ir. B. Preneel ing
Prof. dr. Aurélien Francillon
(EURECOM, France)
Prof. dr. ir. Bjorn De Sutter
(University of Ghent, Belgium)
November 2017
©2017KULeuven–FacultyofEngineeringScience
Uitgegevenineigenbeheer,RuandeClercq,KasteelparkArenberg10,bus2452,B-3001Leuven(Belgium)
Allerechtenvoorbehouden. Nietsuitdezeuitgavemagwordenvermenigvuldigden/ofopenbaargemaaktworden
door middel van druk, fotokopie, microfilm, elektronisch of op welke andere wijze ook zonder voorafgaande
schriftelijketoestemmingvandeuitgever.
Allrightsreserved. Nopartofthepublicationmaybereproducedinanyformbyprint,photoprint,microfilm,
electronicoranyothermeanswithoutwrittenpermissionfromthepublisher.
Acknowledgements
First and foremost, I would like to thank my promoter Ingrid Verbauwhede for
offeringmetheopportunitytopursueaPhDatCOSIC.Iamdeeplygratefulfor
her guidance, time, tips, and trust to allow me to freely conduct my research.
I would like to thank my assessors Prof. Bart Preneel and Prof. Frank Piessens
fortheirvaluablecontributionsthroughoutthedoctoralprogram. Iwouldfurther
like to thank the additional members of the jury Prof. Aurélien Francillon
and Prof. Bjorn de Sutter for the time and effort that they invested in this
dissertation, and Prof. Omer Van der Biest for chairing the jury.
Thanks to all my co-authors for the fruitful discussions and collaborations. I
learned a lot from you, and would like to continue writing papers with you.
I would like to thank all my colleagues in COSIC for contributing to a great
research environment, and also for the lunches, karting, table tennis, coffee
breaks,COSICweekends,Fridaybeers,andclimbingsessions. Ihavethoroughly
enjoyed my time here and I can highly recommend working at COSIC.
I am forever grateful to all my friends in Leuven for their friendship, support,
andpatiencethatmademytimeinLeuvenanunforgettableexperience. Special
thanks to my climbing friends for the many amazing sessions in Freyr, Mozet,
Berdorf, Fontainebleau and further afield.
Iwanttothankmypartnerandfamilyfortheirongoingsupport,encouragement,
and for always being there when I need them. Finally, I am eternally grateful
to my mom and my partner’s parents for their continued support.
Ruan de Clercq
Leuven, November 2017
i
Abstract
Bugs are prevalent in a large amount of deployed software. These bugs often
introduce vulnerabilities that can be exploited by attackers to make programs
misbehave. Many devices rely on software that needs security, such as medical
implants, sensor networks, RFID tags, automotive controllers. Software should
do what it is asked to do, and should not misbehave; e.g., by delivering the
wrongdrugdosages,bystealinginformation,byspyingontheuser,bydisabling
the brakes on a car, or by attacking other computers.
Thecentraltopicofthisthesisisthedevelopmentofhardware-basedmechanisms
that prevent software from misbehaving. We focus on enhancing the security of
microprocessors to detect runtime attacks, prevent malicious modification of
software, and develop support for isolating software from malware.
The main contributions of this thesis are two-fold. First, we analyse existing
hardware-based Control Flow Integrity (CFI) architectures. This includes a
detailed description and comparison of each architecture’s policies, security,
hardware cost, performance, and suitability for widespread deployment.
Second, we design several new hardware-based security architectures. This
includes developing the first known CFI architecture based on instruction-set
randomisation, that also enforces software integrity through modifications to a
processor. We further design the first known hardware-based software integrity
architecture that is realised as a standalone Intellectual Property (IP) core that
connectstothebusviastandardinterfaces. Finally, wedevelopanarchitectural
featurewhichprovidesinterruptsupportforaprogramcounter-basedProtected
Module Architectures (PMAs) by means of processor modifications. All the
architectures developed in this thesis are evaluated on Field Programmable
Gate Array (FPGA), which allows us to accurately determine the hardware
cost and the performance overhead of running the software on the architecture.
iii
Beknopte samenvatting
Veelgeïnstalleerdesoftwarebevatfouten. Ditisproblematischomdatdiefouten
de oorzaak zijn van zwakheden die misbruikt kunnen worden om applicaties
zich te doen misdragen. Software die beveiligd moet worden wordt gebruikt op
vele apparaten, zoals medische implantaten, netwerken van sensoren, RFID tags
en de regelaars in voertuigen. Deze software moet doen wat het gevraagd word
en mag zich niet misdragen door bijvoorbeeld de verkeerde dosis medicijnen toe
te dienen, informatie te stelen, de gebruiker te bespioneren, de remmen van een
auto onbruikbaar te maken of door andere computers aan te vallen.
Het centrale onderwerp van deze thesis is het ontwerp van hardware-gebaseerde
mechanismen die verzekeren dat software zich niet kan misdragen. We
concentreren ons op het verbeteren van de beveiliging van microprocessoren om
runtime aanvallen te detecteren.
De voornaamste bijdragen van deze thesis zijn tweeledig. Ten eerste analyseren
we bestaande hardware-gebaseerde architecturen die de integriteit van de
programmastroom beschermen. Dit omvat een gedetailleerde beschrijving van
hun richtlijnen, samen met een evaluatie van hun beveiliging, hardware kost,
performantie en geschiktheid voor wijdverspreide toepassing.
Ten tweede ontwikkelen we verschillende nieuwe hardware-gebaseerde architec-
turen. Dit omvat de ontwikkeling van de eerste gekende architectuur die de
integriteit van de programmastroom beschermt aan de hand van instructieset
randomisatie. Bovendien verzekert deze architectuur de integriteit van de
applicatiedoormiddelvanaanpassingenaandeprocessor. Wehebbendaarnaast
ook de eerste gekende hardware-gebaseerde architectuur ontwikkeld om de
integriteit van software te beschermen tijdens de uitvoering ervan aan de hand
van een IP core die verbindt met de bus via een gestandaardiseerde interface.
Tot slot ontwikkelen we een architecturale functie op basis van aanpassingen
aan de processor die ondersteuning voor interrupts toevoegt aan architecturen
die softwaremodules beschermen door geheugentoegangcontrole op basis van de
v
vi BEKNOPTESAMENVATTING
programmateller. Alle architecturen die ontwikkeld worden in deze thesis zijn
geëvalueerd op FPGA, waardoor we accuraat de hardware kost en de impact
op de performantie voor het uitvoeren van software op de architectuur kunnen
bepalen.
Description:ARM AMBA AXI and ACE Protocol Specification - AXI3, AXI4, and AXI4-Lite, ACE and ACE-Lite. White paper, 2011. [12] Arora, D., Ravi, S., Raghunathan, 161–176. [22] Carlini, N., and Wagner, D. ROP is Still Dangerous: Breaking. Modern Defenses. In Proceedings of the USENIX Security Symposium.