Amort, J. (2017). Evaluating the unikernel concept for the deployment of software on IoT devices [Diploma Thesis, Technische Universität Wien]. reposiTUm. https://doi.org/10.34726/hss.2017.44461
Unikernels; OSv; Rumprun; Internet der Dinge; IoT; Sicherheit
de
Unikernels; OSv; Rumprun; Internet Of Things; IoT; Security
en
Abstract:
IoT Geräte sind nicht mehr wegzudenken aus dem modernen Alltagsleben. Als integraler Bestandteil des täglichen Lebens haben Sicherheitsprobleme dieser Geräte eine große Auswirkung auf deren User. Die relativ neue Verfügbarkeit von Hypervisoren für die vergleichsweise leistungsschwachen CPUs von IoT Geräten bringt Vorteile bezüglich Sicherheit und der Bereitstellung von Software auf den Geräten. Andererseits beeinträchtigt der Einsatz eines vollumfänglichen Betriebssystems auf einem Hypervisor die Leistungsfähigkeit des IoT Geräts. In den letzten Jahren wurde das Unikernel Konzept neu entdeckt. Unikernels kombinieren eine Applikation zusammen mit einem kleinen Umfang an Betriebssystemfunktionen zu einer untrennbaren, leistungsstarken Einheit. Dies macht Unikernels zu einer interessanten Option für die Bereitstellung von Software auf IoT Geräten. Diese Arbeit untersucht ob Unikernels dafür gut geeignet sind, Software auf IoT Geräten bereitzustellen und dazu beitragen können die Sicherheit des Gerätes zu erhöhen indem Updates zeitnah ausgeliefert werden können. Im ersten Teil der Arbeit werden relevante Performancecharakteristiken für IoT Geräte definiert und umfangreiche Tests durchgeführt. Die Ergebnisse der Unikernels werden mit den Ergebnissen von Virtuellen Maschinen verglichen und stellen die Grundlage für die weiteren Erwägungen dar. Die sicherheitsrelevanten Eigenschaften von Unikernels werden in einem weiteren Hauptteil untersucht und dargestellt, welche Auswirkungen sich daraus für die Sicherheit von IoT Geräten ergeben. Da die Sicherheit des System entscheidend davon abhängt ob Aktualisierungen der Software zeitnah für eine große Anzahl von Geräten bereitgestellt werden können, wird in einem weiteren Kapitel untersucht wie ein Prozess von der Entwicklung bis zur Installation von Software unter Einbeziehung von Unikernels gestaltet werden könnte.
de
The ever increasing number of IoT devices makes it clear that a lack of security in these systems has a big impact on the lives of people. The availability of hypervisors for low-power CPUs used on IoT devices brings advantages regarding security and deployment strategies but bear the question how the use of fully fledged operations systems would impact the performance of these low-power CPUs. In recent years the concept of a Unikernel has reemerged, challenging the idea of a general purpose operating system. A Unikernel combines an application with a minimal set of operating system functionalities needed to run the application on a hypervisor. This makes Unikernels an interesting option for deploying applications on a hypervisor-based IoT device. This work evaluates whether Unikernels are a good fit for deployments of software on IoT devices and can contribute to the security of IoT devices by facilitating the timely rollout of new versions of an application. In the first part this work conducts a series of comprehensive performance tests for a range of characteristics relevant in the field of IoT devices and compares the results of Unikernels with virtual machines. Next this work evaluates the problems by IoT devices regarding security, takes a look at current incidents involving IoT devices and the claims of Unikernels with respect to security. The chapter takes the inherent properties of Unikernels in consideration and evaluates whether these properties can contribute to the security of the overall system. The security of the system depends upon the ability of rolling out new versions of an application in a timely manner whenever bugs are discovered. Therefore the third part lays out how Unikernels could be integrated into a modern software development process based on continuous integration and -delivery principles to enable the frictionless deployment, testing and distribution of new versions of an application.