User-Mode-Linux ist eine Software, die sowohl in die Bereiche Benutzerprogramme, als auch Betriebssysteme zugeordnet werden kann. UML ist der Kategorie der Systemvirtualisierung zuzuordnen, dessen Funktionalität sich von weiteren Virtualiserungstechnologien stark unterscheidet. Eine UML-
Instanz wird vom Benutzer in einem Hostsystem als Benutzerprogramm gestartet und ohne Root-Privilegien am Hostsystem ausgeführt. UML verzichtet auf eine Virtualisierungsschicht. Die Architekturschnittstelle des UML-
Kernels ist die einzige Komponente, die sich von herkömmlichen Linuxkernel unterscheidet. Diese Schicht kommuniziert nicht mit der Hardware, sondern fordert Ressourcen vom Hostbetriebssystem als Benutzerprozess an. Diese Vorgehensweise beschränkt den Einsatz von UML auf Hostsystemen, die unter Linux betrieben werden.
Das erste Kapitel betrachtet die wesentlichen Komponenten eines Betriebssystems. Eingeleitet wird mit der Funktionsweise des Linuxkernels und die Differenzen der eingesetzten Architekturen. UML erzeugt für eigene Zwecke Prozesse am Host, weshalb auch das Thema Prozessmanagement betrachtet wird. Ein weiterer Punkt ist das Speichermanagement, da UML als Betriebssystem Haupt- und Festplattenspeicher benötigt, der vom Host zur Verfügung gestellt werden muss. Abgeschlossen wird dieses Kapitel mit einem Exkurs in die Funktionsweise alternativer Virtualisierungstechnologien.
Der Hauptteil umfasst die Funktionsweise und Eingliederung von UML auf einem Hostsystem. Es existieren unterschiedliche Varianten, wie UML am Host betrieben werden kann, weshalb deren Funktionsweisen analyisiert werden. Behandelt wird auch die Virtualisierung von Ressourcen durch UML.
Im letzten Kapitel werden die Sicherheitsaspekte von UML untersucht. Möglichkeiten, die einem Benutzer den Ausbruch aus UML auf das Hostsystem ermöglichen, werden aus unterschiedlichen Blickwinkeln erklärt, sowie Möglichkeiten, um Ausbrüche zu verhindern. Abschließend werden Einsatzgebiete er örtert, deren Erschließung durch UML in Zukunft geplant ist.
Inhaltsverzeichnis
- Motivation
- Kurzfassung
- Abstract
- 1 Grundlagen
- 1.1 Linux-Kernel
- 1.1.1 Einleitung
- 1.1.2 Aufbau und Funktionsweise des monolithischen Kernels
- 1.2 Prozessmanagement
- 1.2.1 Prozesse vs. Threads
- 1.2.2 Erstellen & Beenden von Prozessen
- 1.2.3 Prozesszustände
- 1.2.4 User- & Kernelmode
- 1.2.5 Interrupts
- 1.3 Speichermanagement
- 1.3.1 Speicheradressierung
- 1.3.2 Paging
- 1.4 I/O
- 1.4.1 Hardwareschichten
- 1.4.2 Softwareschichten
- 1.5 Virtual Machines
- 1.5.1 Techniken
- 1.5.2 Virtual Machine Monitor
- 1.5.3 CPUs mit Virtualisierungstechnologien
- 1.1 Linux-Kernel
- 2 UML Theorie
- 2.1 Architektur
- 2.1.1 Aufbau
- 2.1.2 Systemcalls
- 2.1.3 Traps
- 2.2 Managmentkonsole
- 2.2.1 Aufbau
- 2.3 Ausführungsmodi
- 2.3.1 Skas0-Modus
- 2.3.2 tt-Modus
- 2.3.3 Skas3-Modus
- 2.4 Speichermanagement
- 2.4.1 Hauptspeicher
- 2.4.2 Filesysteme
- 2.4.3 hostfs
- 2.4.4 humfs
- 2.5 Security
- 2.5.1 Ausbruchsmöglichkeiten
- 2.5.2 Chroot
- 2.5.3 Ausbruch aus einem UML-Jail
- 2.1 Architektur
- 3 UML-Praxis - Ausbruchsmöglichkeiten
- 3.1 Ausbruch durch das Filesystem
- 3.1.1 Vorgehensweise
- 3.1.2 Abwehr
- 3.2 Kernelmodul
- 3.2.1 Idee
- 3.2.2 Charakteristik von Modulen
- 3.2.3 Funktion
- 3.2.4 Modulerstellung
- 3.3 UML-Hauptspeicher
- 3.3.1 Idee
- 3.3.2 Ablauf
- 3.4 Systemcallhacking
- 3.4.1 lcall
- 3.4.2 ptrace
- 3.5 Shellcodeinjection
- 3.5.1 Vorgehensweise
- 3.5.2 Aufbau
- 3.5.3 Einschleusung
- 3.1 Ausbruch durch das Filesystem
- 4 Fazit und Ausblick
- 5 Glossar
- A Zusatzinformation
- A.1 UML-Theorie
- A.1.1 Sysrq-Kommandos
- A.1.2 Terminal I/O
- A.1 UML-Theorie
Zielsetzung und Themenschwerpunkte
Die vorliegende Bachelorarbeit befasst sich mit User Mode Linux (UML), einer Virtualisierungslösung, die es ermöglicht, ein Linux-System innerhalb eines anderen Linux-Systems auszuführen. Die Arbeit analysiert die Architektur und Funktionsweise von UML, untersucht die Sicherheitsaspekte und beleuchtet verschiedene Ausbruchsmöglichkeiten aus der virtuellen Umgebung.
- Architektur und Funktionsweise von UML
- Sicherheitsaspekte von UML
- Ausbruchsmöglichkeiten aus der virtuellen Umgebung
- Abwehrmechanismen gegen Ausbruchsversuche
- Praktische Anwendung von UML und Sicherheitsaspekten
Zusammenfassung der Kapitel
Das erste Kapitel der Arbeit behandelt die Grundlagen von Linux-Kernel, Prozessmanagement, Speichermanagement, I/O und Virtual Machines. Es werden die grundlegenden Konzepte und Mechanismen erläutert, die für das Verständnis von UML notwendig sind.
Das zweite Kapitel widmet sich der Theorie von UML. Es werden die Architektur, die Ausführungsmodi, das Speichermanagement und die Sicherheitsaspekte von UML detailliert beschrieben.
Das dritte Kapitel befasst sich mit der Praxis von UML und den möglichen Ausbruchsmöglichkeiten aus der virtuellen Umgebung. Es werden verschiedene Techniken und Szenarien vorgestellt, die es einem Angreifer ermöglichen könnten, die Sicherheit von UML zu umgehen.
Schlüsselwörter
Die Schlüsselwörter und Schwerpunktthemen des Textes umfassen User Mode Linux (UML), Virtualisierung, Linux-Kernel, Prozessmanagement, Speichermanagement, Sicherheitsaspekte, Ausbruchsmöglichkeiten, Abwehrmechanismen, Systemcalls, Kernelmodule, Shellcodeinjection, Virtual Machine Monitor, Virtualisierungstechnologien, Host- und Gastsystem.
- Quote paper
- Christoph Scharnböck (Author), 2007, UML - User Mode Linux, Munich, GRIN Verlag, https://www.hausarbeiten.de/document/127246