ARENBERG 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: