On Inexpensive Methods for Improving Security of Embedded Systems

Language
en
Document Type
Doctoral Thesis
Issue Date
2017-01-30
Issue Year
2016
Authors
Bauer, Johannes
Editor
Abstract

We usually scrutinize security of embedded systems under an extraordinarily sophisticated attacker model: the adversary has physical possession of the target and unlimited time to break it. For the defensive side, this forms an exceptionally challenging scenario. This thesis studies fortification of systems against such adversaries. The principal contributions lie in the field of embedded security, where we explore methods of building secure systems in a resource-efficient manner. This allows implementation of our countermeasures on resource-constrained microcontrollers. While these have a detrimental effect on runtime performance, the cost of the hardware itself remains unaffected, thereby providing an attractive and inexpensive alternative to hardware countermeasures. Next, we will briefly outline our contributions.

Attacks such as Differential Power Analysis (DPA) enable adversaries to exploit even the most minute differences in data dependent energy consumption. To make it more difficult for attackers to gain access to secrets within a chip, effective countermeasures need to be employed. One technique, implemented using only software, is described by us as a first contribution. We use binary recompilation to achieve binary code polymorphism. This causes different characteristic emission patterns for each call of a protected cryptographic primitive. Due to extensive and sophisticated pre-calculations which we perform at compile time, execution is extremely fast during runtime.

Since not only power consumption but also timing differences are something that attackers can exploit with great accuracy, we studied detection of timing leaks. Considering the architecture of today's increasingly complex microcontrollers, manual estimation of runtime has become virtually infeasible. Therefore, as a second contribution, we developed a behavioral Cortex-M core emulator which permits cycle-accurate simulation. We show how to incorporate such an emulator in a semi-automatic vetting process. After compilation, all security-relevant routines within the code are analyzed and checked for timing discrepancies.

The complexity of modern microcontroller units (MCUs) is shown from a different angle when considering attackers who can manipulate firmware. Since the reduction of electromagnetic interference (EMI) is an important goal of system designers, many recent MCUs already include software-tunable EMI countermeasures. In our third contribution, we show how these anti-EMI peripherals can be abused to construct covert channels. Unfortunately for the defensive side, these channels operate in the radio frequency domain and thus could be used for wireless transmission of data --- even when the benign application was never intended to perform such communication. We describe how changes in parasitic electromagnetic emission can be used to encode data and what hardware is necessary to recover this data.

To increase the resistance of embedded systems against physical attacks, it is common to use special semiconductors which employ hardware countermeasures. The downside of such integration is that the specialized device usually dictates the exact cryptographic construction. How such hardware can be used nevertheless to augment general-purpose microcontrollers is something we focus on with our fourth contribution. As a demonstration, we incorporate a hardware security module in the handshake of the transport layer security (TLS) protocol. We do so without the need to create a custom cipher suite and without modifying the TLS handshake itself; instead, we use a generic approach by relying on implementation-specific protocol invariants and therefore get around the limitations which would be imposed by nonstandard protocol modifications.

When processors make use of external peripherals, such as dynamic random access memory (DRAM), another attack vector arises: Due to parasitic effects of the physical construction of modern high-density RAM, it is possible that the hardware cannot guarantee data integrity for all bit patterns. To counteract this, a technique commonly used by memory controllers is the scrambling of data to gain an effectively bias-free bitstream on the RAM chip. With our fifth contribution, we show how one such scrambling scheme by Intel works in-depth and how scrambled memory can be descrambled to reveal the original memory content. In the field of forensics, this is highly relevant: When physical memory acquisition, for example by cold-boot attacks, is used to capture a memory image, descrambling of that image is required before it can be analyzed meaningfully. We furthermore discuss how knowledge about scrambler-internal workings may open up possibilities for an attacker to deliberately cause disturbances in RAM.

Abstract

Die Sicherheit eingebetteter Systeme wird üblicherweise unter einem äußerst starken Angreifermodell evaluiert: Es wird ein Angreifer angenommen, der sowohl physischen Zugang zu der Hardware und darüber hinaus ein unbegrenztes Kontingent an Zeit hat, um das System zu brechen. Solch ein Szenario stellt für die defensive Seite eine große Herausforderung dar. Diese Arbeit studiert die Härtung von eingebetteten Systemen gegen solche Angreifer. Sie kombiniert mehrere Beiträge aus dem Bereich Sicherheit eingebetteter Systeme; im Kernteil untersuchen wir ressourceneffiziente Methoden, um die Resistenz dieser Systeme gegen physische Angriffe zu härten. Diese sind auch auf stark ressourcenbeschränkten Mikrocontrollern einsetzbar und beeinträchtigen in der Regel das Laufzeitverhalten nur minimal, erhöhen aber nicht die Kosten der Hardware selbst.

