Hardware-gestütztes Reverse Engineering von Protokollen in zukünftigen Netzen

  • Beschreibung

    Im Rahmen der Forschung an verschiedenen Future Internet Projekten wurde am Institut ein Prototyp (http://nena.intend-net.org) entwickelt. Dieser ermöglicht ein Future Internet Szenario, in dem sich Knoten gleichzeitig mit einer Vielzahl von virtuellen Netzen verbinden, welche jeweils für bestimmte Anwendungen oder Einsatzszenarien optimiert sind. Beispiele solcher Netze sind spezielle IPTV-, Online-Banking-, Gaming-, oder File-Sharing-Netze. In diesen virtuellen Netzen werden auf den jeweiligen Anwendungsfall zugeschnittene Protokolle verwendet, die nach dem Baukasten-Prinzip durch Komposition von Bausteinen erstellt werden. Für die Betreiber der zugrunde liegenden Infrastruktur sind die Protokolle in den virtuellen Netzen allerdings nicht bekannt. Zum Erkennen von Fehler- oder Angriffssituationen oder Durchführen von Optimierungen in einem solchen Netz ist allerdings Wissen über die verwendeten Protokolle hilfreich.

    Aufgabenstellung

    Ziel dieser Arbeit ist die Integration von Protocol Reverse Engineering Mechanismen in den bestehenden Prototypen. Hierzu sollen existierende Protocol Reverse Engineering Ansätze analysiert und eine geeignete Lösung erarbeitet werden. Außerdem steht dem Institut der Hardware-Prototyp von IBM's Netzwerk-optimiertem Prozessor PowerEN zur Verfügung. Dieser besitzt Co-Prozessoren, die z.B. für Reguläre Ausdrücke oder XML-Parsing optimiert sind, und kann direkt auf 10GbE Schnittstellen zugreifen. Im Rahmen der Arbeit soll daher untersucht werden, inwieweit eine solche spezialisierte Netzwerk-Hardware genutzt werden kann, um das Reverse Engineering zu optimieren. Die dabei gewonnenen Erkenntnisse sollen wiederum in die eigene Arbeit einfließen. Abschließend soll der eigene Entwurf anhand von verschiedenen Anwendungsfällen evaluiert werden.

    Arbeitsumgebung

    Klimatisierter Rechner-Pool, GLUCK-System (Kaffee und andere Getränke), zahlreiche Testbett-Rechner

    Voraussetzungen

    Grundlegende Programmierkenntnisse in C/C++ und Bereitschaft sich in bestehenden Code einzuarbeiten