Title (eng): Security Analysis of Container-Based Virtualization by the Example of Docker

Author: Peer, S. (Simon)

Description (deu): St. Pölten, Studiengang Information Security, Masterarbeit, 2016

Description (deu): Virtualisierung auf Betriebssystemebene ist ein Verfahren, um auf einem physikalischen System auf effiziente Art und Weise mehrere isolierte, virtuelle Umgebungen bereitzustellen. Diese Umgebungen, die üblicherweise als Container bezeichnet werden, teilen sich das Betriebssystem mit dem Host-System. Verglichen mit virtuellen Maschinen benötigen Container weniger Zeit zum Starten und verursachen weniger Overhead. Dadurch ist eine höhere Packungsdichte möglich, das heißt, es können mehr Container auf einem Server betrieben werden. Allerdings werden Container als weniger sicher als virtuelle Maschinen erachtet.
Es handelt sich bei Virtualisierung auf Betriebssystemebene nicht um eine neue Technologie. Dieses Verfahren wurde bereits vor mehr als zehn Jahren entwickelt und umgesetzt. Jedoch sind Container erst in den letzten Jahren auf breites Interesse gestoßen und haben große Popularität erlangt. Besonders die Vorstellung von Docker vor drei Jahren hat dazu beigetragen, Container in den Mittelpunkt zu rücken. Docker ermöglicht es, Anwendungen und ihre jeweiligen Abhängigkeiten in Containern zu verpacken, die dann auf jedem geeigneten System installiert und ausgeführt werden können. Das Ziel dieser Diplomarbeit ist es, das von Docker gebotene Maß an Sicherheit zu analysieren. Zu diesem Zweck werden zunächst die zugrundeliegenden Funktionen des Linux Kernels erläutert. Anschließend wird auf Docker sowie dessen Architektur und Komponenten eingegangen. Die Analyse selbst besteht aus zwei Teilen: Im ersten Teil wird der Grad der Isolierung zwischen Containern untersucht, während der zweite Teil weitere sicherheitsrelevante Aspekte im Zusammenhang mit der Verwendung von Docker behandelt. Darüber hinaus werden zusätzliche Sicherheitsfunktionen des Linux Kernels vorgestellt, die dazu beitragen können, das Schutzniveau zu erhöhen.
Zurzeit ist Docker die beliebteste Lösung für Containervirtualisierung in Linux. Es existieren aber auch verschiedene andere Projekte. Aus diesem Grund wird zudem ein Überblick über aktuelle und zukünftige
Alternativen sowie Bemühungen zur Standardisierung gegeben.

Description (eng): Operating-system level virtualization is an approach to efficiently create multiple isolated virtual environments on the same physical system. These environments, commonly referred to as containers, share the operating system with the host. Compared to virtual machines, they require less time to start up and have less overhead, thus allowing a greater density. However, containers are considered less secure than virtual machines. Operating system-level virtualization is not a novel technology. It has been conceived and implemented more than a decade ago. Yet, it is only in the last few years that containers have gained widespread interest. The introduction of Docker three years ago really pushed containers into the limelight. Docker allows to package an application and its dependencies into a container, that can be deployed and run on any suitable system. The goal of this thesis is to analyze the level of security provided by Docker. To this end, first the underlying features of the Linux kernel are explained. Subsequently, Docker and its architecture is introduced. The analysis itself is split into two parts, with part one examining the degree of isolation between containers and part two addressing further safety risks related to the use of Docker. Moreover, additional security features of the Linux kernel, that can enhance the level of protection, are presented. While at the moment Docker is the most popular container virtualization solution for Linux, there exist several other projects. Therefore, an overview over current and future alternatives as well as standardization efforts is given.

Object languages: English

Date: 2016

Rights: © All rights reserved

Classification: Virtualisierung; Betriebssystem; Docker 1.11

Permanent Identifier