4
1 Einführung Dieses Kapitel dient dem Grundverständnis der Thematiken “Tunneling” und “verdeckte Kanä- le”. Das gelernte Wissen wird in den folgenden Kapiteln vertieft. Was ist Tunneling? In heutigen Netzwerken ist es nicht immer möglich, jedes System mit jedem anderen System auf direkte Weise kommunizieren zu lassen. Stattdessen sprechen verschiedene Systeme oft un- terschiedliche »Sprachen«, genauer: unterschiedliche »Protokolle«. Netzwerksysteme sprechen dabei im Normalfall nicht nur eine, sondern viele Sprachen, die in Schichten eingeteilt sind und aufeinander aufbauen. Sie können sich eine solche Kommunikation wie folgt vorstellen: Ein eng- lischer Philosoph möchte mit einem chinesischen Philosophen sprechen. Während der englische Philosoph kein Chinesisch spricht, spricht der chinesische Philosoph kein Englisch. Als Lösung des Problems werden als »untere Kommunikationsschicht« zwei deutsche Übersetzer eingesetzt, die untereinander das »Protokoll« Deutsch sprechen (Abbildung 1). Während der erste Überset- zer die Übersetzung Englisch-Deutsch und Deutsch-Englisch vornimmt, übernimmt der zweite Übersetzer die Übersetzung Deutsch-Chinesisch und Chinesisch-Deutsch. Auf diese Weise wird eine indirekte Kommunikation zwischen beiden Philosophen über die Übersetzer ermöglicht, obwohl die Philosophen nicht dieselbe Sprache sprechen. Beim Tunneling geht es nun darum, Protokolle eingekapselt in anderen Protokollen derselben oder höheren Kommunikationsschicht zu übertragen, wobei eine Auswertung der eingekapselten Daten nicht stattfindet [94, 110]. König nennt diesen Zusatz der nicht stattfindenden Auswertung eingekapselter Daten hingegen nicht explizit [69], doch dürfen wir von der Richtigkeit dieser Aussage ausgehen. Generell lässt sich sagen: Ein Tunneling findet dann statt, wenn ein Proto- koll einer Schicht M in einem anderen Protokoll einer Schicht N M übertragen wird. Es ist auch möglich, dass es sich beim einkapselnden Protokoll um dasselbe Protokoll handelt, wie das eingekapselte Protokoll. Die Philosophie stellte im Beispiel die »höhere« Kommunikationsebene, als die jeweilige Sprache dar. Wenn wir das Beispiel nun aber abwandeln, lässt sich Tunneling praktizieren. Dazu können Sie sich vorstellen, dass die Übersetzer Briefe austauschen. Diese Briefe werden in ei- ner Posttasche transportiert und zwischen den beiden Häusern der Übersetzer (die im selben Ort S. Wendzel, Tunnel und verdeckte Kanäle im Netz, DOI 10.1007/978-3-8348-2143-0_1, © Springer Fachmedien Wiesbaden 2012

Tunnel und verdeckte Kanäle im Netz || Einführung

  • Upload
    steffen

  • View
    214

  • Download
    1

Embed Size (px)

Citation preview

Page 1: Tunnel und verdeckte Kanäle im Netz || Einführung

1 Einführung

Dieses Kapitel dient dem Grundverständnis der Thematiken “Tunneling” und “verdeckte Kanä-le”. Das gelernte Wissen wird in den folgenden Kapiteln vertieft.

Was ist Tunneling?

In heutigen Netzwerken ist es nicht immer möglich, jedes System mit jedem anderen Systemauf direkte Weise kommunizieren zu lassen. Stattdessen sprechen verschiedene Systeme oft un-terschiedliche »Sprachen«, genauer: unterschiedliche »Protokolle«. Netzwerksysteme sprechendabei im Normalfall nicht nur eine, sondern viele Sprachen, die in Schichten eingeteilt sind undaufeinander aufbauen. Sie können sich eine solche Kommunikation wie folgt vorstellen: Ein eng-lischer Philosoph möchte mit einem chinesischen Philosophen sprechen. Während der englischePhilosoph kein Chinesisch spricht, spricht der chinesische Philosoph kein Englisch. Als Lösungdes Problems werden als »untere Kommunikationsschicht« zwei deutsche Übersetzer eingesetzt,die untereinander das »Protokoll« Deutsch sprechen (Abbildung 1). Während der erste Überset-zer die Übersetzung Englisch-Deutsch und Deutsch-Englisch vornimmt, übernimmt der zweiteÜbersetzer die Übersetzung Deutsch-Chinesisch und Chinesisch-Deutsch. Auf diese Weise wirdeine indirekte Kommunikation zwischen beiden Philosophen über die Übersetzer ermöglicht,obwohl die Philosophen nicht dieselbe Sprache sprechen.

Beim Tunneling geht es nun darum, Protokolle eingekapselt in anderen Protokollen derselbenoder höheren Kommunikationsschicht zu übertragen, wobei eine Auswertung der eingekapseltenDaten nicht stattfindet [94, 110]. König nennt diesen Zusatz der nicht stattfindenden Auswertungeingekapselter Daten hingegen nicht explizit [69], doch dürfen wir von der Richtigkeit dieserAussage ausgehen. Generell lässt sich sagen: Ein Tunneling findet dann statt, wenn ein Proto-koll einer Schicht M in einem anderen Protokoll einer Schicht N ≤ M übertragen wird. Es istauch möglich, dass es sich beim einkapselnden Protokoll um dasselbe Protokoll handelt, wie daseingekapselte Protokoll.Die Philosophie stellte im Beispiel die »höhere« Kommunikationsebene, als die jeweilige

Sprache dar. Wenn wir das Beispiel nun aber abwandeln, lässt sich Tunneling praktizieren. Dazukönnen Sie sich vorstellen, dass die Übersetzer Briefe austauschen. Diese Briefe werden in ei-ner Posttasche transportiert und zwischen den beiden Häusern der Übersetzer (die im selben Ort

S. Wendzel, Tunnel und verdeckte Kanäle im Netz, DOI 10.1007/978-3-8348-2143-0_1, © Springer Fachmedien Wiesbaden 2012

Page 2: Tunnel und verdeckte Kanäle im Netz || Einführung

2 1 Einführung

wohnen) ausgetauscht. Wohnt nun einer der Übersetzer auf einem anderen Kontinent, funktio-niert dieses Verfahren nicht mehr. Dazu muss der Postbrief zunächst in eine Posttasche gepacktwerden, die später etwa auf ein Schiff verladen wird. Das Schiff bringt die Posttasche zum an-deren Kontinent, wo sie entladen und zum Empfänger transportiert wird. Schließlich wird derBrief entnommen und in den Briefkasten des empfangenden Übersetzers gesteckt. Die Übertra-gung der Posttasche innerhalb einer anderen physikalischen Übertragung (dem Schiff) ist dabeieine Einkapselung derselben Kommunikationsschicht. Zum Transport über das Meer wäre esschließlich auch möglich gewesen, den Brief in der Posttasche bis zum Schiff zu transportieren,aus der Posttasche zu entnehmen und direkt (ohne Posttasche) auf dem Schiff zu transportieren.Auf dem Zielkontinent wäre dann zwar eine andere Posttasche benötigt worden, doch wäre diesesicherlich leicht zu organisieren gewesen.Ein Netzwerk-Beispiel für das Tunneling wäre es, IPv4-Pakete durch ein IPv6-Netz zu schi-

cken, ein anderes kann darin bestehen PPP-Frames über IPv4 zu transportieren. Solche Tunneling-Einsätze sind im Normalfall von den Netzwerkadministratoren explizit eingerichtet – sie sindlegitim und gewünscht, da sie der Kommunikation einer Organisation dienen. Ziel kann hierbeietwa die Verbindung mehrerer Firmennetzwerke sein. Auch wird Tunneling bei der Verbindungverschiedenartiger Steuerungsnetzwerke verwendet. So kann etwa die Kommunikation zwischender Gebäudetechnik zweier getrennter Gebäude über das Internet getunnelt und somit zentral ge-steuert werden.

Verdeckte Kanäle erzeugen hingegen einen in der Literatur meist nicht legitimen Kommuni-kationskanal (also etwa das Übertragen versteckter Informationen über HTTP) und nutzen dabeiKommunikationsattribute aus, die von Entwicklern gar nicht zur Kommunikation gedacht sind.Die Legitimität des verdeckten Kanals ist dabei von der Betrachtungsweise (Anwender des ver-deckten Kanals beziehungsweise Gegenspieler) abhängig.Eine Verbindung der Begriffe Tunneling und verdeckte Kanäle (covert channels) lässt sich

über die Hacking-Community ziehen. Schon Mitte der 90er Jahre bezeichneten erste Hacker das(aus Sicht der Netzwerkadministration) illegitime und zugleich geheime Übertragen von ver-steckten Informationen über Netzwerkdaten als Tunneling. Die akademisch korrekte Bezeich-nung für eine solche Übertragung ist allerdings der verdeckte Kanal (manchmal auch Netzwerk-Steganographie), doch hat sich der Begriff des Tunnelings bis heute in der Hacking-Communitygehalten.Insbesondere spielen verdeckte Kanäle und das legitime Tunneling eine zentrale Rolle bei der

Überwindung von Internet-Zensur durch Journalisten – sie sind also aus Sicht der zensieren-den Instanz nicht legitim, jedoch von ihren Anwendern erwünscht und als legitim betrachtet.Es handelt sich bei verdeckter Kommunikation folglich auch um ein politisches Thema, jedochkonzentriert sich dieses Werk auf die technischen Aspekte dieser Technologien. Für eine poli-tische Themenbetrachtung empfiehlt sich ergänzend der Titel Internetzensur in China [11]. EinAnwendungsgebiet für verdeckte Kanäle kann auch die Exfiltration geheimer Daten aus einemUnternehmensnetzwerk nach außen darstellen. Ebenfalls bekannt ist die Anwendung der ver-deckten Kanäle für die Kommunikation innerhalb von Botnetzen.Eine Einführung in Netzwerkprotokolle und die Architektur von Netzwerken und deren Schich-

ten wird ausführlich im folgenden Kapitel beschrieben. An dieser Stelle sei nur gesagt, dass einNetzwerkprotokoll zur kontrollierten Übertragung von Daten dient und dabei die zu übertra-genden Daten und deren Verwaltungsinformationen beschreibt. Etwa spezifizieren die meisten

Page 3: Tunnel und verdeckte Kanäle im Netz || Einführung

3

Netzwerkprotokolle die Größe (Länge) der übertragenen Daten und deren Sender und Empfänger(das können beispielsweise IP-Adressen sein). Schichten in Netzwerken dienen der Bereitstel-lung verschiedener Fähigkeiten, die durch eine Reihe von Netzwerkprotokollen realisiert werden.Ein Protokoll, dass eine bestimmte Aufgabe übernehmen kann, ist auf der jeweiligen Schicht zufinden, die sich um diese Aufgabe kümmert. Durch die Schichten-Architektur wird erreicht, dassArbeitsschritte (Fähigkeiten) abstrahiert werden. So könnten Daten etwa über zwei Schichtenübertragen werden, wovon sich eine Schicht um die physikalische Datenübertragung und eineandere Schicht um die Fehlerkorrektur der Daten kümmert.König führt in diesem Kontext wichtige Begriffe ein, auf die auch an dieser Stelle nicht ver-

zichtet werden soll [69]: Nutzdaten (Payload) werden dabei in ein Protokoll eingekapselt undbilden zusammen mit den Meta-Informationen (das sind Verwaltungsinformationen) eines Proto-kolls die sogenannte Protocol Data Unit (PDU). Neben den Begriffen »Nutzdaten« und »Meta-Informationen« findet sich in der Literatur auch die PDU-Unterteilung in Service Data Unit(SDU) und Protocol Control Information (PCI). Bei dem eingekapselten Payload kann es sichaus Sicht eines einkapselnden Tunnling-Protokolls statt um einfachen Payload auch um Dateneines anderen Protokolls (und somit um eine andere PDU) handeln. Das heißt: Eine PDU wirdin eine PDU gekapselt. Die entsprechenden Meta-Informationen können vor, nach oder vor undnach den Nutzdaten für die Datenübertragung eingebracht werden, finden sich aber in der Regelvor dem Payload [69]. Sind die PDU-Daten vor den Nutzdaten eingebracht, spricht man von ei-nem Header; sind sie hinter den Nutzdaten eingebracht spricht man hingegen von einem Trailer.Abbildung 1.1 verdeutlicht diesen Zusammenhang.

Abbildung 1.1: a) Eine PDU bestehend aus einem Header, dem eingekapselten Payload und einem Trailer.b) Einkapselung eines Protokolls mit einem Header in ein anderes Protokoll. Dem eingekapselten Protokollist zudem Payload zugeordnet.

