Toward Hardware-assisted Run-time Protection

Loading...
Thumbnail Image

URL

Journal Title

Journal ISSN

Volume Title

School of Science | Doctoral thesis (article-based) | Defence date: 2020-11-10

Date

2020

Major/Subject

Mcode

Degree programme

Language

en

Pages

130 + app. 101

Series

Aalto University publication series DOCTORAL DISSERTATIONS, 150/2020

Abstract

Software defects, such as buffer overflows, are prominent enablers of cyberattacks in programs written in memory-unsafe programming languages. As a consequence, vulnerable software programs can be exploited by a sophisticated adversary through run-time attacks to trigger program actions never intended by the software developer, and even to gain unauthorized access to the computer system. For example, the adversary can corrupt memory references (pointers) to program code stored in memory to hijack the flow of execution, and redirect the processor to execute instructions chosen by the adversary. Such control-flow attacks can be particularly devastating, as they can allow arbitrary code execution, and grant complete control of a victim system to an adversary. Recently, data-oriented attacks have been shown to enable equally expressive attacks, without violating the integrity of control-flows within the victim program. Over the past thirty years, there has been an ever-escalating arms race between increasingly sophisticated attacks and defenses to thwart them. Software-only defenses that retrofit programs written in C and C++ with memory-safety or control-flow integrity (CFI) guarantees can be effective against large classes of attacks but are prohibitively expensive. Recently, there have also been significant advances by both researchers and practitioners in understanding and defending against run-time attacks, especially those that attempt to defeat CFI. Practical defenses against run-time attacks must consider how to trade-off security, performance and deployability. The goal of this dissertation is to investigate how hardware-assisted defenses can protect against run-time attacks without incurring a significant performance penalty. Hardware-assisted defenses have been shown to drastically improve the efficiency of attack detection but face various deployment challenges, such as requiring 1) invasive changes to the underlying processor architecture or system software stack, and 2) overly-restrictive security policies, which have difficulties dealing with the inherent flexibility of C and C++, leading to compatibility issues with existing software. In particular the work described in this dissertation provides advances in the following reserch topics:1) adapting hardware-assisted defenses for embedded systems, including low-end microcontrollers (MCUs), where the challenges for deployment are amplified,2) remotely attesting the control-flow to learn about run-time attacks, and the dynamic behaviour of an embedded device, and3) showing how hardware-assisted defenses can defend against attacks that defeat CFI.Finally, I present my own observations about the state-of-the-art and practice in hardware-assisted run-time defenses, and discuss potential directions for future research.

Muistiturvattomien ohjelmointikielten ohjelmistovirheet, kuten puskurin ylivuodot, ovat merkittävä kyberhyökkäysten mahdollistaja. Niiden seurauksena haavoittuvia ohjelmistoja voidaan hyväksikäyttää ajonaikaisten hyökkäysten avulla siten, että niissä laukaistaan tahattomia toimintoja, ja siten päästä luvattomasti käsiksi tietojärjestelmään. Hyökkääjä voi esimerkiksi korruptoimalla muistiviitteitä ohjelmakoodiin kaapata ohjelman suorituksen, ja uudellenohjata prosessorin suorittamaan valitsemiaan käskyjä. Tällaiset kontrollivuohyökkäykset (eng. control-flow attacks) voivat olla erityisen vaarallisia koska niiden avulla voidaan suorittaa mielivaltaista ohjelmakoodia ja jopa ottaa uhrina oleva tietojärjestelmä täysin haltuun. Myös niin sanottujen data-orientoituneiden hyökkäysten (eng. data-oriented attacks) on näytetty mahdollistavan yhtä ilmaisuvoimaisia hyökkäyksiä manipuloimatta uhriohjelman kontrollivuota. Tietoturvatutkimusta on viimeisen kolmenkymmenen vuoden aikana sävyttänyt kilpavarustelu yhä edistyneempien hyökkäysten ja niitä vastaan kehitettyjen turvamekanismien välillä. Ohjelmistotason turvamekanismit, jotka jälkiasentavat muistuturvallisuutta tai kontrollivuon eheyttä (eng. control-flow integrity, CFI) ylläpitäviä mekanismeja C tai C++ -ohjelmiin, estävät useat hyökkäykset, mutta niistä aiheutuvat huomattavat suorituskykykustannukset rajoittavat niiden käyttöönottoa. Ymmärryksessä ajonaikaisista hyökkäyksistä ja niitä vastaan puolustautumisessa on tehty huomattavia edistysaskelia, etenkin sellaisten hyökkäysten suhteen, jotka pyrkivät kiertämään CFI -puolustuskeinot. Käyttännöllisten puolustusmekanismien on kuitenkin tasapainoteltava turvallisuuden, suorituskyvyn ja hyödynnettävyyden välillä. Tämän väitöskirjan tavoitteena on tutkia kuinka laitteistoavusteiset puolustuskeinot voivat suojata ohjelmistoja ajonaikaisilta hyökkäyksiltä ilman huomattavia suorituskykyongelmia. Laitteistoavusteisten puolustuskeinojen on todettu parantavan radikaalisti kykyä havaita hyökkäyksiä, mutta samalla ne vaikeuttavat käyttöönottoa mm. vaatimalla 1) huomattavia muutoksia prosessoriarkkitehtuuriin ja ohjelmistopinoon sekä 2) ylirajoittavaa turvallisuuspolitiikkaa, mikä johtaa yhteensopivuusongelmiin C ja C++ -ohjelmointikielien kanssa. Tämän väitöskirjan tulokset edistävät erityisesti tietämystä seuraavista tutkimusaiheista:1) laitteistoavusteisten puolustuskeinojen soveltaminen sulautettuihin järjestelmiin, mukaan lukien suorituskykyrajoitteiset mikrokontrollerijärjestelmät,2) suoritetun kontrollivuon todistaminen etänä (eng. remote attestation) sulautetulla laitteella tapahtuvien hyökkäysten havaitsemiseksi ja laitteen käyttäytymisen todentamiseksi, sekä3) laitteistoavusteisten puolustuskeinojen kehittäminen CFI:hin perustuvien puolustuskeinoja kiertäviä hyökkäyksiä vastaan.Lopuksi esitän omia huomioitani laitteistoavusteisten puolustuskeinojen nykytilasta, ja potentiaalisista tulevista tutkimusaiheista.

