Man-in-the-Middle Angriffe auf Internetkommunikation Jan Harrie [email protected] 21. Februar 2014 Technische Univerität Darmstadt Zusammenfassung. Diese Arbeit beschreibt was ein Man-in-the-Middle (MitM) Angriff ist, wie er funktioniert und realisiert werden kann. Dazu wird zu Beginn das Grundprinzip des Angriffes beschrieben. Für die praktische Umsetzung des Angriffes werden im Anschluss die technischen, sowie konzeptionelle Hintergründe beschrieben. Mit diesen Grundlagen wird der MitM-Angriff in seinen unterschiedlichen Fassetten beschrieben. Angefangen auf hardwarenaher Ebene, über Angriffe auf Applikations-Ebene bis hin zur gesetzlich verordneten Abhörstation wird der Angriffs-Typ beschrieben. Abschließend werden die Angriffe in Hinblick auf die Anforderungen an den Angreifer verglichen. Hierzu gehört welchen Gefährdungspotential die Angriffe umfassen und welchen Aufwand der Angreifer zur Durchführung aufbringen muss. 1 Einleitung Aus den Medien hört man immer wieder, dass Angriffe auf die Internetkommunikation durchgeführt werden. Bei diesen Angriffen wird die Kommunikation mitgeschnitten und der Angreifer hat die Möglichkeiten die Daten oder Teilinformationen zu extrahieren. Für den Nutzer, dessen Verbindung abgehört wird, ist dieses ein Eingriff in dessen Privatsphäre. Angreifer können Kriminelle sein, die an persönlichen Informationen, Zugangsdaten oder Zahlungsinformationen der Nutzer interessiert sind. Ebenso sind es staatliche Institutionen die versuchen auf diesem Weg terroristische Aktivitäten oder das organisierte Verbrechen zu identifizieren. Das Interesse an diesem Thema ist aufgrund dem in Mitte des Jahres durch Edward Snowden bekannt gewordenen Abhörskandals der amerikanischen National Security Agency (NSA) und des britischen Government Communications Headquarter (GCHQ) verstärkt angestiegen. Der Whistleblower Edward Snowden hat in diesem Skandal bekannt gegeben, dass die NSA und das GCHQ einen Großteil jeglicher Internetkommunikation abhören, diese Daten speichert und anschließend auswertet [1]. In dieser Arbeit wird das Thema „Man-in-the-Middle Angriffe auf Internetkommunikation“ behandelt. Es sollen die technischen Anforderungen zur Durchführung der unterschiedlichen Angriffe erklärt, ihre Auswirkungen begutachtet und zum Abschluss einander gegenüber gestellt werden. In den nachfolgenden Kapiteln wird das Grundprinzip eines MitM Angriffes erklärt. Dafür werden die benötigten technischen Grundlagen über Ethernet/TCP/IP, Namensvergabe und Auflösung im Internet, Autonome Systeme (AS) und Public Key Infrastrukturen (PKI) aufgearbeitet. Mit diesen Grundlagen werden unterschiedliche Angriffstechniken auf unverschlüsselte und verschlüsselte Verbindungen beschrieben. Die Durchführung dieser Techniken wird abschließend gegenüber gestellt und nach Aufwand, Gefährdungspotential und Anforderungen an den Angreifer bewertet. 2 Hintergrundwissen Um einen Einstig in die Thematik zu bekommen wird im Folgenden das Grundprinzip eines MitM-Angriffes erklärt. Ergänzend werden Grundlagen aufgegriffen und deren Bezug zum Thema beschrieben. 2.1 Grundprinzip eines Man-in-the-Middle Angriffes In einem MitM Angriff wird die Kommunikation zweier Parteien infiltriert. Der Infiltrator versucht sich zwischen die beiden Kommunikationspartner zu schalten um deren Kommunikation abzuhören und gegebenenfalls zu manipulieren. Um dieses zu erreichen existieren unterschiedliche Techniken die einzeln oder in Kombination verwendet werden. Beim Abhören der Verbindung hat ein Angreifer zum Beispiel die Möglichkeit ausgetauschte Anmeldedaten, die beim Verbindungsaufbau an ein Webportal geschickt werden, aufzuzeichnen. Diese Daten kann dieser anschließend dazu nutzen um sich als diese Person in dem Webportal auszugeben. Im Falle einer Manipulation könnte der Infiltrator die Inhalte, die ursprünglich übertragen werden sollten, manipulieren. Dies könnten die Preise eines Webshops sein, sodass das Angebot wesentlich günstiger oder teurer erscheint, als vom Anbieter definiert [2, p.868 ff.]. 2.2 Das Internet und die Bedeutung von Autonomen Systemen Der Fokus dieser Arbeit ist Man-in-the-Middle Angriffe auf Internetkommunikation. Damit verständlich ist, wie sich das Internet aufbaut und aus welchen Strukturen es besteht, wird dieses zunächst erklärt. Das Internet wird oft als Netz von Netzen bezeichnet. Dies sind die Netze der Internet Service Provider (ISP)s. Jeder ISP wird als Autonomes System (AS) bezeichnet und bekommt eine eindeutige Nummer zugewiesen. Die Nummer wird als Autonomus System Number (ASN) bezeichnet und von der Internet Assigned Numbers Authority (IANA) an die Regional Internet Registries (RIR) verteilt, die die ASN an die ISP heraus gibt. In Europa ist hierfür die Reseaux IP Europeens (RIPE) zuständig. Jedem AS wird ein bestimmter Zuständigkeitsbereich an Adressräumen zugeordnet. Der ISP entscheidet selbst wie dieser Bereich verwaltet wird. 2 Abb. 1. Die Struktur im Internet der unterschiedlichen Tiere 1, Tier 2 und Tier 3 ISPs [17] Alle ASs sind über ein Backbone miteinander verbunden. Das Backbone bildet sich aus gebündelten Glasfaser-Leitungen, die einen hohen Datendurchsatz ermöglichen und Routern, die die Netze logisch miteinander verbinden. Die Router tauschen ihre Routing-Informationen mittels des Border Gateway Protocol (BGP) aus [7]. Nicht alle ISPs haben die gleiche Größe, sodass diese in Tier 1, Tier 2 und Tier 3 ISPs unterteilt werden. Abbildung 1 veranschaulicht den Aufbau dieser Struktur. Ein Tier 1 ISP ist direkt an das Backbone angeschlossen und ist im Besitz der physikalischen Infrastruktur. Kleine ISPs, die nur die Infrastruktur bei den Tier 1 ISPs mieten, werden als Tier 3 ISPs bezeichnet. Alle weiteren ISPs die damit nicht erfasst werden, werden als Tier 2 ISPs bezeichnet. Für eine ausführlichere Auflistung wird auf [7] verwiesen. Ein Tier 1 ISP ist zum Beispiel die Deutsche Telekom AG, die auch als International Carrier Sales & Solutions (ICSS) bekannt ist. Wie zuvor beschrieben werden den ASs Adressbereiche zugewiesen, die von ihnen verwaltet werden. Alle Kunden, die einen Vertrag mit einem ISP geschlossen haben, bekommen bei der Einwahl in das Internet, eine der Adressen zugewiesen. Der ISP kümmert sich darum, dass alle Kunden mit einander verbunden werden und auch eine Verbindung zu Kunden anderer ASs aufbauen können. 2.3 Domain Name Service Ein zentraler Dienst des Internets ist der Domain Name Service (DNS). Er wird dazu verwendet Namen zu Adressen aufzulösen. Diesen Dienst gibt es seit Anbeginn des Internets (1987) [4] und er wurde zu einer Zeit entwickelt, in der die Si3 cherheit von Diensten nicht im Vordergrund stand. Er verwendet das User Datagram Protocol (UDP) zum Transport der Informationen, welches verbindungslos ist [5]. Die DNS-Infrastruktur ist hierarchisch angeordnet. An der Spitze stehen die Root-DNS-Server gefolgt von den Top-Level-Domain (TLD) DNS-Servern. Diesen sind die DNS-Server der ISPs untergeordnet. Die DNS-Server der ISP führen große Tabellen über Ressource Record (RR), in denen Namen Adressen zugeordnet sind. Außerdem führen sie Einträge darüber, welche Domains ein Mail-Gateway führen oder andere DNS-Server, an die die korrespondierende Anfrage weiter geleitet werden. Wenn ein Client die Website www.example.com aufruft, stellt dieser eine Anfrage an seinen lokalen DNS-Server. Wenn die Adresse nicht in dem persistenten Speicher und auch nicht in dem Cache geführt wird, stellt der lokale DNS-Server eine rekursive Anfrage an einen übergeordneten DNS-Server. Dieser wird die Anfrage entweder beantworten oder weiterleiten. Da DNS UDP als Transport-Protokoll verwendet, werden die Anfragen um Request-Ids ergänzt, um die Antworten den Anfragen zuordnen zu können [3]. Nachdem der DNSServer die IP-Adresse der angefragten Domain ermittelt hat schickt er sie zurück. Die ermittelte Adresse wird bis ein Timeout abläuft im Cache des DNS-Servers gehalten, um erneute Anfragen an diese Adresse beim nächsten Mal schneller beantworten zu können. Wenn ein Angreifer Zugriff auf einen DNS-Server erlangt oder definieren kann welche Adresse an einen Client zurück geschickt werden, hat dieser die Möglichkeit die Verbindung umzuleiten. Dieses wird im Abschnitt 3.2 ausführlich beschrieben. 2.4 Ethernet/IP/TCP Das Internet besteht aus unterschiedlichen Netzen und Adressen. Ein solches Netz wird dadurch aufgebaut, dass unterschiedliche Endgeräte mittels Kabel oder per Funk verbunden sind. Die unterschiedlichen Endgeräte sind Computer, Notebooks, Netzwerk-Drucker oder Handys. Durch die Verbindung mittels Routern, Switches, Hubs und Access Points wird ein physikalisches Netzwerk aufgebaut. Damit die Geräte kommunizieren können wurden verschiedene Layer definiert [12, p. 67 ff.]. Auf der unter untersten Schicht, dem Physical Layer, werden die einzelnen Bits und Bytes mittels der zuvor genannten Geräte übertragen. Auf der zweiten Schicht, dem Data Link Layer, wird sichergestellt, das die Nachrichten, die verschickt werden sollen, über das richtige Netzwerk-Interface verschickt werden. Um die einzelnen Netzwerk-Interfaces zu adressieren werden MAC-Adressen verwendet. Jede MAC-Adresse besteht aus 48 Bit und wird einmalig an Netzwerkgeräte vergeben. Auf dieser Schicht wird mittels des Address Resolution Protocol (ARP) kommuniziert. Das ARP-Protokoll dient der Auflösung der physikalischen Adressen der Netzwerkkarten zu IP-Adressen. Jedes Gerät führt dafür eine eigene ARP-Tabelle die es während der Interaktion im Netzwerk aktuell hält. 4 Für eine logische Einteilung werden auf dem nächsten Layer, dem Network Layer, IP-Adressen verwendet. Der Begriff Adresse wird häufig zu der IP-Adresse synonym behandelt. Sie besteht aus 32 Bit (IPv4) und wird in Kombination mit einer Subnetz-Maske, ebenfalls 32 Bit, vergeben. Durch diese Kombination ist es möglich unterschiedliche Netze einzuteilen. Für die private Verwendung sind die Netze 10.0.0.0/8 bis 10.255.255.255/8, 172.16.0.0/12 bis 172.31.255.255/12 und 192.168.0.0/16 bis 192.168.255.255/16 vorgesehen. Sie können außerhalb dieser Netze nicht Adressiert werden. Die Zahl nach der IP-Adresse, durch ein Slash getrennt, bestimmt wie viele Bits, von links gesehen, in der Subnetzmaske auf 1 gesetzt sind. Durch die Verwendung von Subnetzmasken können große Netze in kleinere unterteilt werden. Die Anzahl der Endgeräte errechnet sich aus folgender Formel: Hosts = 232−x − 2, x ist die Anzahl der 1er Bits in der Subnetzmaske. Jedes Netz ist durch die erste IP-Adresse, die im Netz existiert, adressierbar. Beispielsweise: 192.168.0.0/24. Die höchste Adresse wird für den Broadcast1 verwendet. Beispielsweise: 192.168.0.255/24. Diese beiden Adressen sind in jedem Subnetz für den angegebenen Zweck reserviert, weshalb in der angegebenen Formel −2 gerechnet wird. Während der Datenübertragung kann es durch Schäden und Störungen an der Leitung zu fehlerhaften Datenübertragungen kommen. Damit dieses festgestellt werden kann, werden auf dem nächsten Layer, dem Transport Layer, unterschiedliche Transportprotokolle definiert. Das Transmission Control Protocol (TCP) ist ein sehr verbreitetes Transport Protokoll. Es dient der Adressierung der Ports2 auf dem Quell, sowie dem Ziel-Gerät. Beim Aufbau der Verbindung wird ein 4-Way-Handshake durchgeführt. Dieser Handshake dient dem Austausch der jeweiligen Sequenznummer. Die Sequenznummer wird in die Pakete integriert, damit die beim Empfänger eintreffenden Pakete in die korrekte Reihenfolge gebracht werden können. Beim Versandt einer Antwort vom Empfänger wird eine Acknowledgement-Nummer im Paket integriert. Sie bestätigt die zuletzt angekommene Sequenznummer. Wenn bei der Übertragung Pakete verloren gehen, kann der Sender dadurch, dass eine versandte Sequenznummer nicht bestätigt wird, feststellen, dass ein Paket nicht empfangen wurde und dieses erneut senden muss. Auf dem diesem Layer gibt es noch weitere Protokoll, die nicht weiter aufgegriffen werden. 2.5 Zertifikate in Public Key Infrastrukturen Ein weiterer wichtiger Bestandteil des Internets sind digitale Zertifikate. Digitale Zertifikate werden dazu eingesetzt die Authentizität einer Partei und die Authentizität und Integrität, der übertragenen Daten, verifizierbar zu machen. Das Zertifikat bildet sich aus dem Wert einer kryptographischen Hashfunktion, deren Ergebnis digital signiert wird. Es wird dafür der Hash-Wert über den öffentlichen Schlüsseln für einen asymmetrischen Verschlüsselungsalgorithmus, 1 2 An die Broadcast-Adresse können Nachrichten verschickt werden, die alle Teilnehmer im Subnetz erhalten. Ein Port ist eine Nummer [0..65535] die einen Dienst auf einem Endgerät adressiert. 5 Abb. 2. Hierarchisches Vertrauen [8, p.52] einer Identität und verschiedener anderer Informationen, die mit signiert werden sollen, gebildet. Diese Identität kann zum Beispiel ein Web-Dienst oder eine Person sein. Die digitale Signatur wird von einer Certificate Authority (CA) ausgestellt. Eine beispielhafte Hierarchie ist in Abbildung 2 dargestellt. An der Spitze steht die RCA. RCA hat ein digitales Zertifikat über den öffentlichen Schlüssel von CA1 und CA2 ausgestellt. CA2 eins über den öffentlichen Schlüssel von Diana und Emil. Wenn Vertrauen in das Zertifikat über den öffentlichen Schlüssel von Emil erreicht werden soll, muss einer der übergeordneten Instanz vertraut werden. Durch Vertrauen in RCA ist es möglich, die Korrektheit der darunter eingegliederten Entitäten zu verifizieren. Nach diesem Prinzip werden Public Key Infrastrukturen erzeugt. In diesem Beispiel handelt es sich um hierarchisches Vertrauen. Wie der Name schon aussagt, wird eine Hierarchie aufgebaut an dessen Spitze der Vertrauensanker steht. Diese Vertrauensanker werden als Root-Certificate Authority bezeichnet. Durch den Einsatz einer solchen PKI kann, wenn der Root-CA vertraut wird, die Zugehörigkeit eines öffentlichen Schlüssels zu einer Identität, bewiesen werden. Um weiträumig diese Vertrauenshierarchie zu verbreiten werden viele, von Root-CAs, selbst signierte Zertifikate in die Browser integriert. Diese dienen als Vertrauensanker für die Validierung von Zertifikaten, die herausgegeben wurden. In Deutschland wird z.B. das Zertifikate für die Deutsche Telekom AG oder des DFN Vereins mit ausgeliefert. Wenn ein Client eine Verbindung zu einen Server aufbauen will, schickt der Server zu Beginn seinen öffentlichen Schlüssel und Zertifikat zum Client. Damit der Client dem Schlüssel trauen kann, muss dieser der Root-CA, die das Zertifikat ausgestellt hat und als Vertrauensanker dient, vertrauen. Unter der Voraussetzung das die Korrektheit des empfangenen Zertifikates bestätigt werden kann, wird ein temporärer Sitzungsschlüssel erzeugt über den die weiter Kommunikation verschlüsselt werden soll. Vor dem Schlüsselaustausch werden unterstütze Algorithmen ausgetauscht und sich auf einen geeignet. Der erste Teil 6 der Kommunikation wird unverschlüsselt abgehandelt. Um die Integrität der ausgetauschten Nachrichten zu prüfen wird ein Hash Message Authentication Code (HMAC) am Ende des Verbindungsaufbaues über den unverschlüsselten Teil generiert. Dieser HMAC wird von beiden Parteien verifiziert. Nach dem Einigen auf einen Schlüssel findet die nachfolgende Kommunikation über eine symmetrische verschlüsselte Verbindung statt. Die genaue Spezifikation des Protokolls ist in der RFC 5247 von Transport Layer Security (TLS) 1.2 [6] zu finden. Das Vertrauens-Konzept das hinter einer PKI steht lässt vermuten, dass es möglich ist vertraulich über das Internet zu kommunizieren. Da die mit dem Browser ausgelieferte Liste an Zertifikaten sehr lang ist besteht ein Risiko des Vertrauensbruchs. Wie sich dieses auswirkt und welchen Angriffs-Vektoren dadurch entstehen sind im Abschnitt 3.4 zu entnehmen. 3 Angriffstechniken auf Kommunikationen im Internet Die Reihenfolge in der die nachfolgenden Angriffe aufgeführt werden, sind an den Bottom-Up Ansatz des TCP/IP Referenzmodells angelehnt. Anschließend wird ein organisatorisch geprägter Angriff beschrieben. Zum Abschluss werden Angriffe auf verschlüsselte Verbindungen und die Manipulation der übertragenen Daten beschrieben. 3.1 Angriff des Lokalen Netzwerkes Die Kommunikation mit dem Internet beginnt im lokalen Netzwerk. Sobald ein Datenpaket das Netzwerkinterface, eines Endgerätes, verlässt wird mit anderen Geräten kommuniziert. Ein Angreifer der sich in diesem Abschnitt der Kommunikation, dem lokalen Netzwerk, befindet, hat verschiedene Möglichkeiten ausgetauschte Daten aufzuzeichnen. Wie im Abschnitt 2.4 beschrieben wurde, wird während der Interaktion im Netzwerk, von den Endgeräten, eine ARP-Tabelle erstellt. Da in diesem Verfahren keine weiteren Sicherheitsmechanismen implementiert sind, kann ein Angreifer die Verbindung umleiten. Um dieses zu erreichen verschickt der Angreifer gespoofte3 ARP-Pakete an ein Zielsystem mit der IP-Adresse, z.B. des Gateways, und seiner MAC-Adresse. Diese gefälschten Pakete führen dazu, dass die ARP-Tabelle an dem Zielsystem aktualisiert wird. Wenn das Zielsystem die nächste Nachricht in ein anderes Netz schicken will, wird die korrekte IP-Adresse angegeben, aber die manipulierte MAC-Adresse. Damit die Kommunikation funktioniert, wird das gleiche Verfahren angewandt um einen falschen Eintrag beim Gateway zu erzeugen. Durch diese Abfolge ist es einem Angreifer möglich, den Netzwerkverkehr, über sein Endgerät zu leiten. Da jegliche Verkehr, der über das Gateway geschickt wird, über den Angreifer geleitet wird, kann dieser sämtliche übertragene Daten einsehen. Laut einer Studie des Sterns sind 77% der deutschen Haushalte mit einem Internetanschluss ausgestattet [18]. In einer gewöhnlichen Installation organisiert 3 Gespoofte Pakete sind Pakete die unter einem gefälschten Absender verschickt werden. 7 ein WLAN-Router die Anbindung an das Netz des ISPs. Der WLAN-Router bietet den Nutzer die Möglichkeit über WLAN mit dem Internet zu kommunizieren. Wenn es einem Angreifer gelingt Zugriff auf das Funknetzwerk zu erlangen, wird die Technik, die vorher beschrieben wurde, nicht benötigt. Durch den Einsatz bestimmter Funknetzwerk-Karten ist es dem Angreifer möglich, seinen Adapter in den Monitor-Mode zu schalten [19]. Da WLAN über ein Shared-Medium übertragen wird, kann der Angreifer problemlos die komplette Kommunikation aufzuzeichnen. 3.2 DNS Cache Poisoning Wie in Abschnitt 2.3 beschrieben wurde, ist der DNS-Dienst ein wichtiger Bestandteil des Internets. Aufgrund, dass der Dienst so eine Wichtigkeit besitzt, wurden unterschiedliche Angriffe gegen bzw. auf ihn entwickelt. Einer dieser Angriffe ist der DNS Cache Poisoning Angriff. Das Grundprinzip eines DNS Cache Poisoning Angriffes ist einen DNS-Server (DN S1 ) dazu zu bringen, dass dieser eine Anfrage an einen höher gestellten DNS-Server stellen muss, um einen Namen zu einer Adresse aufzulösen. Dieses ist durch eine Anfrage an eine andere TLD, zum Beispiel durch eine Anfrage aus dem Namensraum .de an den Namensraum .com, zu erreichen. Wenn der DNS-Server (DN S1 ) eine Anfrage (REQ1 ) für die Domäne d1 an einen übergeordneten DNS-Server (DN S2 ) sendet, kann ein Angreifer eine gespoofte Antwort senden. Diese Nachricht sollte vor der Antwort (RESP1 ) von DN S2 zugestellt werden. Für den Fall, dass der DNS-Server DN S1 mehrere Antworten auf die gestellte Anfrage erhält, erstellt dieser einen Eintrag in seinem Cache mit der Ersten passenden, erhaltenen Antwort. Bei einem erfolgreichen Angriff wird ein Eintrag anhand von RESPspoof ed erstellt und alle weiteren Nachrichten werden verworfen. Alle Anfragen an die Domäne d1 werden fortan mit dem gespooften Eintrag beantwortet. Um diesen Angriff auszuführen muss ein Angreifer die Request-ID, mit der die Anfrage identifiziert wird, vorhersagen können. Die Request-ID kann der Angreifer herausfinden indem er Kontrolle über einen Server S1 (in diesem Beispiel attacker.com) führt. Auf diesem Server muss ein DNS-Server (DN S3 ) installiert sein. Als ersten Schritt sorgt der Angreifer dafür, dass er die aktuelle Request-Id des anzugreifenden DNS-Servers DN S1 ermittelt. Durch eine Anfrage an DN S1 über eine Sub-Domain auf dem vom Angreifer kontrollierten Server S1 , zum Beispiel example.attacker.com, wird eine rekursive Anfrage von DN S1 an den DNS-Server DN S3 gestellt. Mittels der Request-Id, die am DNS-Server DN S3 eingegangen ist, kann der Angreifer die Request-Id für die nächste rekursive Anfrage des DNS-Servers DN S1 erraten. Um den Eintrag im Cache des DNS-Servers DN S1 für bank.com einzuschleusen stellt der Angreifer eine Anfrage an diese Domain, die DN S1 dazu bringt, eine rekursive Anfrage an DN S2 zu starten. Sobald die Anfrage für bank.com vom Angreifer abgeschickt wird, sendet der Angreifer eine Reihe von gespooften Paketen mit der Absender-Adresse von DN S2 und der vermutlich nächsten Response-Id zum DNS-Server DN S1 . Da in der Zwischenzeit weitere Anfragen an DN S1 gesendet worden sein können, wird eine ganze Reihe von Paketen mit 8 Abb. 3. DNS-Poisoning-Attack aufeinander folgenden Response-Ids an DN S1 gesendet. Wenn die gespooften Pakete mit der richtigen Response-Id schnell genug eintrifft, wird ein manipulierter Eintrag (Espoof ed ) in den Cache von DN S1 geschrieben. Alle Anfragen an DN S1 , für bank.com, werden mit dem Eintrag Espoof ed beantwortet. Der Eintrag Espoof ed bleibt solange im Cache, bis der Timeout für diesen abgelaufen ist [2, p. 869 ff.]. Der prinzipielle Vorgang des Versands der gespooften Pakete ist in Abbildung 3 zu sehen. Durch diese Art von Angriff kann ein Angreifer bestimmen, mit welchen Antworten DNS-Anfragen beantwortet werden. Der Eintrag Espoof ed könnte auf den Server S1 referenzieren. Damit ein Nutzer nichts vom Angriff bemerkt, würde S1 die Anfragen an den korrekten Server weiterleiten und die Inhalte an den Nutzer weiterreichen. Der Nutzer würde nichts von der Manipulation mitbekommen und der Angreifer ist imstande die Kommunikation mit zu lesen und zu manipulieren. 3.3 Der Eingriff in die Verbindung beim Internet Service Provider Laut dem deutschen Gesetz, dem Gesetz zur Beschränkung des Brief-, Post- und Fernmeldegeheimnisses [9], sind ISPs dazu veranlasst dem Bundesnachrichtendienst und vergleichbaren Institutionen Anschlüsse zum Sammeln von übertragenen Daten zur Verfügung zu stellen. Es existieren unterschiedliche physikalische Techniken [10, p. 39 ff.] die im Folgenden kurz beschrieben werden. Ein Cable Splitter wird an eine Glasfaserleitung angelegt und dupliziert das Signal. Das Signal kann mit einem entsprechenden technischen Equipment eingelesen und verarbeitet werden. Hierfür muss in die bestehende Verbindung nicht eingegriffen werden, um die Kommunikation abzuhören. Durch einen Mirror Port an einem Switch können alle Netzwerk-Pakete, die über dieses Gerät geschickt werden, aufgezeichnet werden. Das Grundprinzip des Switches ist nur die Pakete auf dem Port heraus zu schicken, an dem das Adressierte Endgerät angeschlossen ist. Switche mit einem Mirror Port senden, 9 unabhängig der korrekten Weiterleitung, eine Kopie des empfangenen Paketes, an diesen Port. Ein Deep Package Inspection (DPI) Device, ähnlich wie eine Bridge, wird direkt zwischen die Leitung geschlossen. Alle Daten die über die Leitung versandt werden, können eingesehen werden. Es ist ebenfalls möglich Daten zu Manipulieren oder durch Filter-Regeln komplette Datenströme zu verwerfen. Alle Daten die über diesen Leitungsabschnitt geleitet werden, können aufgezeichnet werden. Ein entsprechender Angreifer würde anschließend alle AnmeldeDaten aus dem Mitschnitt extrahieren können, um die Identität des Nutzers übernehmen zu können [10, p. 39 ff.]. Diese Annahme betrifft alle Datenströme die unverschlüsselt übertragen werden. Wie in der Snowden-Veröffentlichung in [1] bekannt geworden ist, sind nicht unbedingt die Daten selbst interessant. Die NSA ist ebenso an den Meta-Informationen, wer wann mit wem wie lange und in welcher Reihenfolge kommuniziert hat, interessiert. Beim aktiven Ansatz ist es dem Angreifer möglich, die Verbindung zu manipulieren. Der Einzugsbereich dieser Sammel-Station ist je nach Größe unterschiedlich. Eine Station die bei einem ISP, der direkt an das Internet Backbone angeschlossen ist, kommen Datenrate von 2,6 Tbit/s auf [16]. Diese Stationen sind nur für zuvor beschriebene Institutionen gedacht. Es ist theoretisch denkbar, dass eine unbefugte Person den Zugriff auf eine solche Leitung erlangt. Dieses hätte fatale Folgen. Das Gefährdungspotential für den Nutzer wird im Kapitel 4 diskutiert. 3.4 Angriff auf die Verschlüsselung Die Angriffe die Abschnitt 3.1 bis Abschnitt 3.3 beschrieben wurden, stellen eine Gefahr für die Privacy der Nutzer dar. Um den Nutzer zu schützen, werden in vielen Kommunikationen, die über das Internet geführt werden, Verschlüsselungen eingesetzt. Prinzipiell ist dieses sehr gut. Was trotz dieser Sicherheitsmaßnahme für Probleme auftreten können wird im Folgenden zusammengefasst. Wie im Abschnitt 2.5 beschrieben wurde, basiert ein Großteil des Vertrauensmodells im Internet auf der Zertifikats-Infrastruktur. Wenn es einem Angreifer gelingt an den privaten Schlüssel einer CA zu gelangen, hat dieser die Möglichkeit Zertifikate, im Namen dieser CA, auszustellen. Somit ist es möglich über eine Domäne zusätzlich, zu einem zuvor korrekt erzeugten Zertifikat, weitere Zertifikate auszustellen. Bei der Erzeugung eines gefälschten Zertifikates wird der öffentliche Schlüssel von einem Schlüsselpaar, welches im Besitz des Angreifers ist, signiert. Wenn ein Nutzer versucht eine verschlüsselte Verbindung zu einer Website aufzubauen, sendet der Angreifer dem Nutzer das gefälschte Zertifikat zu. Da das Zertifikat von einer gültigen CA ausgestellt ist, validiert der Webbrowser des Nutzers dieses korrekt und baut zum Angreifer eine sichere Verbindung auf. Der Angreifer baut zum ursprünglichen Ziel der Anfrage eine Verbindung auf und liefert dem Nutzer die gewünschten Daten [14]. Ein weiterer Angriff auf eine verschlüsselte Verbindung ist das brechen der verwendeten Chiffre. Dieses tritt auf, wenn Fehler bei der Auswahl des Schlüssels gemacht werden oder generell in die Hände von Angreifer kommen. Die Fehler sind abhängig von den verwendeten Algorithmen. 10 3.5 Manipulation der übertragenen Daten Nachdem unterschiedliche Techniken zum abhören der Verbindung erklärt wurden, wird auf die Manipulation der übertragenen Daten eingegangen. Hijacking von TCP/IP-Sessions Wie im Abschnitt 2.4 beschrieben wird, werden in TCP/IP-Verbindungen aufeinanderfolgende Pakete mittels der SequenzNummer beim Empfänger zusammengesetzt. Beim TCP/IP hijacking wird dieses dazu genutzt eine Verbindung zu manipulieren. Um diesen Angriff durchführen zu können muss der Angreifer in der Lage sein, eine bestehende Kommunikation aufzuzeichnen. Eine offene TCP-Verbindung kann daran erkannt werden, dass mindestens das Header-Flag für ACK gesetzt ist. Diesen Paketen kann die aktuelle Sequenz- und Acknowledgment-Nummer entnommen werden. Ebenso sind in den Paketen die IP-Adressen und Ports des Senders (A) und Empfängers (B) entnehmbar. Mittels dieser Informationen ist ein Angreifer in der Lage gespoofte Pakete zu verschicken. Ein gespooftes Paket bekommt dafür die Empfänger-Adresse (B) des Paketes als Absender und anders herum. Die richtige AcknowledgmentNummer errechnet sich aus der aktuellen Sequenz-Nummer des übertragenen Paketes und der Länge des mitgeschnittenen Paketes. Dadurch, dass der Angreifer die aktuelle Acknowledgment-Nummer errechnen kann, werden die Pakete die an A gesendet werden als authentisch angenommen. Der Versandt von gespooften Paketen, die das Header-Flag für RST gesetzt haben, führt dazu, dass bestehende, gültige Verbindung beendet werden [11, p. 461 ff.]. Im Falle einer Verbindung zu einem Web-Portal, an dem sich mittels eines Session-Cookies angemeldet wurde, müssen zum Wiederaufbau der Verbindung diese vertraulichen Informationen erneut versandt werden. Statt die Verbindung zu beenden kann diese aufrecht gehalten werden um aktiv Änderungen an den übertragenen Daten vorzunehmen. Dieser Angriff wird als Continued Hijacking bezeichnet [11, p. 462 ff.]. Wie zuvor beschrieben ist es möglich gespoofte Pakete zum Absender (A) zu schicken. Wenn der Empfänger (B) das nächste Paket zu dem Absender (A) schickt hat dieser bereits ein Paket mit der erwarteten AcknowledgmentNummer erhalten und wird das Paket von B verwerfen. Die Pakete die fortan von A und B versandt werden haben asynchrone Acknowledgment-Nummern, sodass die Pakete nur noch vom Angreifer richtig geordnet versandt werden können. Wenn es dem Angreifer gelingt sich zwischen die Verbindung zu schalten, sodass nur noch die Kommunikation über ihn stattfinden kann, steht es ihm frei welche Daten er an den jeweiligen Empfänger sendet. SSL-Strip-Attack Im Jahr 2009 wurde auf der Black Hat DC von Moxie Marlinspike eine neue Angriffstechnik auf SSL verschlüsselte HTTP-Verbindungen vorgestellt [13]. Es wird voraus gesetzt, dass die übertragenen Daten manipuliert werden können. Dieser Angriff beruht auf den Gewohnheiten der Nutzer. Webseiten werden äußerst selten explizit mit vorangestelltem https:// aufgerufen. Nur durch Weiterleitungen oder Hyperlinks werden Nutzer dazu gebracht über eine verschlüsselte Verbindung zu kommunizieren. Es gibt verschiedene 11 Webseite login.yahoo.com Gmail ticketmaster.com rapidshare.com Hotmail paypal.com linkedin.com facebook.com Anzahl 114 50 42 14 13 9 9 3 Tabelle 1. Die Anzahl der durch eine SSL-Strip-Attack in 24 Stunden gesammelten Login-Daten auf einer Tor-Exit-Node [13]. Webseiten die bevorzugt mittels einer verschlüsselten Kommunikation besucht werden sollten.4 Damit der Nutzer diese verschlüsselte Verbindung aufbaut wird ein Redirect5 von dem unverschlüsselten Dienst zu dem verschlüsselten Dienst durchgeführt. An diesem Punkt setzt die SSL-Strip-Attack ein. Da der Angreifer die Kommunikation durch ein von ihm kontrollierten Computer leitet, gehen alle Webseitenaufrufe über ihn. Somit ist der Angreifer in der Lage den Redirect zu verhindern. Anstatt der eigentlichen Verbindung, die Aufgebaut werden soll, verbindet sich er Angreifer mit der Ziel-Seite und lädt die Inhalte herunter. Alle Hyperlinks auf der Webseite werden analysiert. Wenn ein Link auf eine Webseite mittels https:// referenziert, wird dieser durch einen http:// -Link ersetzt. Dieses soll verhindern, dass verschlüsselte Verbindungen aufgebaut werden. Nach der Aufbereitung werden die angepassten Daten an das Opfer weitergesendet. Das Opfer bekommt von der Manipulation nichts mit. Moxie Marlinspike testete diesen Angriff über 24 Stunden indem er auf seinem Computer eine Tor-Exit-Node und ein entsprechendes Programm bei ausführte. Tabelle 1 Listet die LoginDaten die er in diesem Zeitraum sammeln konnte. Durch diesen Angriff konnte der Autor zeigen, wie er durch den Einsatz seines Werkzeuges auf relativ einfache Weise die Kommunikation abhören und die Anmelde-Daten extrahieren konnte. 4 Vergleich Nachdem unterschiedliche Angriffe auf die Kommunikation vorgestellt wurden, sollen diese einander gegenüber gestellt werden. Für die Gegenüberstellung ist eine eigene Metrik definiert die Anhand von Aufwand, Gefährdungspotential und den Anforderungen an den Angreifer die Angriffe miteinander vergleicht. Es werden bei der Gegenüberstellung nur die Angriffe verglichen die, bei erfolgreichen 4 5 Es sollten zum Beispiel alle Webseiten die mit der Übertragung von Zahlungsdaten nur über eine HTTPS-Verbindung kontaktiert werden. In dem HTTP-Protokoll ist der Code 302 für einen Redirect definiert, der dafür sorgt, dass der Webseiten-Besucher/Browser umgeleitet wird zu einer anderen Seite. 12 Angriff Aufwand Gefährdungspotential hoch mittelmäßig hoch Lokales Netzwerk gering DNS Cache Poisoning mittelmäßig Eingriff beim Internet hoch Service Provider Anforderungen gering mittelmäßig hoch Tabelle 2. Gegenüberstellung von unterschiedlichen Angriffen auf die Kommunikation. Durchführung, den Datenverkehr umleiten. Die Manipulation, der übertragenen Daten, wird in der Gegenüberstellung nicht aufgenommen, da sie die Umleitung der Verbindung voraussetzen. In Tabelle 2 sind drei verschiedene Angriffe aufgelistet. Die Spalte „Aufwand“ soll den Aufwand beschreiben, den der Angreifer aufwenden muss, um den Angriff durchzuführen. Die Spalte „Gefährdungspotential“ beschreibt den Umfang des Angriffes, welche Folgen für die Betroffenen daraus resultieren. In der Spalte „Anforderungen“ sind die Anforderungen an den Angreifer gewichtet. Diese Spalte beschreibt welches technische Wissen der Angreifer besitzen muss, um diesen Angriff durchführen zu können. Im Folgenden werden die Werte aus der Tabelle aufgegriffen und erläutert wie diese sich ergeben. Lokales Netzwerk Diese Zeile bezieht sich auf den Angriff aus dem Abschnitt 3.1. Für die Aufwandsabschätzung wurde angenommen, dass der Angreifer bereits Zugriff auf das lokale Netzwerk besitzt. Unter dieser Annahme ist der Aufwand zum Durchführen eines Angriffes gering, da der Angreifer bereits Zugriff hat und keine weiteren Schutzmechanismen, zum Durchführen des Angriffes, überwinden muss. Dadurch, dass der Angreifer die komplette Kommunikation aufzeichnen und manipulieren kann, ergibt sich für die Betroffenen einen hohe Gefährdungspotential. Es existiert kein direkter Schutz für die Opfer, sodass diese nicht auf den Angriff aufmerksam werden. Die Anforderungen an den Angreifer, diesen Angriff durchzuführen, sind gering. Es existieren viele Programme im Internet die es einem Angreifer, ohne technisches Hintergrundwissen, per Mausklick, durchführen zu lassen [20]. DNS Cache Poisoning Diese Zeile bezieht sich auf den Angriff aus dem Abschnitt 3.2. Der Aufwand zum Durchführen dieses Angriffes ist mittelmäßig, da zum Durchführen vorausgesetzt wurde, dass der Angreifer vollen Zugriff auf einen Server besitzt. An diesen Server wird ebenfalls die Anforderung gestellt, dass bestimmte Software installiert und konfiguriert ist, wodurch sich dieser Wert ergibt. Das Gefährdungspotential wurde nur auf mittelmäßig eingestuft, da ein Angreifer die Kommunikation nur begrenzt umleiten kann. Der Angreifer ist in der Lage gefälschte DNS-Einträge an Nutzer zu liefern, jedoch kann dieser nicht für alle Domänen im Internet gefälschte Einträge erzeugen. Außerdem sind nur die Nutzer betroffen, die den attackierten DNS-Server zur Namensauflösung kontaktieren. Die Durchführung des Angriffes wird als mittelmäßig eingestuft. Dieser Wert ergibt sich daraus, dass der Angreifer zum einen die technischen Hintergründe des Angriffes 13 verstanden haben muss und zum anderen in der Lage sein muss diese praktisch umzusetzen. Außer der Anforderungen, an die technische Umsetzung des Angriffes, muss der Angreifer gegebenenfalls Sicherheitsmechanismen, die beim DNS-Server implementiert worden, umgehen. Eingriff beim Internet Service Provider Diese Zeile bezieht sich auf den Angriff aus dem Abschnitt 3.3. Für die Aufwandsabschätzung wurde angenommen, dass ein Angreifer nicht dem Bundesnachrichtendienst oder vergleichbaren Institutionen angehört. Bevor ein Angreifer auf zentrale Knotenpunkte Zugriff bekommt, muss dieser zunächst physikalischen Zugriff erlangen. Aufgrund der Tatsache, dass die Knotenpunkte einer der wichtigsten Punkte des Internets sind, dürfte ein Angreifer nur sehr schwer Zugriff erlangen. Wenn an dieser Stelle sich zwischen die Kommunikation geschaltet wird, sind die Risiken dennoch sehr hoch. Ähnlich wie beim Angriff auf das lokale Netzwerk hätte ein Angreifer alle Möglichkeiten zum Aufzeichnen und Manipulieren. Die Anforderungen an den Angreifer sind ebenfalls sehr hoch. Zusätzlich zu Spezialequipment, welches der Angreifer zwischen de Leitung schalten müsst, muss dieser in der Lage sein Datenraten von 2,6 Tbit/s zu verarbeiten. Für eine Privatperson ist dieser Angriff nicht realisierbar. 5 Zusammenfassung & Ausblick In dieser Arbeit wurde ausführlich das Thema „Man-in-the-Middle Angriffe auf Internetkommunikation“ zusammen gefasst. Anhand der Grundlagen wurden die Techniken beschrieben wie passiv abgehört werden kann und die übertragenen Daten verändert werden können. Die Gegenüberstellung im Kapitel 4 verdeutlicht, wie groß der Einfluss der vorgestellten Techniken in Relation zu den Anforderungen, um die Angriffe durchzuführen, ist. Um trotz der zuvor genannten Risiken das Schutzziel Vertraulichkeit zu erreichen wird empfohlen, dass die Kommunikation durch sichere Verschlüsselungsalgorithmen geschützt wird. Bei den verwendeten Algorithmen sollten die Sicherheitskriterien des BSI Grundschutzkataloges [21] eingehalten werden. Zum Erreichen des Schutzziels Authentizität wird empfohlen für die Sicherstellung seines Gegenübers eine Zwei-WegeAuthentifizierung zu vollziehen. Das Schutzziel Integrität kann durch den Einsatz von digitalen Signaturen erreicht werden. Diese Mechanismen bieten eine Möglichkeit Nutzer vor Angriffen zu schützen. Für die Zukunft lässt sich prognostizieren, dass neue Angriffe auf die Verbindungen entwickelt werden. Durch die Etablierung von IPv6 und die Einführung neuer Protokolle ist zu erwarten, dass neue Angriffe entwickelt werden. Literatur 1. Heise Online, „NSA-Überwachungsskandal: Von NSA, GCHQ, BND, PRISM, Tempora, XKeyScore und dem Supergrundrecht - was bisher geschah“, 14 2. 3. 4. 5. 6. 7. http://www.heise.de/newsticker/ meldung/NSA-Ueberwachungsskandal-VonNSA-GCHQ-BND-PRISM-Tempora-XKeyScore-und-dem-Supergrundrechtwas-bisher-geschah-1958399.html, 19.09.2013, Letzter Zugriff: 15.12.2013 Andrew S. Tanenbaum, Prof. David J. Wetherall, „Computernetzwerke (Pearson Studium - IT)“, 4. überarbeitet Auflage, Erscheinungs-Datum: 7/2003 P. Mockapetris, „RFC 1035“, https://www.ietf.org/rfc/rfc1035.txt, Erscheinungs-Datum: November 1987 Letzter Zugriff: 15.12.2013 P. Mockapetris, „RFC 1034“, https://www.ietf.org/rfc/rfc1034.txt, Erscheinungs-Datum: November 1987 Letzter Zugriff: 15.12.2013 J. Postel, „RFC 768“, https://www.ietf.org/rfc/rfc768.txt, Erscheinungs-Datum: 28 August 1980 Letzter Zugriff: 15.12.2013 T. Dierks, „RFC 5246“, https://www.ietf.org/rfc/rfc5246.txt, Erscheinungs-Datum: August 2008 Letzter Zugriff: 15.12.2013 Stefan Dierichs, Prof. Dr. Norbert Pohlmann, „Internet Deutschland - Struktur und Aufbau“, Institut für Internet-Sicherheit, Fachhochschule Gelsenkirchen, Erscheinungs-Datum: Oktober 2005 8. Johannes A. Buchmann, Evangelos Karatsiolis, Alexander Wiesmaier, „Introduction to Public Key Infrastructures“, April 17, 2013 Springer 9. „Gesetz zur Beschränkung des Brief-, Post- und Fernmeldegeheimnisses (Artikel 10-Gesetz - G 10)“, http://www.buzer.de/s1.htm?g=G%2B10&a=10, Geltung ab 29.06.2001, Letzter Zugriff: 15.12.2013 10. Callado et al., „A Survey on Internet Traffic Identification", IEEE Communications Surveys & Tutorials, vol. 11, no. 3, Drittes Quartal 2009 11. Jon Erickson, „Hacking: The Art of Exploitation, 2nd Edition“, Oktober 2007 12. James F. Kurso, Keith W. Ross, „Computernetze: Ein Top-Down-Ansatz mit Schwerpunkt Internet“, Pearson Studium, 2002 15 13. Moxie Marlinspike, „New Techniques for Defeating SSL/TLS“, https://www.blackhat.com/html/bh-dc-09/bh-dc-09speakers.html#Marlinspike, Letzter Zugriff: 09.02.2014 14. heise Security, „Der Diginotar-SSL-Gau und seine Folgen“, http://www.heise.de/security/mel dung/Der-Diginotar-SSL-Gau-und-seineFolgen-1423893.html, 27.01.2012 Letzter Zugriff: 04.01.2014 15. Max Moseret al., „HTC’s E-Mail Client Fails to verify Server Certificates“, http://www.modzero.ch/modlog/archives/2013/05/28/htcs_e-mail_client _fails_to_verify_server_certificates/index.html?utm_source=buffer&utm _medium=twitter&utm_campaign=Buffer&utm_content=buffer01b49, Published: 2013-05-28, Letzter Zugriff: 04.01.2014 16. DE-CIX, „New DE-CIX all-time peak detected: 2.6 tbps“, http://www.de-cix.net/news-events/latest-news/news/article/new-de-cix-alltime-peak-detected-26-tbps/, Letzter Zugriff: 08.01.2014 17. „Wikipedia - Tier 1 network, Definition“, http://en.wikipedia.org/wiki/Tier_1 _network#Definition, Letzter Zugriff: 31.01.2014 18. Stern online, „Jeder vierte Haushalt ist noch offline“, 19. Dezember 2011, http://www.stern.de/digital/online/internetanschluesse-in-deutschland-jedervierte-haushalt-ist-noch-offline-1764498.html, Letzter Zugriff: 02.02.2014 19. Aircrack-ng, „Determine the chipset“, http://www.aircrack-ng.org/doku.php?id=compatibility_drivers &s[]=devices#determine_the_chipset, Letzter Zugriff: 02.02.2014 20. Kali Linux, „The most advanced penetration testing distribution“, http://www.kali.org/, Letzter Zugriff: 09.02.2014 21. Bundesamt für Sicherheit in der Informationstechnik, IT-Grundschutz-Kataloge“, https://www.bsi.bund.de/DE/Themen/ITGrundschutz/ITGrundschutz Kataloge/itgrundschutzkataloge_node.html, Letzter Zugriff: 21.02.2014 16