Exkurs: »Protocol Engineering«

Das Thema »Tunneling« ist eng mit dem Thema »Protokolle«, genauer mit dem Protocol Engi-neering, verknüpft, weshalb ein kurzer Abriss der Thematik an dieser Stelle erfolgen soll.Ein Protokoll ist gemäß Holzmann [45] über verschiedene Bestandteile definiert. Erstens defi-

niert ein Protokoll ein präzises Format für korrekte Nachrichten (etwa Handzeichen oder Punkteund Striche beim Morse-Code [45]). Zweitens definiert ein Protokoll Regeln für den Datenaus-tausch und drittens ein Vokabular akzeptierter Nachrichten samt deren Semantik [45]. Weiterhinexistiert für ein Protokoll eine Beschreibung des erbrachten Dienstes (was leistet das Protokoll ei-gentlich?) und eine Reihe an gemachten Annahmen, die das Protokoll für sein Funktionieren vor-aussetzt. Nicht vergessen werden sollte dabei auch, dass für das Funktionieren eines Protokollsdie Einigung auf das Protokoll zwischen den Kommunikatoren (also Sender und Empfänger)

Page 4: Tunnel und verdeckte Kanäle im Netz || Einführung

4 1 Einführung

nötig ist. Einigen sich nicht beide Kommunikatoren auf dasselbe Protokoll, kann eine Kommu-nikation entweder nicht oder nur fehlerbehaftet ablaufen. Bereits geringfügige Unterschiede imProtokoll oder in dessen Implementierung (etwa falsche Interpretationen der Nachrichten oderdas Auftreten eines unerwarteten Zustandes) können dabei zu Störungen führen. Daher gilt imProtocol Engineering die Aussage: Every protocol should be considered incorrect until the op-posite is proven [45].Es überrascht daher nicht, dass Protokolle im Normalfall formal beschrieben und überprüft