Description

Supervising professor

Asokan, N., Prof., Aalto University, Department of Computer Science, Finland

Keywords

platform security, run-time attacks, hardware-assisted defenses, alustaturvallisuus, ajonaikaiset hyökkäykset, laitteistoavusteiset puolustuskeinot

Other note

Parts

  • [Publication 1]: Thomas Nyman, Jan-Erik Ekberg, Lucas Davi, N. Asokan. CFI CaRE: Hardware-Supported Call and Return Enforcement for Commercial Microcontrollers. In Research in Attacks, Intrusions, and Defenses. RAID 2017, Lecture Notes in Computer Science, vol. 10453, pages 259–284, October 2017.
    DOI: 10.1007/978-3-319-66332-6_12 View at publisher
  • DOI: 10.1145/2976749.2978358 View at publisher
  • [Publication 3]: Ghada Dessouky, Shaza Zeitouni, Thomas Nyman, Andrew Paverd, Lucas Davi, Patrick Koeberl, N. Asokan, Ahmad-Reza Sadeghi. LO- FAT: Low-Overhead Control Flow ATtestation in Hardware. In Proceedings of the 54th Annual Design Automation Conference 2017 (DAC’17), article no. 24, June 2017.
    DOI: 10.1145/3061639.3062276 View at publisher
  • [Publication 4]: Thomas Nyman, Ghada Dessouky, Shaza Zeitouni, Aaro Lehikoinen, Andrew Paverd, N. Asokan, Ahmad-Reza Sadeghi. HardScope: Hardening Embedded Systems Against Data-Oriented Attacks. In Proceedings of the 56th Annual Design Automation Conference 2019, DAC 2019, article no. 63, June 2019.
    Full text in Acris/Aaltodoc: http://urn.fi/URN:NBN:fi:aalto-201911156239
    DOI: 10.1145/3316781.3317836 View at publisher
  • [Publication 5]: Hans Liljestrand, Thomas Nyman, Kui Wang, Carlos Chinea Perez, Jan-Erik Ekberg, N. Asokan. PAC it up: Towards Pointer Integrity using ARM Pointer Authentication. In Proceedings of the 28th USENIX Security Symposium, USENIX Security 2019, pages 177–194, August 2019.
    DOI: 10.5555/3361338.3361352 View at publisher
  • [Publication 6]: Hans Liljestrand, Thomas Nyman, Lachlan J. Gunn, Jan-Erik Ekberg, N. Asokan. PACStack: an Authenticated Call Stack. Accepted for publication in Proceedings of the 30th USENIX Security Symposium, USENIX Security 2021, 18 pages, August 2021

Citation