Open Source im professionellen Einsatz

BitTorrent: Distributed-Reflective-Denial-of-Service-Attacken möglich

Eine kürzlich entdeckte Schwachstelle in BitTorrent hat zur Folge, dass ein entfernter Angreifer Distributed-Reflective-Denial-of-Service-Attacken durchführen kann. Anders als bei einfachen Denial-of-Service- oder Distributed-Denial-of-Service-Attacken werden bei dieser Art Angriff mehrere Rechner, so genannte Reflektoren, verwendet, um die Attacke zu verstärken. Der Angreifer muss dabei keine Kontrolle über die Reflektoren besitzen, sondern lediglich den Netzwerkverkehr über diese Reflektoren geschickt verstärken.

Die Ursache dieser neuen Sicherheitslücke liegt in der Benutzung der »libuTP«-Bibliothek beim Aufbau von Verbindungen. BitTorrent verwendet diese Bibliothek, um das Micro Transport Protokoll zu implementieren. Seit 2008 verwenden zahlreiche BitTorrent-Produkte (beispielsweise uTorrent, BitTorrent und BitTorrent Sync) dieses auf UDP basierende Protokoll statt TCP. Die Attacke basiert nun daruf, dass ein Angreifer gefälschte UDP-Pakete an den Reflektor schickt. Diese enthalten als Quelle die IP-Adresse des anzugreifenden Servers. Die Pakete gaukeln dem Reflektor vor, er hätte eine Verbindungsanfrage des Servers erhalten, der angegriffen werden soll. Hierauf schickt der Reflektor zunächst eine Betstätigung (ACK) an den Zielserver, um einen Handshake der Verbindung mit dem Server durchzuführen. Laut Protkoll ist dann vorgesehen, dass erst dann weiter Daten an den Server gesendet werden, wenn dieser das ACK bestätigt, indem der Server die zuvor gesendete ACK-Nummer an den Reflektor zurücksendet. Dies geschieht natürlich nicht, da die Verbindung vom Angreifer gefälscht wurde. Normalerweise wäre also an dieser Stelle Schluss und die Attacke wäre nicht möglich, denn zufällige ACK-Nummern lassen sich kaum effizient erraten.

Durch einen Implemtationsfehler nimmt der Reflektor nun aber jede beliebige ACK-Nummer an, was der Angreifer dem Reflektor leicht vorgaukeln kann. Damit kann der Angreifer dann den Reflektor dazu bringen nicht angefragte Daten an den Zielserver zu schicken. Das gesamte Sicherheitskonzept des »libuTP«-Handshakes bricht also zusammen, weil die ACK-Nummer nicht kontrolliert wird. Macht der Angreifer dies mit mehreren Reflektoren, so kann er extrem viel Netzwerklast auf dem Server generieren, so dass keine weiteren Anfragen mehr bearbeitet werden können. Natürlich ist die Attacke auch teilweise möglich, wenn nur ACKs an den Server geschickt werden. Viele hiervon führen nämlich auch zu einer gewissen Last auf dem Server. Allerdings reduziert sich ohne eigentlichen Datentransfer der Bandwidth Amplification Factor der Attacke sehr stark, so dass sie deutlich weniger effektiv ist. Patches stellen nun sicher, dass die ACK-Nummer korrekt überprüft wird und damit die Attacke in diesem Umfang nicht mehr möglich ist.

comments powered by Disqus

Ausgabe 11/2017

Digitale Ausgabe: Preis € 6,40
(inkl. 19% MwSt.)

Stellenmarkt

Artikelserien und interessante Workshops aus dem Magazin können Sie hier als Bundle erwerben.