werden. Einen Abriss der typischen formalen Methoden zur Verifikation und zum Test von Pro-tokollen finden Sie in [45, 69, 116]. Ähnlich dem Wasserfallmodell des Software-Engineeringswerden beim Protocol-Engineering verschiedene Phasen durchlaufen [69]: Zunächst wird eineAnforderungsanalyse durchgeführt, die in einer Anforderungsspezifikation mündet. Basierendauf Derselben wird eine Spezifikation für den zu erbringenden Dienst und das Protokoll erstellt.Nach einer Leistungsanalyse kann ein optimierter Protokollentwurf erstellt werden. Das spezifi-zierte Protokoll wird anschließend formal verifiziert. Erst nachdem die Verifikation abgeschlos-sen ist, erfolgt die Implementierung eines Protokolls (es können, wie bei so genannten Requestfor Comments1 (RFCs) üblich, auch mehrere parallele und zudem unabhängige Implementierun-gen erfolgen), die anschließend durch einen Test überprüft wird. Nachdem die Tests erfolgreichabgeschlossen wurden, erfolgt die Integration des Protokolls in die zukünftige Arbeitsumgebung.

Anwendungsgebiete des Tunnelings

Das primäre Anwendungsgebiet für Netzwerk-Tunnel ist das Übertragen von für ein (Teil-)Netzinkompatiblen Daten innerhalb von anderen Daten [69]. Diese Anbindung von Teilnetzen spieltetwa bei Unternehmen eine große Rolle, die Außenstellen über inkompatible Netze anbindenmöchten.Eine Rolle spielt dabei nicht ausschließlich – wie oft angenommen – die Umstellung von IPv4

