Titel: Ausgewählte Themen Verteilter Systeme
Englischer Titel: Selected Topics in Distributed Systems
Typ: Seminar, Modul
Kürzel / Nr. / Modulnr.: ATVS / CS5900.113 / ?
SWS / LP: 2S / 4LP
Dozent: Prof. Dr. Frank Kargl, Prof. Dr.-Ing. Franz J. Hauck
Betreuer: Stefan Dietzel, Steffen Kächele, Benjamin Erb, Stephan Kleber, Christian Spann, Rens van der Heijden, Henning Kopp
Termine: Mittwoch, 14.15 Uhr - 15.45 Uhr, O27-341
Themenvorstellung: Unverbindliche Themenvorstellung am Mittwoch, 23.04.2014, 14.15 Uhr im Raum O27-341.
Lernplattform: Kursmaterialien finden Sie im Moodle-Kurs. Sie werden dem Kurs automatisch hinzugefügt sobald sie eines unserer Seminare besuchen.
Themenvergabe: Die Themenvergabe erfolgt ab 01.04.2014 über die zentrale Seminarthemen-Vergabe-Plattform.

Themen

Anomalie-basierte Angriffserkennungssystemen für Indusrie-steuersysteme

Rens van der Heijden

In aktuellen Fabriken und Kraftwerken werden häufig elektronische Steuersysteme eingesetzt, um einen Prozess automatisch zu kontrolieren und steuern. Diese Steuersysteme nennen sich Industrial Control Systems (ICS), und werden meistens verwendet, um kritische Systeme zu monitoren und auch automatisch auf Ereignisse zu reagieren. Diese Systeme werden immer häufiger an das Internet angebunden, und damit gibt es ein deutlich höheres Risiko auf Angriffe. Dazu werden in Forschungsarbeiten sogenannte Intrusion Detection Systems (IDS) entwickelt, um diese Angriffe zu erkennen. Ziel dieser Seminararbeit ist, eine Übersicht zu schaffen, welche Arten von IDS es gibt, insbesondere in dem Teilbereich der anomalie-basierten (anomaly-based) IDS.
Sicherheitsherausforderungen von intelligente Strom-Infrastrukturen
Rens van der Heijden
In den letzten Jahren sind verschiedene Arten von sogenannten "Smart Meters" eingeführt, eine Art von Stromzähler, die es ermöglicht Verbrauch von einem Haus zu kommunizieren. Diese Informationen können von Stromlieferant verwendet werden, um die Produktion von Strom auf dem aktuellem Bedarf des Stromnetzes an zu passen. Dies wird immer wichtiger, weil die Produktion nicht länger nur am Kraftwerk statt findet, sonder dann auch bei Häuser, aufgrund eines zunehmendes Anzahl von Stromproduktion aus erneuerbare Energiequellen wie Wind und Sonne. Das gesamte Netzwerk von Produzenten und Verbraucher bezeichnet man auch mit "Smart Grid". Ziel dieser Arbeit ist, die Sicherheitsanforderungen in diese Netzwerken zu analysieren, und insbesondere fest zu stellen, wie diese sich von traditionelle Netzwerken unterscheiden.
Verbesserte Vorgangs- und Störfallserkennung mit fahrzeug-fahrzeug Netzwerken
Rens van der Heijden
Fahrzeug-Fahrzeug Kommunikation ist ein Forschungsgebiet das sich in die letzte 10-15 Jahren verbreitet hat, mit das Hauptziel die Sicherheit des Fahrers zu erhöhen. Zusätzlich gibt es Möglichkeiten die gesammelte Daten so zu verwenden, das z.B. Staus erkannt werden können, oder freie Parkplätze gefunden werden können. Dazu ist es notwendig, das Fahrzeuge innerhalb des Netzes identifizieren können, wenn interessante Ereignisse passieren. Ziel dieser Arbeit ist, ausgewählte Mechanismen zu diskutieren, die mittels Nachrichten aus dem Fahrzeug-Fahrzeug Kommunikationssystem verschiedene Arten von Ereignisse bzw. Störfälle erkennen.
Commutative Replicated Data Types
Benjamin Erb
Commutative Replicated Data Types (CRDTs) sind spezielle Datentypen, deren Operationen vertauschbar sind. Somit konvergieren nebenläufige Operationen auf Replikaten letztendlich auf den gleichen Zustand, ohne das dafür besondere Nebenläufigkeitskontrolle notwendig ist. CRDTs eignen sich deswegen vor allem für den Einsatz in verteilten Anwendungen und Datenbanken. Ziel der Arbeit ist eine Vorstellung von CRDTs und ihren Konzepten.
Reactive Programming
Benjamin Erb
Reactive Programming fasst einen Architekturtrend zusammen, der auf das Design und die Implementierung von ereignisbasierten, skalierbaren, fehlertoleranten und interaktiven verteilten Anwendungen abzielt. Ziel der Arbeit ist die Vorstellung der Grundidee und der einzelnen architektonischen Konzepte, sowie eine Einordnung zu anderen verteilten Architekturen. Desweiteren soll auf verfügbare Frameworks wir RxJava und Akka eingegangen werden, die den Einsatz von Reactive Programming erleichtern. 
Graphenbasierte Computing-Frameworks
Benjamin Erb
Neben klassischen Batch-Processing-Plattformen wie Hadoop und speziellen graph-basierten NoSQL-Datenbanken wie neo4j gibt es auch dedizierte Frameworks, um auf graph-basierten Daten Berechnungen durchzuführen. In dieser Seminararbeit sollen solche Frameworks, wie zum Beispiel GraphX, Pregel oder PowerGraph, vorgestellt und erläutert werden.