Angriffe, wie die Differential Power Analysis erlauben es Angreifern, durch statistische Methoden kleinste datenabhängige Variationen im Stromverbrauch von Mikrocontrollern auszunutzen. Um solche Angriffe zu erschweren, müssen geeignete Gegenmaßnahmen angewendet werden. Diese Arbeit stellt eine solche Technik, bei der es sich um eine reine Softwaregegenmaßnahme handelt, vor. Durch Rekompilierung von Binärcode zur Laufzeit erreichen wir Polymorphie der unvermeidlichen Seitenkanalemissionen. Dieser Ansatz ist üblicherweise auf kleinsten Controllern schwierig implementierbar, da er ausgesprochen rechenzeitintensiv ist. Durch geschickte Vorausberechnung bestimmter Teilaspekte erreichen wir dennoch hohe Laufzeitperformance und können so auch für kleinste Mikrocontroller wirksame DPA-Gegenmaßnahmen anbieten.

Nicht nur variable Stromaufnahme, sondern auch winzige Unterschiede in der Laufzeit selbst können von Angreifern mit einfachen Mitteln ausgenutzt werden. Da der angenommene Angreifer physische Kontrolle über das Ziel besitzt, ist es ihm möglich, taktzyklenakkurate Messungen des Controllers vorzunehmen. Code, der zur Laufzeit datenabhängig um nur einen einzigen Taktzyklus variiert, kann bereits ein Informationsleck bedeuten und zum völligen Verlust der Sicherheit führen. Durch die heutigen, immer komplexer werdenden CPUs, ist eine händische Laufzeitanalyse nicht mehr vernünftig möglich; wir stellen daher in unserem zweiten Beitrag einen zyklenakkuraten Cortex-M Prozessorkern-Emulator vor, der solche Seitenkanalangriffe früh im Softwarelebenszyklus detektieren kann. Er kann benutzt werden, um sicherheitskritische Funktionen von Firmware direkt nach jedem Kompiliervorgang auf datenabhängige Laufzeitunterschiede zu testen und dem Entwickler frühzeitig Diagnoseinformationen zur Problembehebung bereitzustellen.

Wie komplex moderne Mikrocontroller geworden sind, zeigen wir in unserem dritten Beitrag, der die Sicherheit eingebetteter Systeme aus einem anderen Blickwinkel betrachtet: Wir zeigen, wie Peripherie, die mittlerweile als gängige Dreingabe auf Mikrocontrollern präsent ist, missbraucht werden kann. Konkret geht es um Funktionalität, die dazu gedacht ist unerwünschte, parasitäre, elektromagnetische Emissionen zu unterdrücken. Wir verwenden ebendiese Einheit jedoch nicht, um Emissionen zu unterdrücken, sondern modulieren die Abstrahlung und erzeugen damit einen verdeckten Kanal. Dieser verfügt zwar über eine relativ geringe Bandbreite, kann aber von einem Angreifer dazu verwendet werden, kurze Nachrichten wie beispielsweise kryptografische Schlüssel zu übermitteln.

Ein gängiger Ratschlag, um eine Härtung gegen physische Angriffe zu erreichen, ist der Einsatz von Hardwaresicherheitsmodulen (HSM). Diese bringen bereits in Hardware implementierte Gegenmaßnahmen gegen gängige physische Angriffe mit. In der Literatur wird leider häufig nicht behandelt, dass die von diesen HSMs angebotenen Schnittstellen hochgradig proprietär sind. Insofern ist eine Integration in bereits bestehende, spezifizierte Protokolle, oft schwierig bis unmöglich. Wie eine solche Integration doch gelingen kann, zeigen wir in unserem vierten Beitrag. Hierbei integrieren wir verschiedene proprietäre HSMs in den standardisierten Handshake des bekannten Transport Layer Security (TLS) Protokolls. Dies erreichen wir ohne inkompatible Veränderungen an TLS selbst, sondern durch geschicktes Nutzen bestimmter Freiheitsgrade, die von TLS angeboten werden.

Zuletzt betrachten wir externe Peripherie, welche oft an eingebettete Systeme angeschlossen wird. Hierfür nehmen wir DRAM als Beispiel; bestimmte RAM-Generationen haben durch die hohe Integrationsdichte das Problem, dass nicht alle Bitmuster zuverlässig gespeichert werden können. Deshalb kommt beispielsweise bei Intel-Prozessoren innerhalb des DDR3 Speichercontrollers ein so genannter Scrambler zum Einsatz, mit dem wir uns in unserem fünften Beitrag beschäftigen. Dieser beaufschlagt alle Speichermuster mit einem pseudozufälligen Datenstrom. Für forensische Zwecke ist daher das Speicherabbild, das beispielsweise im Rahmen eines Kaltstartangriffs gewonnen werden kann, unbrauchbar. Wir zeigen wie das spezielle Verfahren von Intel funktioniert, wie ein so zerhacktes Abbild wieder zu seinem Urbild konvertiert werden kann und was die Implikationen solcher zusätzlicher, transparenter Technologie sein können.

DOI
Faculties & Collections
Zugehörige ORCIDs