auf IPv6, also der Datentransfer von IPv6-Paketen durch alte IPv4-Netze, sondern eine Reihe an-derer Szenarien. Eines dieser Szenarien ist etwa die (verschlüsselte) Datenübertragung im Rah-men von virtuellen privaten Netzwerken (virtual private networks, VPNs) [102]. Weiterhin wirdTunneling seit einiger Zeit angewandt, um Zensurmechanismen, die auf bestimmte Netzwerkpro-tokolle angesetzt werden, zu umgehen [11]. Ein ebenfalls relativ neues Anwendungsgebiet hatsich im Bereich der Gebäudeautomation etabliert, da einzelne Kommunikationsprotokolle dortnicht ohne Gateways auf Netze mit anderen Protokollen übersetzt werden können und zudem dieAnbindung der Gebäudeautomation ans Internet bewerkstelligt werden muss. Wir werden jedesdieser Anwendungsgebiete im späteren Verlauf dieses Buches genauer behandeln.Bei den genannten Anwendungsgebieten wird generell zwischen legitimem Tunneling und

illegitimem Tunneling unterschieden. Während Ersteres in der Regel explizit durch einen Ad-ministrator konfiguriert wird (etwa um zwei Netzwerke zu verbinden), wird Letzteres geheimbenutzt, um etwa die Zensur zu umgehen. Der Übergang zwischen illegitemem Tunneling undverdeckten Kanälen ist fließend und wird im weiteren Verlauf des Buches klarer werden. Gesagtsei jedoch schon jetzt, dass sich beide Verfahren primär durch ihre Qualität unterscheiden undverdeckte Kanäle vor allen Dingen die wissenschaftliche Sicht auf das Thema beleuchten.

1An dieser Stelle sei vorweg genommen, dass RFCs Beschreibungen für Internet-Protokolle enthalten.