Sponge functions
Henning Kopp

Ein wichtiger Baustein in Sicherheitssystemen sind kryptographische Hashfunktionen. Man kann sie sich vorstellen als eine Art mathematische Einbahnstraße. Eine oft verwendete Konstruktion um Hashfunktionen zu bauen ist die Merkle-Damgard-Konstruktion. Leider sind die so entworfenen Hashfunktionen verwundbar durch Length extension Angriffe. Der neue Standard SHA-3 verwendet dagegen die sogenannte sponge construction, die sogar beweisbare Sicherheitsgarantien liefert. Ziel dieser Arbeit ist die Herausarbeitung der Vor- und Nachteile der sponge Konstruktion.

Miller-Rabin primality test
Henning Kopp

Primzahltests finden häufig Anwendung in Zufallszahlengeneratoren oder asymmetrischen Verschlüsselungsverfahren wie zum Beispiel RSA. Der probabilistische Primzahltest von Miller-Rabin ist trotz seines Alters und seiner einfachen Implementierung momentan einer der effektivsten Primzahltests. Je nach Kenntnisstand des Studenten wird eventuell noch ein zweiter Primzahltest besprochen, Anwendungsgebiete erläutert oder die mathematische Grundlagen vertieft.
 

Das Bitcoin-protokoll
Henning Kopp

Bitcoin ist die beliebteste dezentrale virtuelle Währung. Die einzelnen Bitcoins werden durch ein Peer-to-peer Netzwerk erzeugt. In dieser Arbeit soll ein Überblick über die Funktionsweise von Bitcoins gegeben werden. Je nach Aufwand können noch Details vertieft oder die gesellschaftlichen Folgen besprochen werden.
Subjective Logic

Stefan Dietzel

Subjective Logic ist eine von Adun Josang entwickelte Logik die einige Vorzüge gegenüber klassischer Boolescher Logik oder probabilistischer Logik bietet. Subjective Logic bietet eine flexible Modellierungssprache für Aussagen und deren Kombination. In verteilten Systemen kann Subjective Logic für Web-of-Trust-Anwendungen, aber auch für mobile ad-hoc Netze wie drahtlose Sensornetze eingesetzt werden. Diese Seminararbeit soll einen Überblick über Subjective Logik geben und den Einsatz anhand von praktischen Anwendungsbeispielen diskutieren.
VANET-Anwendungen für Verkehrseffizienz

Stefan Dietzel

VANETs sind ad-hoc Netze, die zwischen Fahrzeugen aufgebaut werden. Neben Anwendungen die die Sicherheit der Fahrer erhöhen ist die Steigerung der Verkehrseffizienz das Haupt-Anwendungsgebiet. Mögliche Umsetzungen sind virtuelle Ampeln, dynamische Ampelschaltungen, dynamische Routenanpassung sowie verbesserte Parkplatzsuche. In dieser Arbeit soll ein Überblick über mögliche Anwendungen gegeben werden sowie die darunter liegenden Herausforderungen, wie etwa effiziente Informationsverbreitung im Netzwerk, beleuchtet werden.
Privacy in VANETs

Stefan Dietzel

