Strengthening system security on the ARMv7 processor architecture with hypervisor-based security mechanisms

dc.contributor.advisorSeifert, Jean-Pierre
dc.contributor.authorVetter, Julian
dc.contributor.grantorTechnische Universität Berlinen
dc.contributor.refereeMargraf, Marian
dc.contributor.refereeGueron, Shay
dc.date.accepted2017-05-19
dc.date.accessioned2017-07-07T07:38:21Z
dc.date.available2017-07-07T07:38:21Z
dc.date.issued2017
dc.description.abstractThe computing landscape has significantly changed over the last decades. The devices we use today to interact with digital content have shifted away from stationary computers towards ubiquitous network-connected devices such as mobile phones. The success was mainly driven by two trends: the fast evolution of communication and computing hardware and a rapid change of the system software away from proprietary special purpose operating systems towards open commodity operating systems. However, this mobile trend also attracted adversaries. In this thesis, we therefore raise the question whether commodity operating systems are suitable to protect users of such devices from common attacks; e.g., malware or rootkits). Arguably, commodity operating systems such as Linux provide an appealing option because of their extensive hardware device support and their broad selection of applications. However, they are built around a monolithic kernel and if a highly privileged component is breached, an adversary can take over the entire system. This renders them unsuitable for applications that have higher security demands. In response, researchers explored several approaches to gain the desired security properties. Two prime examples are hypervisors and microkernels, both of which promise a higher degree of isolation between components than is provided by commodity operating systems. While most hypervisors also go for a monolithic kernel design, they achieve the better isolation capabilities through a reduced functionality, which in turn leads to less complex interfaces and a way smaller trusted computing base. Microkernel-based systems, on the other, hand achieve their security properties by putting kernel-level functionality into user processes, thereby also reducing their trusted computing base, while still providing a similar functionality as a general purpose operating system such as Linux. Both seem like promising options to protect the users from attacks. However, as we show in this thesis, both paradigms have issues if deployed carelessly. To assure a minimal performance impact when running a hypervisors, hardware vendors added hardware virtualization extensions to their processors. However, if the access to these extensions is not properly controlled, they pose a severe security threat and can be used to subvert the operating system. We show how the virtualization extensions can be leveraged to take over the highly privileged hypervisor mode on ARMv7 based devices. Subsequently, we plant into the said mode a rootkit, which is very hard to spot and to remove. As an alternative to a hypervisor-based system architecture, we investigate a widely used microkernel with respect to the isolation capability it promises. We assess Fiasco.OC, a microkernel that claims to be suitable for the construction of highly compartmentalized systems. But even this seemingly secure system software cannot uphold the promised isolation capabilities. In several scenarios, we show how to create high-bandwidth covert channels between two user-level entities, undermining all isolation efforts. Based on the outcome of our audit, we propose a system architecture for security-critical devices, based on a small statically partitioned Type-I hypervisor. The only aspect that speaks against a hypervisor-based design is the coarse-grained isolation hypervisors in general provide. We bridge this gap with two security mechanisms embedded into the hypervisor that narrow done the attack surface inside individual guests. The first mechanism enforces strict memory attributes to prevent common code reuse attacks. The second mechanism allows us to take snapshots of the memory of a guest, which is a powerful way to detect the presence of rootkits, which are, by their nature, otherwise hard to locate.en
dc.description.abstractIn den letzten Jahren hat sich die IT-Landschaft drastisch verändert. Um mit digitalen Inhalten zu interagieren verwenden wir kaum noch stationäre Computer, stattdessen verwenden wir ubiquitäre vernetze Geräte (z.B. Smartphones). Neben einer rapiden Evolution der Hardware, gab es auch drastische Änderungen der Sotftware. Wo vor einigen Jahren noch proprietäre Lösungen zum Einsatz kamen, heißt es heute offene Standardbetriebssysteme. Aber gerade die Tatsache das diese offen und standardisiert sind, heißt auch das sie eben genauso anfällig sind wie bisher nur Desktop- und Serversysteme. In dieser Thesis evaluieren wir daher, ob solche Betriebssysteme geeignet sind, die Nutzer auch in diesen neuen Domänen vor Bedrohungen wie Malware und Rootkits zu schützen. Linux stellt natürlich eine attraktive Lösung dar. Es verfügt über exzellente Hardwareunterstüzung und eine große Auswahl an Applikationen. Allerdings basieren diese Standard-Betriebssysteme auf einem monolithischen Kern. Wenn also eine hoch privilegierte Komponente von einem Angreifer übernommen wird, ist automatisch das gesamte System kompromittiert. Durch diese Eigenschaft sind sie ungeeignet für Systeme die ein höheres Maß an Sicherheit fordern. Forscher haben sich daher nach anderen Ansätzen umgesehen, um die gewünschten Isolationseigenschaften zu erhalten. Zwei bekannte Beispiele hierbei sind Hypervisor und Microkerne, beide versprechen einen höheren Grad an Isolation zwischen Systemkomponenten. Während viele Hypervisor auch über einen monolithische Kern verfügen, erreichen sie doch eine bessere Isolation durch eine reduzierte Anzahl an Funktionen. Diese geringere Komplexität führt zu weniger komplexen Schnittstellen und eine reduzierte Trusted Computing Base. Microkern basierte System erreichen ihre Sicherheitseigenschaften dadurch, dass Kernkomponenten in Nutzerprozesse ausgelagert werden. Dadurch erreichen sie auch eine reduzierte Trusted Computing Base und haben doch eine ähnlich vielfältige Funktionalität wie andere Standardbetriebssysteme wie z.B. Linux. Beide scheinen eine gute Option zu sein um Nutzer vor Angriffen zu schützen. Allerdings zeigen wir in dieser Thesis, dass beide Systeme Probleme aufweisen wenn sie unvorsichtig eingesetzt werden. Um nur minimale Leistungseinbußen beim Einsatz von Hypervisor-basierten Systemen zu haben, stellen Hardware Hersteller Virtualisierungserweiterungen für ihre Prozessoren zu Verfügung. Wenn der Zugriff auf diese Erweiterungen allerdings nicht korrekt behandelt wird kann dies fatale Folgen für die Sicherheit des Systems haben. Wir zeigen auf einer ARMv7-basierten Plattform, dass ein Angreifer Kontrolle über die Virtualisierungserweiterungen erlangen kann um ein Rootkit im hoch privilegierten Hypervisor-Modus zu plazieren. Für das Betriebssystem ist das Aufspüren oder Entfernen eines solchen Rootkits extrem schwierig. Darüber hinaus, evaluieren wir Fiasco.OC, ein Microkern, welcher einzelne Nutzerkomponenten stärker von einander isoliert. Aber auch dessen Architektur zeigt Schwächen und erlaubt uns Daten zwischen zwei Nutzerkomponenten auszutauschen, die eigentlich durch keinen Kommunikationskanal verbunden sind. Basierend auf dem Ergebnis unserer Evaluation stellen wir eine neue Systemarchitektur vor, welche auf einem kleinen statisch partitionierten Type-I Hypervisors beruht. Da Hypervisor im allgemeinen nur eine grobe Unterteilung von Softwarekomponenten ermöglichen, stellen wir zwei Sicherheitsmechanismen vor, welche in den Hypervisor eingebettet sind, um diese Lücke zu schließen. Diese sollen mögliche Angriffsvektoren auf das Gastbetriebssystem minimieren. Der erste Mechanismus stellt bestimmte Speicherattribute sicher, um bekannte "Code Reuse" Angriffe zu verhindern. Der zweite Mechanismus ermöglicht das Erstellen von Speicherabbildern von Gastspeicher. Ein Satz von Nutzerapplikationen ermöglicht uns dann Kerndatenstrukturen zu rekonstruieren um Rootkits aufzudecken.de
dc.identifier.urihttps://depositonce.tu-berlin.de/handle/11303/6427
dc.identifier.urihttp://dx.doi.org/10.14279/depositonce-5974
dc.language.isoenen
dc.rights.urihttps://creativecommons.org/licenses/by/4.0/en
dc.subject.ddc000 Informatik, Informationswissenschaft, allgemeine Werkede
dc.subject.othervirtualizationen
dc.subject.otherembedded systemsen
dc.subject.otherARMv7en
dc.subject.othersystem securityen
dc.subject.otherhypervisoren
dc.subject.otherVirtualisierungde
dc.subject.othereingebettete Systemede
dc.subject.otherSystem-Sicherheitde
dc.titleStrengthening system security on the ARMv7 processor architecture with hypervisor-based security mechanismsen
dc.title.translatedHypervisor-basierte Sicherheitsmechanismen zur Stärkung der Sicherheit von Systemen auf Basis der ARMv7 Prozessor Architekturde
dc.typeDoctoral Thesisen
dc.type.versionacceptedVersionen
tub.accessrights.dnbfreeen
tub.affiliationFak. 4 Elektrotechnik und Informatik::Inst. Softwaretechnik und Theoretische Informatikde
tub.affiliation.facultyFak. 4 Elektrotechnik und Informatikde
tub.affiliation.instituteInst. Softwaretechnik und Theoretische Informatikde
tub.publisher.universityorinstitutionTechnische Universität Berlinen

Files

Original bundle
Now showing 1 - 1 of 1
Loading…
Thumbnail Image
Name:
vetter_julian.pdf
Size:
2.27 MB
Format:
Adobe Portable Document Format
Description:
License bundle
Now showing 1 - 1 of 1
No Thumbnail Available
Name:
license.txt
Size:
5.75 KB
Format:
Item-specific license agreed upon to submission
Description:

Collections