Wie lief die versuchte Übernahme von 900.000 Routern ab, über die halb Deutschland gerade diskutiert? Was ist in technischer Hinsicht geschehen? Die Analyse der betroffenen Geräte liefert einige Antworten auf diese Fragen.

Am Montag und Dienstag versetzte ein Ausfall mehrerer hunderttausend Telekom-Router die deutsche Cyberlandschaft in Aufruhr. Dass der Ausfall mit einem Angriff in Verbindung steht, wurde recht früh von Telekom und Innenministerium bestätigt.

Das Einfallstor, so stellte sich bald heraus, war eine offen dem Internet ausgesetzte Fernwartungsschnittstelle. Ein kurzes Lauschen auf Port 7547 einer öffentlichen IP bestätigte (spätestens) nach wenigen Minuten eine Angriffswelle mit versuchter command injection:

Der abgebildete Request will eine Lücke im TR-069-Befehl für das Setzen eines NTP-Servers ausnutzen, um eine Datei von einer fremdem Domain per wget herunterzuladen und auszuführen.

Für viele (auch mich) schien der Fall klar: Die Telekom-Router schienen eine Remote Code Execution im TR-069 zu haben – viel schlimmer hätte es kaum kommen können.

Es blieb jedoch eine wichtige Frage offen: Warum stürzten die Router ab, statt sich mit der Payload zu infizieren? Die Vermutung lag nahe, dass die Angreifer einen Bug im Payload oder Exploit-Code hätten. So könnten der Crash und die ausbleibende Infektion der Geräte erklärt werden. Den Angreifern schien irgendwo ein kleiner, aber entscheidender Fehler unterlaufen zu sein, der ihnen die Übernahme von 900.000 Geräten zu verhageln schien. Oder etwa nicht?

Zumindest nicht ganz. Während viele (auch ich) sich auf das Exploit-Binary stürzten, um den Fehler zu finden, besorgte sich Ralf-Philipp Weinmann erstmal in Ruhe eines der betroffenen Geräte. Dazu hat er eine erstklassige Analyse auf Englisch verfasst, die ich hier kurz in vereinfachten deutschen Worten zusammenfassen möchte:

Seine erste Erkenntnis: Auf den Telekom-Geräten lief gar kein Linux, das Voraussetzung für das Funktionieren des Befehls im TR-069-Exploit wäre. Mit anderen Worten: Sie waren gegen den beabsichtigten Angriff immun und somit wohl kaum Ziel des Angriffs.

Die nächste Hypothese wäre gewesen, dass sie zwar die Schwachstelle im TR-069 hätten, aber aufgrund des nicht interpretierbaren Befehls abschmieren würden. Wie Ralf feststellte, führte aber ein einmaliges Senden des Exploits zu gar keiner Reaktion der Geräte. Mit anderen Worten: Sie schienen nicht nur gegen den Exploit, sondern auch gegen den TR-069-Request selbst immun zu sein. Erst durch mehrmaliges Zusenden des Requests ließen sich die Geräte langsam aus dem Tritt bringen, bis sie irgendwann gar nicht mehr reagierten.

Was war also geschehen?

Im großen weiten Internet wütet gerade eine Welle von versuchten TR-069-Angriffen. Viele vermeintlich infizierte Geräte scannen fortlaufend das Internet und sorgen dafür, dass jede öffentliche IP-Adresse annähernd im Minutentakt einem Angriffsversuch auf Port 7547 ausgesetzt ist. Die Telekom-Geräte haben den Port offen, waren jedoch gegen diesen speziellen Code-Injection-Angriffsversuch immun. Sie hatten weder die Schwachstelle noch das Betriebssystem, auf das sich dieser Exploit richtet.

Offenbar hatten sie jedoch eine DoS-Vulnerability im Interpretieren von TR-069-Befehlen. Dadurch wurden sie – von den Angreifern unbeabsichtigt – durch die Häufigkeit der Zugriffe zum Absturz gebracht. Ärgerlich für die Angreifer, ärgerlich für die Telekom, ärgerlich für die Kunden – ein bedauerliches Missverständnis, dessen Ergebnis der Ausfall von fast einer Million Internet-Anschlüsse ist, der nicht verharmlost werden sollte: Er konnte sogar ohne Absicht des Angreifers ausgelöst werden.

Was hat die Telekom falsch gemacht?

Der TR-069-Port hätte über das Internet nicht von arbiträren IP-Adressen erreichbar sein dürfen – dafür gibt es ACLs, Firewalls und getrennte Management-Netze. Darauf wurde die Telekom schon 2014 von ihren eigenen Kunden aufmerksam gemacht. Die Verarbeitung der TR-069-Befehle hat darüber hinaus einen Fehler, der vermutlich im Verantwortungsbereich des Zulieferers der Geräte liegt. Entsprechend blockiert die Telekom gerade Zugriffe von außen auf diesen Port und versorgt die Geräte mit Firmware-Updates.

Vielen Dank an dieser Stelle an Ralf-Philipp, der der Angelegenheit in Ruhe auf den Grund gegangen ist, während viele (andere, inklusive mir) zunächst auf der falschen Fährte waren, dass die Telekom-Router tatsächlich Ziel und nicht etwa Kollateralschaden der Angriffswelle waren.

Der Beitrag erschien zuerst auf dem Blog von Linus Neumann. Er war außerdem bei den tagesthemen zu Gast, um über den Angriff auf die Telekom zu berichten.