VANETs sind ad-hoc Netze, die zwischen Fahrzeugen aufgebaut werden. Gleichwohl sie viele Anwendungen ermöglichen, ist die Basis für viele dieser Anwendungen der ständige Austausch von feingranularen Positions-Daten der einzelnen Fahrzeuge. Ein Angreifer der die Positionsdaten sammelt kann so detaillierte Bewegungsmuster erstellen. Diese Arbeit soll einen Überblick über das Ausmaß möglicher Angriffe geben sowie exemplarisch verschiedene Gegenmaßnahmen vorstellen.

Binary Instrumentation
Stephan Kleber

Zur dynamischen Analyse von Programmen kann die sogenannte Binary Instrumentation verwendet werden. Hierbei werden mit unterschiedlichen Verfahren Hooks in das Programm eingebracht, die auf bestimmte Funktionsaufrufe reagieren und diese protokollieren können, ohne den Programmablauf selbst zu beeinflussen. Auf gewisse Weise handelt es sich hierbei um den komplementären Ansatz zu Taint Tracking, das zur Verfolgung von Datenflüssen eingesetzt wird. Mit geeigneter Prozessorunterstützung ist es sogar möglich solche Hooks auf eine Binärdatei anzuwenden, ohne dass diese rekompiliert werden muss. Ein Beispiel für ein solches Tool ist PIN, das von Intel entwickelt wurde. Diese Arbeit soll die Konzepte und Grundlagen von Binary Instrumentation darstellen und dazu PIN zur Veranschaulichung nutzen.

Binäranalyse als Reverse Engineering Technik
Stephan Kleber

Bei der Analyse von Programmen mit unbekanntem Quellcode, wie es etwa bei Malware der Fall ist, ist die Analyse der Binärdatei eine wichtige Technik. Diese enthält den Programmcode, der in der Regel direkt durch den Prozessor ausgeführt wird. Da durch das Übersetzen des Quellcodes in den Programmcode viel von der Semantik einer Hochsprache verloren geht, ist eine solche Analyse nicht trivial. In dieser Arbeit soll erläutert werden, wie dieser Umstand durch geeignete Tools möglichst ausgeglichen und dem Analysten das Verständnis für das Programmverhalten erleichtert werden kann. Ein Tool das hierbei sowohl dynamische als auch statische Analyseverfahren vereint ist BitBlaze, welches als Beispiel dienen soll.

Techniken zur Generierung von Kommunikationsprotokoll-Zustandsautomaten (Protocol Reverse-Engineering)
Stephan Kleber

Bei Sicherheitsanalysen liegen in vielen Fällen Mitschnitte von Kommunikation oder kommunizierende Geräte vor, deren Protokoll vollkommen unbekannt ist. Zur Analyse und Rekonstruktion des Protokolls einer solchen Kommunikation sind nun verschiedene Ansätze denkbar. Neben der Erkennung des Paketformats ist wichtig zu ermitteln welche Abfolge von Paketen gültige Protokolläufe ausmachen. Tools wie "PEXT", "MACE" und "Netzob" stellen Vertreter verschiedener Ansätze hierzu dar. Ziel dieser Arbeit soll sein die Stärken und Schwächen der einzelnen Ansätze herauszuarbeiten und darzustellen, wo deren Grenzen beim Reverse-Engineering der Zustandsmaschine eines Protokolls liegen.
Identifikation notwendiger Garantien der Netzwerkschicht in BFT Algorithmen
Christian Spann
Byzantinisch Fehlertolerante Systeme ermöglichen durch Replikation, dass Dienste im Netz den Ausfall oder die Korrumpierung einzelner Replikate des replizierenden Systems überstehen. Der Dienst bleibt somit auch beim Ausfall einer definierten Teilmenge an Replikaten weiter verfügbar. Das Netzwerk, welches die Replikate verbindet, kann hierbei asynchron sein, Nachrichten verlieren und weitere Schwächen aufweisen. Dennoch verlassen sich die in der Literatur vorgeschlagenen Algorithmen meist darauf, dass eine Zwischenschicht die meisten tolerierten Netzwerkfehler wieder maskiert, da der Algorithmus sonst zu komplex in der Darstellung würde. Ziel dieser Arbeit ist es, diese notwendigen Garantien der Zwischenschicht in verschiedenen etablierten BFT Algorithmen zu identifizieren und eine Obermenge herauszuarbeiten um eine generische Implementierung der Zwischenschicht zu ermöglichen.

Distributed Event Processing Frameworks

Jörg Domaschka

Die zunehmende Größe verteilter Anwendungen stellt auch größere Ansprüche an das Monitoring der zahlreichen Anwendungskomponenten und involvierten Hardware-Knoten. Dies kann zum Beispiel mit dem Einsatz von Verteilten Event Processing Frameworks realisiert werden. Zu diesen gehören unter anderem S4 (Yahoo), Storm (Twitter), Riehmann und Vert.igo.

Ziel dieser Arbeit ist die Definition von Vergleichskriterien für Verteilte Event Processing Frameworks und ein anschließender Vergleich von drei solcher Systeme. Eine Feature-basierte Analyse der drei System in Hinblick auf Monitoring rundet die Arbeit ab.

Vergleich von CloudFoundry und Apache Stratos

Jörg Domaschka

Der Cloud Hype der vergangenen Jahre hat ein reichaltiges Öko-System an Cloud Plattformen und Cloud Anbietern hervorgebracht. Nachdem die Angebote von Infrastructure-as-a-Service (IaaS) Clouds inzwischen kommerziell voll ausgeschöpft werden, steht die Verwendung von Platform-as-a-Service (PaaS) Angeboten noch am Anfang.

In dieser Arbeit sollen zunächst die verschiedenen Cloud Angebote (IaaS, PaaS, SaaS) erklärt und gegeneinander abgegrenzt werden. Im Anschluss daran sollen die beiden Software Stacks CloudFoundry und Apache Stratos hinsichtlich Kriterien wie Ansatz, Architektur, Portabilität, ... verglichen werden. Zum Schluss folgt eine kritische Diskussion.

In-memory Indizierung von (kleinen) Daten

Jörg Domaschka

Große Web-Anwendungen wie Twitter und Facebook benötigen effiziente Algorithmen um schnell auf viele kleine Datenstrukturen wie Tweets oder Posts zugreifen zu können. Meist wird dazu ein verteilter Index im Speicher gehalten während die Daten auf Grund der schieren Menge auf persistenten Datenträgern liegen (müssen). In diesem Vortrag sollen verschiedene Algorithmen zur Indizierung vorgestellt und miteinander verglichen werden. Dazu gehören zum Beispiel SILT, SkimpyStash, BufferHash oder FAWN-DS.

Beschreibung und allgemeine Angaben, Modulbeschreibung

Einordnung in die Studiengänge: Informatik, BSc.: Seminar
Medieninformatik, BSc.: Seminar
Software-Engineering, BSc.: Seminar

Informatik, Dipl.: Hauptseminar
Medieninformatik, Dipl.: Hauptseminar
(siehe auch unsere Hinweise zu Seminaren)
Lehr- und Lernformen: Ausgewählte Themen Verteilter Systeme, 2S, 4LP
Verantwortlich: Prof. Dr. Frank Kargl
Unterrichtssprache: Deutsch
Turnus / Dauer: jedes Semester / ein volles Semester
Vorraussetzungen (inhaltlich): Grundlagen der Rechnernetze, Proseminar
Vorraussetzungen (formal): -
Grundlage für (inhaltlich): -
Lernergebnisse: Studierende vertiefen exemplarisch an einem Teilgebiet der Informatik ihre Kenntnisse im selbstständigen Arbeiten mit wissenschaftlicher Literatur sowie im mündlichen und schriftlichen Präsentieren von fachwissenschaftlichen Inhalten. In Diskussionen wird die Fähigkeit zur kritischen Reflektion geübt. Im fachlichen Teil des Seminars stehen aktuelle Themen der Verteilten Systeme im Fokus. Abhängig vom Thema lernen Studierende ein konkretes System oder ein Konzept Verteilter Systeme kennen. Sie können diese Systeme in einen größeren Kontext einordnen und deren Vor- und Nachteile selbständig ableiten.
Inhalt: Zu Beginn des Seminars werden Themen des wissenschaftlichen Arbeitens (z.B. Literaturrecherche, Schreiben einer Publikation, Präsentationstechniken) eingeführt, um den Studenten eine methodische Hilfestellung zu geben. Die Erstellung der eigentlichen Ausarbeitung und Präsentation erfolgt in individueller Betreuung. Die Ergebnisse werden in einer Abschlusspräsentation vorgestellt.
Literatur: Wird je nach Thema zu Beginn der Veranstaltung bekannt gegeben.
Bewertungsmethode: Leistungsnachweis über erfolgreiche Teilnahme. Diese umfasst Anwesenheit und enthält Ausarbeitung, Vortrag und Mitarbeit.
Notenbildung: unbenotet
Arbeitsaufwand: Präsenzzeit: 30 h
Vor- und Nachbereitung: 90 h
Summe: 120 h