[Frage] Ist TR-069 (konkret im FRITZ!OS) nun eigentlich eher harmlos oder nicht?

PeterPawn

IPPF-Urgestein
Mitglied seit
10 Mai 2006
Beiträge
15,279
Punkte für Reaktionen
1,754
Punkte
113
Um es gleich am Anfang festzuhalten:

  1. Das wird ein längerer Beitrag - meinetwegen mehr ein Aufsatz - und wer kein Interesse an dem Thema hat, sollte spätestens hier mit dem Lesen aufhören.
  2. Das ist kein "HowTo", daher gibt es zwar CODE-Tags, darin steht aber nicht, was man machen muß, um eine Box über TR-069 anzugreifen.
  3. Am Ende könnte es tatsächlich sein, daß ich mehr Fragen gestellt/aufgeworfen als beantwortet habe ... man muß also auch mit einem Cliffhanger (tatsächlich im Duden) leben können.
  4. Ich werde mich in der Folge ab und an mal auf einen Artikel bei AVM beziehen. Nun verbietet das Leistungsschutzrecht es ja, diesen in vollem Umfang zu zitieren, andererseits kam es ja auch schon vor, daß der Inhalt der AVM-Webseite plötzlich und überraschend ohne sichtbare Information über eine nachträgliche Änderung wechselte (niemand verpflichtet AVM zur Kennzeichnung solcher Änderungen, damit ich nicht mißverstanden werde) und auch das "Gedächtnis" des Internets ist ja nicht immer verläßlich, wenn Spider unerwünscht sind. Da ich aber mich nicht nachträglich dem Vorwurf eines falschen Zitats aussetzen will und auch das IPPF nicht mit einem kompletten Zitat der AVM-Seite in irgendwelche Schwierigkeiten bringen will, braucht es also eine Möglichkeit, den derzeitigen (relevanten) Inhalt irgendwie zu dokumentieren, ohne ihn in vollem Umfang zu zitieren. Dafür verwende ich das folgende Kommando:
    Code:
     wget -O - http://avm.de/aktuelles/kurz-notiert/2014/tr-069-ein-protokoll-mit-vielen-vorteilen/ | sed -e ':x;N;s/\n/ /;tx' | sed -e 's/\r//g' | sed -e 's/.*TYPO3SEARCH_begin-->\(.*\)<!--TYPO3SEARCH_end.*/\1/' | sed -e 's/<[^>]*>//g' | sha256sum
    Damit wird der entscheidende Textinhalt der Seite - von "Unmittelbarer Support seitens des Providers" bis "unabhängig von TR-069.&nbsp; &nbsp;" - aus der Seite extrahiert und über das Ergebnis ein Hash-Wert ermittelt, der sich ändert, wenn sich der Inhalt der Seite verändert. Am 28.04.2014 um 11:14 Uhr ergab dieses Kommando den Hash-Wert "ae22896d98da17092a5dc07e88d1abecbd9619345ca96ab88538c4aa6f8e3ffd" und meine Zitate stammen aus der Seite, die diesen Hash-Wert produzierte (privat darf ich die logischerweise weiterhin speichern, was ich auch getan habe). Wenn das also jemand überprüfen möchte, ist er herzlich dazu eingeladen. Sofern AVM diese Seite nicht ändert, darf sich auch das Ergebnis nicht ändern. Wenn ich zitiere und es irgendwelche Hervorhebungen dabei gibt, wurden diese immer durch mich angebracht, dann muß ich das auch nicht jedesmal im Einzelnen klarstellen.
  5. Der Artikel basiert auf meinem derzeitigen Wissensstand und wo ich entsprechende Internet-Quellen gefunden habe, führe ich diese an, um dem Leser die Möglichkeit einer eigenen Überprüfung zu bieten. Um nicht ständig mit Relativierungen wie "meines Wissens" o.ä. umgehen zu müssen, stelle ich hier nur einmalig fest, daß ich mich selbstverständlich auch - an nicht mit Quellen belegten Stellen - im Irrtum befinden kann. Wenn es also jemand besser/anders weiß (und bessere Belegstellen dafür vorweisen kann), steht ihm jederzeit die Korrektur meiner Aussagen frei. Zum Erkenntnisgewinn gehört immer auch der Irrtum und nur wer nichts tut, kann auch nichts falsch machen/schreiben.
  6. Am Anfang geht es mehr um Meinungen und die Analyse einer Veröffentlichung von AVM, das "Zerpflücken" der Firmware auf der Suche nach Erklärungen findet erst zum Ende hin statt.

Was ist eigentlich TR-069?

TR-069 ist erst einmal nicht anderes als ein Standard, um Geräte aus der Ferne zu konfigurieren. Die aktuelle Fassung des Standards ist hier zu finden, die grundlegenden Funktionen sind aber schon mehrere Jahre weitgehend unverändert festgeschrieben. Auf der "Providerseite" erfolgt die Kommunikation über den "Automatic Configuration Server" (ACS) und die Technik auf der Kundenseite wird als "Customer Premises Equipment" (CPE, in Deutsche übersetzt ungefähr als "Technik auf dem Grundstück bzw. in den Räumen des Kunden") bezeichnet. Diese Abkürzungen werde ich in der Folge nutzen, sie ersparen langwierige Umschreibungen. Es gibt zwar auch andere - ähnlich gelagerte - "Technical Reports", in denen dann auch die Konfiguration weiterer Geräte hinter dem CPE definiert wird, aber der eigentliche TR-069-Standard beschäftigt sich nur mit dem "CPE WAN Management Protocol" (CWMP) und damit mit der Kommunikation eines "Internet Gateway Device" (IGD) mit dem ACS (s. Abbildung 1 in der TR-069-Spezifikation). Wenn sich jemand schon einmal mit TR-069 (oder auch TR-064) befaßt hat, wird er hier einige Abkürzungen wiedererkennen, die ihm z.B. als "CWMP-Account" einer FRITZ!Box oder als "Typ" für eine im Netzwerk gefundene FRITZ!Box (IGD) wahrscheinlich schon einmal begegnet sind.

Im Wesentlichen definiert der Standard folgende Operationen:

  1. Verbindungsaufnahme eines CPE mit dem ACS
  2. eine Möglichkeit für den ACS, sich für die Benachrichtigung durch das CPE anzumelden, wenn sich auf der CPE-Seite irgendwelche Änderungen ergeben; dann informiert das CPE von sich aus den ACS über solche Änderungen
  3. eine Möglichkeit für den ACS, das CPE zu einer asynchronen Kontaktaufnahme zu bewegen; dabei baut das CPE nach dem "Anklopfen" des ACS dann die geforderte Verbindung zum ACS auf (nur dafür wird der eingehende Port beim TR-069 benötigt)
  4. eine Möglichkeit für den ACS, den Wert einer Einstellung abzufragen (GetParameterValues)
  5. eine Möglichkeit für den ACS, den Wert einer Einstellung zu setzen (SetParameterValues)
  6. eine Möglichkeit für den ACS, Dateien vom (Upload, das ist nach der Spezifikation aber optional) und zum (Download, das ist "mandatory") CPE zu übertragen (Abschnitt "2.3.2 File Transfers")
  7. eine Möglichkeit für den ACS, das CPE neu zu starten (Reboot), wahlweise mit Löschen aller Einstellungen (FactoryReset)
  8. diverse Hilfsfunktionen, um den tatsächlichen Umfang der Möglichkeiten zu ermitteln, da die konkrete Umsetzung eben nicht bis ins letzte Detail vorgeschrieben wird, es ist mehr ein "Framework" (also ein Rahmen(werk), der/das eine einheitliche Kommunikation ermöglichen soll)

Welche Einstellungen damit konkret gesetzt und/oder abgefragt werden können und welche Daten/Dateien woher und wohin übertragen werden können, läßt der Standard genauso offen (oder definiert es als "optional"), wie die Sicherung einer Verbindung zwischen ACS und CPE über TLS, was in der Folge ja unmittelbar auch Auswirkungen auf die sichere Feststellung der Identität der jeweiligen Gegenstelle hat. Der Standard definiert zwar im Abschnitt "2.2 Security Mechanisms" eine mögliche Absicherung der Kommunikation mit TLS ("[...] is designed to allow a high degree of security [...]), er fordert sie aber nicht (z.B. "[...] is designed to ensure a high [...]") und bietet im zweiten Spiegelstrich (HTTP-Layer) zwar eine Authentifizierung über "shared secrets" an, erzwingt diese aber auch nicht.

Damit zielt die Aussage von AVM (diese ist für mich "weiblich", einmal als "Firma" und einmal als "Gesellschaft mbH") in ihrem Artikel
AVM-Artikel oben verlinkt schrieb:
Bei TR-069 greifen strenge Sicherheitsmechanismen, um eine geschützte Kommunikation zwischen FRITZ!Box und ACS zu garantieren.
ganz offensichtlich nicht auf die TR-069-Spezifikation und kann eigentlich nur noch die konkrete Umsetzung durch AVM adressieren, wenn AVM dort tatsächlich ihrerseits die notwendigen Vorkehrungen für diese "Garantie" trifft. Auch der folgende Satz
AVM-Artikel oben verlinkt schrieb:
Bereits im TR-069-Standard ist die Verschlüsselung der Kommunikation mit https vorgesehen.
ist ganz offensichtlich nicht falsch, denn der Standard sieht es ja tatsächlich vor. Der dann noch anschließende Satz
AVM-Artikel oben verlinkt schrieb:
Der Echtheit des Servers wird, ähnlich beim Online-Banking, mittels eines digitalen Zertifikats überprüft.
ist inhaltlich ebenfalls nicht zu beanstanden, wenn man mal den grammatikalischen Aspekt ignoriert und von "die Echtheit" ausgeht. Wenn sich bei irgendeinem Leser in der Kombination dieser drei Sätze jetzt der Eindruck einstellen sollte, eine FRITZ!Box würde nun immer mit dem eingestellten ACS auch mit TLS-Verschlüsselung kommunizieren, dann ist das sicherlich nicht nur zufällig und - das ist allerdings pure Unterstellung meinerseits - sicherlich auch beabsichtigt. Auf den letzten Satz in diesem Absatz
AVM-Artikel oben verlinkt schrieb:
Eine Besonderheit in FRITZ!Box ist zudem, dass gespeicherte Zugangsdaten nicht über TR-069 ausgelesen werden können.
komme ich später noch einmal zurück, er soll hier nur nicht unerwähnt bleiben, denn der gesamte Absatz ist mit
AVM-Artikel oben verlinkt schrieb:
Strenge Sicherheitsmechanismen
überschrieben und soll sicherlich dem AVM-Kunden (oder auch dem Benutzer einer vom Provider bereitgestellten FRITZ!Box) ein Gefühl der Sicherheit und der Unbedenklichkeit der Nutzung von TR-069 vermitteln.

Hält denn AVM nun die oben gegebene Garantie auch tatsächlich ein?

Dazu genügt schon ein Blick in die Firmware, was bei einer "normalen" FRITZ!Box über den Telnet-Zugang ja jedem Kunden auch möglich ist. Es gibt dort eine Datei, die beim Einstellen eines Anbieters im HTTP-basierten Konfigurationsinterface einer FRITZ!Box (ab jetzt "Graphical User Interface" - GUI) zu Rate gezogen wird und für die angebotenen Provider u.a. auch die Angaben zur Verwendung von TR-069 und die dazu notwendigen Einstellungen (in erster Linie die URL des ACS) enthält. Ein Blick in diese Datei (bei einer FRITZ!Box 7490 mit Firmware-Version 06.23, diese Datei ist aber nahezu identisch bei fast jeder derzeit verfügbaren Firmware) offenbart dann dieses:
Code:
root@FB7490:~ $ tar xOf /etc/default.$CONFIG_PRODUKT/$OEM/providers-$Country.tar | grep "http:"
                        url = "http://80.228.251.206/live/CPEManager/CPEs/Auth_Basic/avm";
                url = "http://acs.be-converged.com:9675";
                        url = "http://trixi.netcologne.de/initial";
                        url = "http://80.228.251.206/init/avm";
                        url = "http://trixi.netcologne.de/initial";
                        url = "http://cm.kielnet.net:7547/live/CPEManager/CPEs/avm";
                        url = "http://acs.be-converged.com:9675";
                        url = "http://trixi.netcologne.de/initial";
                        url = "http://80.228.251.206/live/CPEManager/CPEs/Auth_Basic/avm";
                        url = "http://cm.kielnet.net:7547/live/CPEManager/CPEs/avm";
                        url = "http://80.228.251.206/init/avm";
                        url = "http://80.228.251.206/init/avm";
                        url = "http://acs.be-converged.com:9675";
                        url = "http://trixi.netcologne.de/initial";
                        url = "http://cm.kielnet.net:7547/live/CPEManager/CPEs/avm";
Noch schnell eine Gegenprobe, ob das nicht immer so ist bei der Angabe einer URL:
Code:
root@FB7490:~ $ tar xOf /etc/default.$CONFIG_PRODUKT/$OEM/providers-$Country.tar | grep "https:"
                        url = "https://acs.htp-apv.de:7547";
                        url = "https://acsaka.arcor-ip.de:22163/cwmpWeb/CPEMgt";
                        url = "https://acs.o2online.de/nbbs/tr69";
                        url = "https://acs.htp-apv.de:7547";
                        url = "https://acsaka.arcor-ip.de:22163/cwmpWeb/CPEMgt";
                        url = "https://acs.htp-apv.de:7547";
                        url = "https://acsaka.arcor-ip.de:22163/cwmpWeb/CPEMgt";
                        url = "https://acs.o2online.de/nbbs/tr69";
                        url = "https://acs.o2online.de/nbbs/tr69";
                        url = "https://acs1.online.de/";
                        url = "https://acs.o2online.de/nbbs/tr69";
                        url = "https://acs.htp-apv.de:7547";
                        url = "https://acsaka.arcor-ip.de:22163/cwmpWeb/CPEMgt";
      url = "https://acs.mnet-online.de";
                        url = "https://acs1.online.de/";
                url = "https://acs1.online.de/";
                        url = "https://autoconf.wobline.de:7547/live/CPEManager/CPEs/genericTR69";
                        url = "https://acs.htp-apv.de:7547";
Nein, offenbar wird da tatsächlich (auch von mir so getestet, das ist hier nur Show, um es zu verdeutlichen) zwischen verschlüsselten und unverschlüsselten CWMP-Verbindungen unterschieden und eine "Garantie" kann AVM schon deshalb nicht geben, weil man (sei es der Provider oder der Kunde) offensichtlich auch - entgegen der oben zitierten Behauptung - eine ungeschützte Kommunikation benutzen könnte und es offenbar in einigen Fällen auch tut und zwar mit dem Wissen von AVM, denn die ungesicherten URLs sind in einer originalen AVM-Firmware enthalten. Der Fakt, daß bei einer ungesicherten Verbindung dann auch keine Echtheit des Servers mehr geprüft werden kann, verleiht dem dritten Satz zwar wieder eine "besondere Note", aber ich nehme einfach mal zugunsten des Autoren/der Autorin/der Autoren/der Autorinnen/der Autoren und Autorinnen/der Autorinnen und Autoren (habe ich eine Kombination unterschlagen?) an, daß sich dieser Satz 3 auf den Inhalt von Satz 2 beziehen soll und man damit keinesfalls noch einmal den Eindruck erwecken wollte, die TR-069-Kommunikation der FRITZ!Box wäre grundsätzlich so sicher wie Online-Banking.

Ob man das im Satz 1 nun als "Lüge" bezeichnen will oder als "gezielte Desinformation" oder als "unklare Ausdrucksweise", davon muß sich jeder selbst ein Bild machen. Ich verbuche das aber mal unter "Lüge 1", denn auch eine "versehentliche falsche Angabe" bleibt falsch und die sehr subtilen Formulierungen in den anderen Sätzen dieses Absatzes legen (wenn man mal den schweren Grammatikfehler nicht betrachtet) eigentlich eine entsprechend sorgfältige Planung dessen, was da gesagt/geschrieben werden sollte, nahe. Diese - jedenfalls für mein Empfinden - sorgfältigen Formulierungen, die immer haarscharf am technischen Sachverhalt vorbei gehen und doch nie als "komplett gelogen" entlarvt werden können, finden sich auch noch an diversen anderen Stellen:

AVM-Artikel oben verlinkt schrieb:
Implementiert wurde TR-069, um eine sichere Kommunikation zwischen dem Endgerät und dem Internetprovider zu ermöglichen.
  1. "implementiert" ist schon mal etwas anderes als "spezifiziert" und damit dann doch wohl eher - es beschreibt ja die Tätigkeit von AVM, mithin die tatsächliche Umsetzung von TR-069 im FRITZ!OS - das von AVM geplante Ziel beim Einsatz von TR-069 beschrieben.
  2. "sicher" ist die Kommunikation auch nur bedingt, wie ich oben gezeigt habe.
  3. "zu ermöglichen" entschärft diesen Satz dann tatsächlich wieder, denn die sichere Kommunikation ist ja tatsächlich möglich ... wenn die Provider sie nicht anwenden, kann ja AVM nichts dafür, außer vielleicht genauere Aussagen ohne suggestiven Charakter zu tätigen und somit beim Kunden Unwissen und ein falsches Sicherheitsgefühl hervorzurufen.

Noch ein Beispiel?
AVM-Artikel oben verlinkt schrieb:
Mit aktiviertem TR-069 kann der Provider die ursprünglichen Einstellungen des Endgerätes wiederherstellen, Firmware-Upgrades durchführen und schnell auf Sicherheitslücken reagieren – ohne dass der Anwender aktiv werden muss.
Na wenn das keine gute Nachricht ist.

Es fehlt eigentlich nur das Wort "ausschließlich" zwischen "der Provider" und "die ursprünglichen" und ich würde tatsächlich (mit einigen Abstrichen, die ich noch erläutern werde) Applaus spenden, weil alle diese Punkte zweifellos eine (unter bestimmten Randbedingungen) sinnvolle Anwendung von TR-069 sind.

Wenn dann auch noch alles nur im Sinne des Anwenders ist (natürlich nimmt jeder Leser an, er selbst wäre auch tatsächlich der Kunde, was bei den über Provider vertriebenen FRITZ!Boxen wohl AVM auch etwas anders sieht, aber sie schreiben ja auch von Anwender, ich in der Regel von Benutzer), dann wäre man ja offensichtlich verrückt, wenn man diese Chancen nicht nutzen würde.

Wenn das "bei weniger technikaffinen Nutzern" auch noch erfolgt, ohne diese damit behelligen zu müssen, dann ist ja alles gut.

Oder vielleicht ist ja doch nicht alles so rosarot, besonders dann, wenn der Anwender davon gar nichts bemerkt (ggf. nicht einmal bemerken kann)?

Um das noch einmal aufzudröseln, hier werden folgende Funktionen der TR-069-Implementierung beschrieben:
  1. FactoryReset, oben als "die ursprünglichen Einstellungen [...] wiederherstellen" vorhanden
  2. Download (für Firmware-Updates), oben als "Firmware-Updates durchführen" aufgeführt
  3. "schnell auf Sicherheitslücken reagieren" soll wohl darauf hinauslaufen, daß der Provider anstelle des Anwenders mit neuer Firmware versorgt wird (hoffentlich nicht auch tatsächlich schon früher als der "gemeine Kunde") und diese dann einspielen kann.

Das ist für unbedarfte (von AVM etwas weniger drastisch als "weniger technikaffine Nutzer" bezeichnete) Anwender vielleicht wirklich erforderlich, nach meiner Einschätzung sollte sich das dann aber auch auf diese Aufgaben und auf diese Zielgruppe beschränken.

Gerade die Möglichkeit, aus der Ferne auch ein "FactoryReset" auszulösen, hat schon bei einigen Kunden von Kabel Deutschland für heftigen Ärger gesorgt und meiner Meinung nach auch bei vielen anderen Providern. Der einzige Provider, den ich kenne und der höflicherweise wenigstens den Kunden um seine Zustimmung zum Zugriff auf den Router des Kunden bittet (oder zumindest bat, als ich da noch mit zu tun hatte), ist 1&1.

Kabel Deutschland mißinterpretiert absichtlich jede Supportanfrage des Kunden mit Bezug auf die FRITZ!Box als implizite Zustimmung zur eigenständigen "Behebung" durch KDG-Techniker und dazu gehört offenbar immer ein "FactoryReset", unabhängig davon, ob es theoretisch überhaupt möglich wäre, daß ein solches Vorgehen tatsächlich hilft. Dort hilft dann nicht einmal der vorher ausdrücklich (schriftlich) geäußerte Widerspruch gegen ein "FactoryReset", die Einstellungen des Kunden werden einfach kommentarlos gelöscht und wie er sie wieder in die Box bekommt, soll er gefälligst selbst sehen.

Hier sehe ich AVM tatsächlich in der (zumindest moralischen) Pflicht, dem Kunden eine eigene Möglichkeit zu verschaffen, sich gegen solche Eingriffe zu verwahren (das wäre bei der erfolgreichen Abschaltung von TR-069 ja auch der Fall), aber da ist dann ein Satz wie
AVM-Artikel oben verlinkt schrieb:
Bitte beachten Sie, dass diese Option möglicherweise bei Anbietern, die FRITZ!Box als Mietgerät zur Verfügung stellen, nicht ausgewählt werden kann.
nur wenig hilfreich.

Auch wenn sich Mietgeräte im Eigentum des Anbieters befinden mögen, ist der tatsächliche Besitz (d.h. die "tatsächliche Herrschaft über die Sache") - zumindest für mich - der entscheidende Punkt in dieser Angelegenheit und AVM unterstützt hier die regelmäßige Mißachtung der Arbeit des Anwenders (die momentane Konfiguration der FRITZ!Box, die ja weit mehr enthalten kann, als der Provider seinerseits konfiguriert hat). Wenn man so etwas unbedingt machen will, dann muß man eben eine Trennung der Einstellungen des Anwenders von denen des Providers vornehmen und dem Provider nur noch die Möglichkeit einräumen, auch seine eigenen Einstellungen zu löschen.

Das wäre für mich tatsächliche "Anwenderorientierung", so ist es eher eine Art perverse "Kundenorientierung", denn offenbar ist AVM dabei der Kunde Provider wesentlich wichtiger als der Anwender und Besitzer.

Selbst wenn man TR-069 nicht abschaltbar macht, könnte man immer noch das tatsächliche "FactoryReset" von einer Handlung des Besitzers abhängig machen. Zum Beispiel könnte nach einem providerseitigen Request für das Zurücksetzen auf Werkseinstellungen eine FRITZ!Box erst einmal ihrerseits mit einer rot blinkenden Info-LED ein solches Ansinnen signalisieren und der Kunde muß das dann innerhalb einer bestimmten Zeit durch das Drücken eines Buttons an der FRITZ!Box auch genehmigen.

Damit wäre beiden Seiten (dem Provider und dessen Kunden) geholfen, denn die wenigsten Kunden werden sich bei einer Fehlermeldung an den Provider nicht vor Ort befinden und wenn der Provider seinerseits in seiner Technik eine "asynchrone Abarbeitung" durchführt, dann muß eben der Kunde vom Techniker angerufen werden. Das würde dann sicherlich auch das Rücksetzen "auf Verdacht" signifikant ausdünnen.

Wenn man es auf die Spitze treiben will, baut man eine - dann auch wirklich immer verfügbare und wirksame - Einstellung "Support-Zugriff nur mit Zustimmung des Kunden" ein, damit auch die Kunden "bedient" werden können, bei denen die Sicherheit des Routers und der "Gluteus maximus" keine Beziehung haben, die man im geometrischen Sinne als "tangential" bezeichnen würde.

Bei einem Mietgerät ist das jedenfalls regelmäßig auch ein Eingriff in die tatsächliche Beschaffenheit der Mietsache (und den Gebrauchswert für den Besitzer) und das ist zumindest bei Kabel Deutschland (bei "vermieteten" Geräten, d.h. wenn ein Aufpreis für das Gerät verlangt wird) in den mir vorliegenden neuen AGB/BGB (hier zu finden) inzwischen tatsächlich so geregelt, daß sich KDG dort das Recht einräumt (das war früher noch anders formuliert) "die Konfigurationsdaten und die Betriebssoftware herunterzuladen und zu verändern, um den Dienst für den Kunden wiederherzustellen".

Die Einschränkung "Dabei werden die Konfigurationsdaten des Kunden nur insofern erfasst, wie es zur Wiederherstellung der ursprünglichen Konfiguration notwendig ist." kann man nun wieder unterschiedlich interpretieren (was ist denn die "ursprüngliche Konfiguration", die des Kunden oder die des Providers - sprich FactoryReset + Provisionierung über den ACS - und warum muß man für das Wiederherstellen der Providerkonfiguration die Konfiguration des Kunden herunterladen, wenn doch der Provider alle notwendigen Angaben selbst haben sollte), ob man sie tatsächlich glaubhaft findet, muß wieder jeder selbst entscheiden. Ich komme gleich dazu, was da wohl tatsächlich passiert oder passieren könnte bei einer FRITZ!Box.

Die angesprochene Beschränkung auf die Zielgruppe soll jedenfalls offenbar über die im AVM-Artikel unter
AVM-Artikel oben verlinkt schrieb:
In FRITZ!OS 6.20 optional abschaltbar
aufgeführte Möglichkeit der Abschaltung realisiert werden, ob und wann das am Ende in vollem Umfang möglich ist (oder auch "Was ist denn nun der Unterschied zwischen "enabled" und "litemode" in den TR-069-Einstellungen?"), ändert(e) sich nach meinem Dafürhalten bis zur Version 06.20 ständig (manchmal von Labor- zu Labor-Version - und davon stand nichts in den "Changelogs") und ich habe es inzwischen aufgegeben, diese ständigen Änderungen nachzuverfolgen.

Mir würde es inzwischen schon reichen, wenn AVM in diesem Punkt eigentlich nicht meint, in FRITZ!OS 06.20 ließe sich TR-069 komplett abschalten (nebenbei gefragt, was ist eigentlich bei den anderen FRITZ!Boxen, für die es keine 06.20-Firmware gibt, wie zum Beispiel die "Homebox 1" von Kabel Deutschland?), sondern wenn da die Rede von ab oder seit wäre und man somit auch für künftige Versionen davon ausgehen könnte, daß sich TR-069 tatsächlich über die entsprechenden Einstellungen abschalten läßt und die Firmware nie wieder "nur so tut".

In diesen Kontext fällt dann auch das Starren auf den "offenen Port" für TR-069, das einige Anwender immer wieder befällt. Ob dieser Port nun offen ist oder nicht, spielt nur dann eine Rolle, wenn der ACS seinerseits das CPE zu einer Kontaktaufnahme auffordern will. Für sämtliche vom CPE selbst ausgehenden TR-069-Aktionen ist dieser Port vollkommen uninteressant, wenn ein Provider "etwas Geduld hat", kann er TR-069 auch ohne diesen offenen Port - mit genau denselben Gefährdungen wie mit offenem Port - betreiben. Der Port ist zwar ein ziemlich sicheres Anzeichen für aktiviertes TR-069, aber auch wenn er geschlossen ist, ist das noch lange kein Beweis für die tatsächliche Abschaltung von TR-069.

Da sogar die Adresse mindestens eines ACS (des von 1&1 - als "https://acs1.online.de" u.a. in 'ctlmgr' vorhanden, der auch das Auspacken der erwähnten Provider-Datenbank übernimmt) direkt in der Firmware hinterlegt ist, kann man eigentlich nicht einmal aus einer fehlenden URL für den ACS mit letzter Sicherheit darauf schließen, daß da tatsächlich "nichts läuft", das kann nur ein Packetdump (dann möglichst auch noch auf einem unabhängigen Gerät wie einem vorgeschalteten DSL-Modem) halbwegs verläßlich klären.

Wenn der Anwender etwas Pech hat, wurde nur der offensichtliche "litemode" in eine etwas weniger auffällige Form gebracht, die man von außen - eben ohne Packetdump, ich habe nur keinen 1&1-Anschluß, um das mal selbst zu verifizieren oder zu falsifizieren - nicht mehr ohne weiteres feststellen kann. Wobei das sicherlich in das Reich der Spekulation abdriftet, aber die Frage stelle ich mir schon, warum da der ACS direkt in der binären Firmware hinterlegt ist (das ist auch nicht vom Branding abhängig, der ctlmgr ist immer derselbe) und nicht wie bei anderen Providern entsprechend konfiguriert wird. Diese Sonderbehandlung erscheint mir schon etwas merkwürdig.

Zur Beschränkung auf die aufgeführten Aufgaben/Möglichkeiten von TR-069, wenn es der Anwender doch lieber eingeschaltet läßt, komme ich gleich, vorher fügt AVM den implementierten Möglichkeiten ja peu a peu weitere "Anwendungsfälle" hinzu:
AVM-Artikel oben verlinkt schrieb:
Im Supportfall kann ein technischer Mitarbeiter aus der Distanz über dieses Protokoll den Status der Verbindung abfragen, Logdateien auswerten und die Konfiguration entsprechend anpassen. Auf diese Weise können Störungen am Router viel schneller behoben werden.
Auch hier wird wohl wieder kein Kunde auf die im zweiten Satz gepriesene Verbesserung freiwillig verzichten wollen. Ob das auch noch der Fall ist, wenn man den ersten Satz hinterfragt, weiß ich nicht so genau:

  1. Status der Verbindung abfragen - gut, dagegen ist wenig zu sagen
  2. Logdateien auswerten - hier stellt sich mir dann schon die Frage, welche Logdateien das sein könnten (wir reden hier immer noch über die Möglichkeit, diese Daten auch ohne die Zustimmung (notfalls sogar gegen den Willen) des Anwenders abzufragen)
  3. Konfiguration anpassen - das kann ja nicht so schlimm sein, denn schließlich ist TR-069 ja genau dafür gedacht

Zu 3. stellt sich mir dann nur noch die Frage, warum AVM auch auf Nachfrage keine Informationen dazu (an Anwender, was bei einer im Einzelhandel erworbenen Box aber auch der Kunde sein sollte) herausgeben will, entsprechende E-Mails wurden (zumindest bei meiner Anfrage) nicht einmal einer Antwort gewürdigt. Vielleicht ist der genaue Umfang der Möglichkeiten über TR-069 AVM so peinlich, daß man lieber keine Diskussion darüber ermöglichen will und sich eher auf "Betriebsgeheimnisse" herausredet. Da bleibt also nur die eigene Recherche, die machen wir gleich gemeinsam.

Zu 2. und dem tatsächlichen Umfang der Logdateien kann man eigentlich nur Vermutungen anstellen, sollte es sich um die bekannten "Support-Daten" handeln, stehen auch da genug - ggf. auch private - Informationen drin, die ich persönlich meinem Provider nicht mitteilen will. Wenn es andere "Logdateien" sein sollten, stellt sich mir wieder die Frage, wo und wie die in der Firmware zusammengetragen werden. Das hinterfragen wir aber erst fast am Schluß noch einmal ...

Die oberflächliche Maskierung von Kennwörtern als "SECRET" in diesen Support-Daten kann auch nicht darüber hinwegtäuschen, daß dort z.B. auch die intern vorhandenen Clients mit zusätzlichen Informationen aufgelistet sind - von vielleicht eingerichteten "geheimen" Port-Forwardings auf solche Geräte ganz zu schweigen, auch wenn jeder selbst Schuld ist, wenn so etwas nicht zusätzlich gesichert wird und die Kenntnis des Ports schon ausreicht für einen Angriff oder sogar einen Mißbrauch.

Das ist auch nur ein Beispiel, über den Umfang der Support-Daten und die dort offengelegten Informationen (hat schon mal jemand erlebt, daß AVM einen Support-Fall mit technischem Hintergrund ohne - oder mit entsprechend manuell nachbearbeiteten - Support-Daten bearbeitet?) kann man problemlos noch einem weiteren Artikel verfassen.

In keinem Fall würde ich als Kunde jedenfalls wollen (auch nicht als Kunde "bei Anbietern, die FRITZ!Box als Mietgerät zur Verfügung stellen", wie AVM es formuliert), daß der Provider auch gegen meinen Willen Zugriff auf diese Informationen hat.

Aber dafür hat ja AVM schließlich auch Vorsorge getroffen und erklärt uns das auch:
AVM-Artikel oben verlinkt schrieb:
Sofern Ihr Internetanbieter TR-069 nutzt, können sie in FRITZ!OS unter dem Punkt Internet/Zugangsdaten/Anbieter-Dienste in mehreren Stufen festlegen, wie Ihr Gerät TR-069 nutzen soll.
Auch dieser Satz stimmt zu 100%, wenn man ihn tatsächlich wörtlich nimmt. Die schon zitierte Einschränkung folgt im Satz danach.

Nun ist es gar nicht so einfach, diese Einstellungen tatsächlich zu Gesicht zu bekommen, wenn man kein Kunde bei so einem Provider ist. Ich habe dazu eine FRITZ!Box 7490 (Branding AVM) mit FRITZ!OS 06.23 an einem Telekom-Business-Anschluß verwendet und da muß man erst einmal ein paar Vorbereitungen treffen. Dazu braucht es zwei "Patches", die mit folgenden "Diff-File" beschrieben sind:
Code:
--- /usr/www/avm/internet/providerservices.lua
+++ /var/providerservices.lua
@@ -10,13 +10,8 @@
 require"tr069"
 local gui_mode = tonumber(tr069.gui_mode)
 local show, show_disabled
-if gui_mode then
-show = gui_mode > 0
-show_disabled = gui_mode == 2
-else
+show_disabled = false
 show = true
-show_disabled = tr069.unprovisioned()
-end
 function writehtml_enabled()
 if show then
 local addclass = show_disabled and " disable_onload" or ""
--- /usr/www/avm/menus/menu_show.lua
+++ /var/menu_show.lua
@@ -122,12 +122,7 @@
 return config.TR069 and not config.LTE and not config.DOCSIS
 end
 menu.show_page["/internet/providerservices.lua"] = function()
-local gui_mode = tonumber(box.query("tr069:settings/gui_mode"))
-if gui_mode then
-return expert_mode and gui_mode > 0
-else
-return expert_mode and (oem ~= 'avm' or box.query("tr069:settings/url") ~= "")
-end
+return true
 end
 menu.exists_page["/internet/internet_settings.lua"] = function()
 return not config.DOCSIS and not config.LTE
Wie ein geübter Lua-Programmierer und/oder FRITZ!OS-"Analysierer" schnell sieht, müssen schon einige Hürden genommen werden (Expertenansicht ohnehin vorausgesetzt), bis eine Box auch mal die TR-069-Einstellungen anzeigen will, als da wären:

  1. "gui_mode" darf nicht "0" sein, bei "2" werden die Einstellungen zwar angezeigt, lassen sich aber nicht ändern - das wird in der tr069.cfg auf Text-Werte abgebildet, wer die Zuordnung braucht, findet sie an anderer Stelle im IPPF
  2. fehlt in der tr069.cfg die Angabe zum "gui_mode" oder ist sie "0" (alles andere ist "true" im o.a. Lua-Code, wobei der Wert "0" eigentlich für "GUI nicht anzeigen" steht), wird noch geprüft, ob "oem" (das Branding)nicht "avm" ist oder die URL des ACS in der Konfiguration nicht fehlt
  3. Was man oben jetzt nicht sieht, ist: Bei DOCSIS-Boxen (selbst wenn man ein "AVM"-gebrandetes Gerät hätte), wird der Menüpunkt "Anbieterdienste" grundsätzlich nicht angezeigt, egal ob "gemietet", "überlassen" oder "gekauft":
    Code:
    menu.exists_page["/internet/providerservices.lua"] = function()
        return config.TR069 and not config.LTE and not config.DOCSIS
    end
    Bei LTE- und DOCSIS-Boxen wird also die Existenz der betreffenden Seite im GUI-Menü in jedem Falle schamhaft verschwiegen, was bei LTE (da gibt es allerdings in der Firmware auch die notwendigen Dateien für TR-069, selbst wenn es vielleicht tatsächlich nicht genutzt werden sollte) ja noch durchgehen mag, bei DOCSIS-Boxen aber den Wahrheitsgehalt der AVM-Aussagen durchaus mindern würde, wenn es da nicht ausschließlich "Mietgeräte" (wenn man mal Überlassung dazu zählt) geben würde.

Egal, weiter im eigentlichen Thema ... will man nun die etwas störrischen TR-069-Einstellungen doch mal angezeigt bekommen, führt man die folgenden Kommandos aus:
Code:
# cp /usr/www/avm/menus/menu_show.lua /var/
# cp /usr/www/avm/internet/providerservices.lua /var/
# mount -o bind /var/menu_show.lua /usr/www/avm/menus/menu_show.lua
# mount -o bind /var/providerservices.lua /usr/www/avm/internet/providerservices.lua
aus und wendet den oben angegebenen Patch auf die kopierten Dateien an. Wenn man kein "patch"-Kommando auf der Box hat (die AVM-Busybox enthält es meines Wissens nicht), kann man die wenigen erforderlichen Änderungen ja auch mit einem Editor vornehmen.

Das Ergebnis unterscheidet sich nur marginal von der Anzeige einer "originalen" Firmware mit aktiviertem (oder besser deaktiviertem) TR-069 und ist ausreichend genau, um es als Grundlage der weiteren Betrachtungen zu verwenden, auch wenn es nur durch Manipulation der Firmware zur Anzeige gelangte.

Somit erhält man dann immer die zusätzliche Anzeige der "Anbieterdienste", die bei mir dann so aussieht:
Anhang anzeigen 81691

Ich weiß ja nicht, wie es anderen geht, aber aus dem Text
FRITZ!OS-GUI schrieb:
Diese Einstellung ermöglicht dem DSL-Dienstanbieter die sichere (verschlüsselte) Übertragung der Internetzugangsdaten und Anmeldedaten für Internettelefonie auf diese FRITZ!Box.
würde ich nun auch wieder nicht schließen, daß damit auch eine "unsichere (unverschlüsselte) Übertragung" denkbar wäre (das habe ich oben ja schon gezeigt) oder daß da in Wirklichkeit viel mehr passiert und ermöglicht wird, als nur die "Übertragung der Internetzugangsdaten und Anmeldedaten für Internettelefonie auf diese FRITZ!Box".

Von den weiteren Möglichkeiten (da geht es noch gar nicht um Firmware-Updates), die AVM auf der Webseite dann noch "eingesteht", steht da irgendwie nichts oder ich finde es nur nicht.

Die Aussage
FRITZ!OS-GUI schrieb:
Ist diese Einstellung ausgewählt, kann der Dienstanbieter das FRITZ!OS dieses Gerätes bei Bedarf automatisch aktualisieren, um das Dienstangebot zu verbessern.
finde ich auch etwas gewagt, was hat das "Dienstangebot" (das ja wohl vom "Dienstanbieter" stammt) mit dem Funktionsumfang der FRITZ!Box zu tun? Sollte tatsächlich mal ein Provider neue Dienste einführen wollen, die mit einer älteren Firmware nicht realisiert werden können, wäre das - für mich jedenfalls - schon eine Überraschung.

Ansonsten sieht das für mich wieder wie das schamhafte Verschweigen der Tatsache aus, daß eine FRITZ!OS-Version auch mal Fehler enthalten kann (sogar richtig kritische, wie wir inzwischen wissen) und daß dann ein Update seitens des Providers wünschenswert ist, wenn der Kunde sich nicht selbst kümmert. Dieses als "Verbesserung des Dienstangebots" zu verbrämen, ist für mein Empfinden schon etwas kühn.

Die dritte Einstellung (DHCP-Option 43) dürfte nur den wenigsten überhaupt etwas sagen, sie dient eigentlich nur zur Deaktivierung einer Lücke, bei der der ACS des Providers über ein zusätzliches Datenfeld in einer DHCP-Antwort gesetzt werden kann und das ist spätestens dann riskant, wenn der Provider diesen DHCP-Server nicht selbst betreibt. Über diese Option kann selbstverständlich auch die unverschlüsselte Kommunikation mit einem falschen ACS konfiguriert werden, der Angreifer müßte nur das (unverschlüsselte) DHCP-Paket mit der Antwort abfangen und entsprechend modifizieren. Ob so ein Angriff tatsächlich einmal stattgefunden hat, kann man nur raten ... diese Option ist jedenfalls noch nicht allzu alt.

Damit bleiben für mich bei einem "normalen" Anwender eigentlich nur noch zwei TR-069-spezifische Einstellungen im GUI übrig, diese beschreibt AVM mit
AVM-Artikel oben verlinkt schrieb:
Sofern Ihr Internetanbieter TR-069 nutzt, können sie in FRITZ!OS unter dem Punkt Internet/Zugangsdaten/Anbieter-Dienste in mehreren Stufen festlegen, wie Ihr Gerät TR-069 nutzen soll.
wieder für mein Verständnis etwas zu euphorisch als "mehrere", aber das ist sicherlich Ansichtssache.

Viel bemerkenswerter finde ich es, daß es eben gerade keine Möglichkeit gibt, die möglichen Zugriffe (wenn man das abschaltbare Firmware-Update mal an dieser Stelle nicht allzu sehr in den Vordergrund rückt, es ist quasi nur ein Nebenkriegsschauplatz) durch den Provider in irgendeiner Form auf bestimmte Funktionen (meinetwegen "Fernkonfiguration" oder "Neustart" oder "Werkseinstellungen") zu beschränken. Wenn man TR-069 einschaltet (oder erst gar nicht vor diese Entscheidung gestellt wird, weil der Dienstanbieter sie für den Anwender trifft), dann nur alles oder nichts, eine Einstellung in mehreren Stufen ist das für mich eher nicht.

Aber auch das ist ja kein Problem, denn AVM hat uns ja ausdrücklich versichert:
AVM-Artikel oben verlinkt schrieb:
Eine Besonderheit in FRITZ!Box ist zudem, dass gespeicherte Zugangsdaten nicht über TR-069 ausgelesen werden können.
Da taucht dann unmittelbar bei mir wieder die Frage auf, wie das zu den AGB von Kabel Deutschland paßt. Aber vermutlich gilt dieser Punkt bei Kabel Deutschland ja für FRITZ!Boxen gar nicht.
Was uns AVM mit der Formulierung "in FRITZ!Box ist" am Ende sagen will, frage ich lieber gar nicht erst.

Was ist denn da nun tatsächlich dran?

Wir wagen mal einen Blick in die Firmware (alles folgende ist aus der 113.06.23) und schauen uns als erstes das Kommando "tr069fwupdate" an, das sich in /usr/sbin befindet.
Code:
# tr069fwupdate
This is an 'internal' tool for TR-069 - don't run it from a shell
If you run from a shell, use parameters: packet <url> [<savefile>]
Nun, die Warnung ist deutlich, wenn auch etwas verwirrend (packet und nicht tr069fwupdate), aber wir sind einmal mutig und ignorieren sie einfach.

Die erste Frage, die sich nun anschließt: Was könnte denn dieses Programm nun veranlassen, etwas mehr als nur diesen Text auszugeben? Dazu schauen wir einfach einmal in dieses Programm "hinein", am einfachsten funktioniert das mit einem Programm, das die dort enthaltenen Zeichenketten ausfiltert, dann müssen wir uns erst einmal nicht mit einem Hex-Viewer oder -Editor quälen.

Das Kommando dazu wäre "strings <dateiname>" und dessen Ausgabe sieht dann - auszugsweise, uninteressante Stellen habe ich ohne Kennzeichnung ausgelassen - so aus, ich habe einige Erklärungen (so wie ich sie mir vorstelle) hinzugefügt:
Code:
# strings /usr/bin/tr069fwupdate
configexport <- das sieht doch schon mal nach einem "echten" Anwendungsfall aus
check_configimport <- ich würde auf eine (syntaktische) Prüfung einer zu importierenden Konfiguration tippen, ggf. auch einer zuvor exportierten
configimport <- das wäre dann wohl der eigentliche Import
configimportbyusb <- na hoppla, geht das etwa auch über USB? Wenn ja, wie?
vpn_config <- VPN kann man über TR-069 auch konfigurieren? Beim "normalen" GUI-Import über firmwarecfg heißt das ähnlich, aber was hat der Provider mit VPN zu tun?
Das legt die Vermutung nahe, das Tool könnte einen Parameter "configexport" unterstützen.

Die Möglichkeit des Konfigurierens über USB hatten wir bereits an anderer Stelle (wofür ist ein USB-Stick an einer FRITZ!Box noch zu gebrauchen?) und die lasse ich hier mal außen vor.

Wenn ein Provider auch eine VPN-Verbindung importieren können sollte, ist das zwar etwas überraschend, aber ich kann mir tatsächlich Konfigurationen vorstellen, wo das Sinn machen würde. Die Frage bleibt, warum AVM das verschweigt, denn die Firmware identifiziert ja VPN-Verbindungen anhand des Namens und so könnte ein Import einer VPN-Verbindung ja eine vorhandene überschreiben, einerseits versehentlich, notfalls aber sogar gezielt.

Aber dazu müßte man über TR-069 ja erst einmal ermitteln, welche Verbindungen da überhaupt konfiguriert sind. Das wird ja nicht so einfach sein ... halt mal, steht nicht auch etwas dazu in den Support-Daten? Ein Glück, daß da der Provider niemals herankommen könnte, denn der hat ja nur Zugriff auf "Logdateien".

Vielleicht ist ein Import einer VPN-Verbindung ja auch gar nicht erst vorgesehen und ich sehe hier "rosa Elefanten", weil ich etwas Falsches geraucht habe? "vpn_config" muß ja noch lange nichts mit "vpn" und "config" zu tun haben, das kann ja auch etwas vollkommen anderes sein und wie sollte so eine Konfigurationsdatei überhaupt auf die FRITZ!Box kommen?

Ganz einfach, das steht auch in "tr069fwupdate":
Code:
wget %s -O - "ftp://%s" 2>/var/dl_err > /var/tmp/vpncfgimport.eff
wget %s -O - "ftp://%s:%s@%s" 2>/var/dl_err > /var/tmp/vpncfgimport.eff
wget %s -O - "ftp://%s" 2>/var/dl_err | /usr/www/cgi-bin/firmwarecfg stream |%s tar xvf -
wget %s -O - "ftp://%s:%s@%s" 2>/var/dl_err | /usr/www/cgi-bin/firmwarecfg stream | tar xvf -
wget %s -O - "ftp://%s" 2>/var/dl_err > /var/tmp/configimport.tmp
wget %s -O - "ftp://%s:%s@%s" 2>/var/dl_err > /var/tmp/configimport.tmp
httpsdl%s -O - "%s" 2>/var/dl_err > /var/tmp/vpncfgimport.eff
httpsdl%s -O - "%s" "%s" "%s" 2>/var/dl_err > /var/tmp/vpncfgimport.eff
httpsdl%s -O - "%s" 2>/var/dl_err | /usr/www/cgi-bin/firmwarecfg stream |%s tar xvf -
httpsdl%s -O - "%s" "%s" "%s" 2>/var/dl_err | /usr/www/cgi-bin/firmwarecfg stream | tar xvf -
httpsdl%s -O - "%s" 2>/var/dl_err > /var/tmp/configimport.tmp
httpsdl%s -O - "%s" "%s" "%s" 2>/var/dl_err > /var/tmp/configimport.tmp
Mit diesen Kommandos werden jeweils paarweise (einmal mit, einmal ohne zusätzliche Angabe von Credentials für den Download) die Dateien für verschiedene Zwecke (VPN, Firmware-Update und Konfigurationsimport) aus dem Netz geladen, einmal über eine unverschlüsselte Verbindung (bei Verwendung von "wget") und einmal über eine verschlüsselte Verbindung.

Wenn bei einem Download über eine verschlüsselte Verbindung tatsächlich die Identität des Servers geprüft werden sollte, würde mich das schon sehr verblüffen. Das "httpsdl"-Kommando kennt jedenfalls diese Parameter:
Code:
# httpsdl
usage: httpsdl [options]
options:
  -?                 - print this help
  -O STRING          - output file (- for stdout). (NULL)
  -v                 - Verify certificate of SSL server. (NOTSET)
  -c STRING          - Own SSL certificate file (incl. private key). (NULL)
  -t STRING          - Trusted SSL server certificate. (NULL)
  -T                 - Use TR-069 traffic class. (NOTSET)
  -U STRING          - Upload file to given URL (- for stdin). (NULL)
httpsdl [-v] [-c own_cert_file] [-t trusted_ca_file] [-T TR-069 traffic class] [-O output] url [user pass]
httpsdl -O - https://192.168.178.22/testfile aladdin sesame
httpsdl -v -c /etc/own_cert -t /etc/server_ca_cert -O /var/test https://192.168.178.22/testfile
httpsdl -U - https://192.168.178.22/testfile
und wenn sich die Optionen "-v" oder "-t" nicht in dem ersten "%s" beim Download ohne Credentials verstecken sollten, sehe ich da nichts Passendes stehen.

Ich weiß auch nicht, wieviele Leute schon mal ihre eigenen Dateien über FTP oder HTTPS auf die Box übertragen haben, jedenfalls in der hier anzunehmenden Form der Angabe einer URL/Adresse für einen Download. Wir reden hier nicht über einen formularbasierten Upload mit einem Browser, die gezeigten Kommandos können verwendet werden, um solche Dateien von einer beliebigen Internet-Präsenz zu laden (wenn eine Internetverbindung besteht, aber das nehmen wir mal an, sonst kommt auch der Provider nicht rein).

Bei Firmware-Updates und Konfigurationen (dazu gleich) ist das vielleicht nur wenig überraschend, man könnte es tatsächlich aus den Texten im AVM-GUI schlußfolgern, auch wenn es da nicht steht und die Simplizität dieser Vorgänge (eigentlich reden wir ja über TR-069) schon etwas überrascht.

Aber daß so ein Download auch tatsächlich für eine VPN-Konfiguration vorgesehen ist, dürfte sicherlich einige überraschen, denn gemeinhin gilt nun mal eine VPN-Verbindung ja gerade als ein Mittel, den Verkehr durch das Netz des Providers zu verschlüsseln, damit dieser (und andere) nicht mitlesen können.

Wenn nun jemand den VPN-Verkehr auf einen Proxy umleitet (dafür braucht er nicht einmal zwingend einen Zugriff auf die Gegenseite, nur eine Kenntnis der VPN-Einstellungen), kriegt der Anwender davon am Ende gar nichts mit. Ob das tatsächlich jedem Anwender bei der "Freischaltung" von TR-069 für den Provider in der Konsequenz bewußt ist? Ich habe da so meine Zweifel.

Aber wir haben ja noch die Versicherung von AVM, daß es vollkommen unmöglich ist, über TR-069 an irgendwelche gespeicherten Zugangsdaten zu gelangen. Die Möglichkeit, daß der Provider tatsächlich Zugriff auf dieselben Support-Daten wie der Anwender hat und daß AVM das mit "Logdateien" meinen könnte, ist ja nur eine Annahme meinerseits und selbst dort sind die "geheimen" Daten ja als SECRET getarnt. Also alles halb so wild ... was soll die "Panikmache".

Wir waren ja bei den Möglichkeiten, die das Programm "tr069fwupdate" so zu bieten hat. Nun ist es ja eher unwahrscheinlich, daß vom Provider wirklich eine komplette Zeile mit einem Aufruf von "tr069fwupdate" übermittelt wird, wenn das zu irgendwelchen Aktionen benutzt werden soll.

Also ist es nur logisch, daß es wohl irgendwo in der Firmware eine oder mehrere andere Stellen geben muß, wo dieses Programm aufgerufen wird. Suchen wir doch einmal danach ... ich habe es der Einfachheit und der Geschwindigkeit halber nicht auf einer FRITZ!Box gemacht (ein "grep -r", das über "/proc" laufen soll, geht in der Box ohnehin schief), sondern mit einer ausgepackten Firmware, wie sie u.a. beim Erstellen eines Freetz-Images auf dem Build-Host vorliegt:
Code:
:~/original/filesystem$ grep -r tr069fwupdate
Binary file usr/bin/tr069fwupdate matches
Binary file usr/bin/ctlmgr matches
Binary file usr/share/ctlmgr/libtr069.so matches
Binary file usr/share/ctlmgr/libtr064.so matches
sbin/start_dect_update.sh:tr069fwupdate packet file://${mountpoint}/$filename 2>>/var/tmp/dect_update_error.log >>/var/tmp/dect_update_out.log
sbin/start_dect_update.sh:tr069fwupdate packet ${url} 2>>/var/tmp/dect_update_error.log >>/var/tmp/dect_update_out.log
Binary file bin/tr069starter matches
Wir haben also - wenig überraschend - das Programm selbst, den ctlmgr mit ein paar seiner Bibliotheken/Plugins (in /usr/shar/ctlmgr) und das Update für die DECT-Firmware (einmal vom USB-Stick und einmal aus dem Netz), wo bei der Syntax dann auch klar wird, daß das vorhin erwähnte "packet" gar nicht der Programmname sein sollte, sondern auch ein möglicher Parameter.

Offenbar kann man das Tool auch benutzen, um Dateien von irgendwelchen Adressen im Internet auf eine FRITZ!Box zu übertragen ... was es am Ende mehr kann als "wget" (vielleicht die automatische Auswahl von httpsdl, wenn die URL mit HTTPS beginnt?), ist für uns erst einmal egal.

Wie sehen denn solche Aufrufe an anderen Stellen nun tatsächlich aus, bisher wissen wir ja nur, daß sie überhaupt vorhanden sein könnten.
Code:
:~/original/filesystem$ strings usr/bin/ctlmgr | grep tr069fwupdate
/usr/bin/tr069fwupdate configexport "%s" > %s
tr069fwupdate
Ok, die erste Zeile merken wir uns mal, das könnte ja etwas werden ... wie sieht es denn an anderen Stellen aus?
Code:
:~/original/filesystem$ strings bin/tr069starter | grep tr069fwupdate
tr069fwupdate configimportbyusb
Ok, das sind nun zwei der o.a. Parameter, geht da noch mehr?
Code:
:~/original/filesystem$ strings usr/share/ctlmgr/libtr064.so | grep tr069fwupdate
tr069fwupdate check_configimport "%s"
tr069fwupdate configimport "%s"
Das wären dann schon 4 von 5 Aufrufen, nur "vpn_config" war noch nicht dabei, dafür haben wir "packet" dazugelernt. Aber alles bisherige (gerade das letzte) hatte ja auch nur am Rande mit TR-069 zu tun, wenn man den Dateinamen irgendeine Bedeutung beimessen will. Wie sieht es denn nun im "Arbeitspferd" des TR-069 aus?
Code:
:~/original/filesystem$ strings usr/share/ctlmgr/libtr069.so | grep tr069fwupdate
tr069fwupdate configimport
/usr/bin/tr069fwupdate configexport > /var/tmp/configexport
/usr/bin/tr069fwupdate configexport '%s' > /var/tmp/configexport
tr069fwupdate check_configimport
tr069fwupdate
/usr/bin/tr069fwupdate configexport | httpsdl -U - "%s" "%s" "%s" 2>/var/dl_err
/usr/bin/tr069fwupdate configexport > %s; /usr/bin/ftpput%s "%s"%s "%s" -P %d "%s" "%s" %s 2>/var/dl_err
Siehe da, hier treffen wir auf Bekanntes und bisher eher noch Unbekanntes.

"configimport" ist wenig überraschend, wir haben es in libtr069.so ohne Parameter (das ist das "%s" dahinter in libtr064.so, wobei die Anführungszeichen unsere Aufmerksamkeit verdienen) und in libtr064.so eben mit.

"configexport" finden wir nur in libtr069.so, einmal mit und einmal ohne Parameter, auch hier ist das Einschließen von '%s' in Hochkommata auffällig, die Ausgabe erfolgt offenbar auf stdout, daher die Umleitungen beim Aufruf.

Dann fangen wir doch erst einmal mit dem Test der Variante ohne Parameter an, dazu müssen wir zurück auf die FRITZ!Box (das "more" zeigt die Ausgabe seitenweise an, sie ist ansonsten recht lang, auch für einen Scrollback-Buffer eines Terminals):
Code:
root@FB7490:~ $ tr069fwupdate configexport | more
Content-type: application/octet-stream;
Content-Disposition: attachment; filename="FRITZ.Box 7490 113.06.23_28.04.15_1713.export"

**** FRITZ!Box 7490 CONFIGURATION EXPORT
Password=$$$$PMPNZFQVKFUPK4JXAPDCRAUEUCHXXLS3QY2OQEONV6UWC6CEIR3LPPB2PL1XZAYMWLWZW4X1ZQFKMEC663ZPJYSMU54WR1CVMUI5DWBO
FirmwareVersion=113.06.23
CONFIG_INSTALL_TYPE=mips34_512MB_xilinx_vdsl_dect446_4geth_2ab_isdn_nt_te_pots_2usb_host_wlan11n_27490
OEM=avm
Country=049
Language=de
**** CFGFILE:ar7.cfg
/*
 * /var/tmp.cfg
 * Tue Apr 28 17:13:43 2015
 */

meta { encoding = "utf-8"; }

ar7cfg {
[...]
Irgendwie kommt mir das - mit Ausnahme der ersten drei Zeilen - ziemlich bekannt vor. :gruebel:

Eine über das GUI exportierte Einstellungssicherung sieht ja genauso aus. Nun könnte es auch sein, daß dieser Export über das GUI in Wirklichkeit genau durch den internen Aufruf dieses "tr069fwupdate" ausgeführt wird und ich mich da nur zu sehr auf den Namen versteife. Das läßt sich ja leicht ermitteln:
Code:
root@FB7490:~ $ echo -n >/var/tr069fwupdate
root@FB7490:~ $ mount -o bind /var/tr069fwupdate /usr/bin/tr069fwupdate
Wenn jetzt beim Export der Einstellungen intern das "tr069fwupdate" tatsächlich aufgerufen wird, sollte ein Export über das GUI nun eigentlich nicht mehr funktionieren.

Das macht er aber weiterhin, selbst wenn man "tr069fwupdate" in der Firmware von Beginn an durch einen Dummy ersetzt, klappt der Export weiterhin. Diese Funktion kann also eigentlich nichts mit der im GUI zu tun haben, außer daß sie beide am Ende dasselbe Format verwenden.

Wofür könnte aber dann dieser zusätzliche Parameter, der offenbar durch das %s in einigen Fällen noch entsteht, dienen? Es ist ganz simpel die Möglichkeit, auch hier eine Export-Datei mit einem eigenen Kennwort zu erzeugen.

Das erklärt auch die Anführungszeichen bzw. Hochkommata um diesen Parameter, denn ein solches Kennwort könnte ja seinerseits auch ein Leerzeichen enthalten und das würde die fertige Zeile durcheinander bringen.

Welche Konsequenzen die "Klammerung" in Anführungszeichen an der überwiegenden Anzahl der Fundstellen haben kann (das hängt stark vom verwendeten Aufrufmechanismus ab), kann sich jeder Shell-Anfänger schon vorstellen.

Wenn man einen solchen Aufruf dann tatsächlich mal ausführt und die entstandene Ausgabedatei (die drei obersten Zeilen natürlich nicht) wieder über das GUI importiert, merkt man auch, daß es exakt dasselbe Format ist (ein Vergleich zweier Dateien wird immer einen Unterschied ergeben, da die verschlüsselten Daten jedesmal anders dargestellt werden) und sich problemlos auch mit einem Kennwort importieren läßt.

Die Form ohne Parameter erzeugt dann wieder eine Datei, die (angeblich) nur auf derselben Box wieder entschlüsselt (ergo erfolgreich importiert) werden kann.

Ob es am Ende mit diesem Kommando und "check_configimport '%s'" tatsächlich möglich ist, ein Kennwort für eine fremde Konfiguration durch "brute force" - also eigentlich Ausprobieren - zu ermitteln, hängt sicherlich von der Stärke des Kennworts ab und von der Offenherzigkeit von "tr069fwupdate" in Bezug auf die konkrete Ursache eines Problems, ich habe es auch nie probiert. Aber "123456" ist wahrscheinlich ohnehin kein gutes Kennwort für so eine Export-Datei?

Wir wissen also jetzt definitiv, daß mit dem Kommando "tr069fwupdate configexport" eine exakte Kopie einer Export-Datei erstellt wird, wie wir sie auch über das GUI erhalten würden. Wenn ich mich nicht sehr irre, stehen da durchaus Zugangsdaten von mir drin und zwar für vollkommen verschiedene Dienste, die auch garantiert nicht das Geringste mit meinem Provider zu tun haben.

Kommt da die oben zitierte Aussage von AVM etwa ins Wanken? Aber die Möglichkeit der Erzeugung so einer Datei muß ja noch lange nicht heißen, daß sie auch in die Hände des Providers gelangt, auch wenn sich mir die Frage schon stellt, warum sie dann in einem "TR-069-Kontext" überhaupt erzeugt wird. Wir haben ja das "Versprechen" von AVM, daran sollten wir uns orientieren.

Haben wir eigentlich irgendwelche Aufrufe von "tr069fwupdate configexport" noch nicht genauer betrachtet?

Ja, haben wir und zwar diese in libtr069.so:
Code:
/usr/bin/tr069fwupdate configexport | httpsdl -U - "%s" "%s" "%s" 2>/var/dl_err
/usr/bin/tr069fwupdate configexport > %s; /usr/bin/ftpput%s "%s"%s "%s" -P %d "%s" "%s" %s 2>/var/dl_err
Na, das konnte ja nun wirklich niemand ahnen ... (irgendwo habe ich ähnliche Formulierungen schon mal gelesen, ich klaue nicht, ich lasse mich inspirieren).

Wenn ich es nicht schwarz auf weiß von AVM hätte, würde ich glatt behaupten, daß da tatsächlich die exportierten Einstellungen (wie die aussehen, wissen wir ja inzwischen) entweder über HTTPS (damit dann wenigstens verschlüsselt) oder sogar über FTP (somit unverschlüsselt) an eine Internet-Adresse übertragen werden können.

Ich habe jedenfalls in meinem Netzwerk keinen Host, auf dem ein httpsdl-Kommando mit "-U"-Option die Einstellungen irgendeiner FRITZ!Box sichern müßte.

Selbstverständlich hat das auch überhaupt nichts mit TR-069 zu tun, es befindet sich nur zufällig in einer extra dafür benötigten Komponente. Bestimmt wissen auch die Provider gar nicht, wie man einen solchen Upload auslösen sollte ... außer Kabel Deutschland vielleicht?

Was die Verschlüsselung der Einstellungen mit den "Eigenschaften" der FRITZ!Box wert ist, habe ich schon mit der Camouflage-Möglichkeit in "decode_passwords" (in Freetz als "decrypt_fritzos_cfg" enthalten) gezeigt.

Wenn man bei einer DSL-Box den WLAN-Startkey kennt, braucht man noch die "maca"-Adresse. Der WLAN-Startkey steht hinten auf einer Box auf dem Aufkleber, der findet sich natürlich auch beim ersten Kontakt der Box mit dem Provider noch in den Einstellungen und ist sogar richtig über GetParameterValues per TR-069 abzufragen, später könnte er dann zwar vom Anwender auf einen eigenen Wert gesetzt werden, nach "FactoryReset" ist es aber wieder der ursprüngliche Key. Was für ein Glück, daß der Provider keine Möglichkeit hat, so ein "FactoryReset" auszuführen.

Die "maca"-Adresse steht entweder in den Support-Daten (ob der Provider die nun tatsächlich hat, wissen wir ja nicht genau), sie steht aber auch in direktem Zusammenhang zur auf der DSL-Schnittstelle verwendeten MAC-Adresse und läßt sich daraus ableiten.

Hat der Provider dann vor dem "FactoryReset" schon die Einstellungen gesichert und spielt diese Konfiguration hinterher wieder ein, hilft nur noch ein wirklich tiefer Blick in die Protokolle einer FRITZ!Box, um einen Restart in der Nacht überhaupt festzustellen. Ein richtig böswilliger Angreifer kann dann tatsächlich sogar das Ereignisprotokoll einer FRITZ!Box so manipulieren, daß am Ende der Restart verschleiert wird.

Kommen wir noch einmal kurz auf die Frage zurück, was denn nun "Logdateien" sein könnten. Im FRITZ!OS werden die Support-Daten durch den Aufruf von /bin/supportdata generiert und von diesem Kommando (ein Shell-Skript, das weitere aufruft, wo die Daten aus verschiedenen Quellen zusammengefügt werden) auf stdout ausgegeben. Wenn es also in einer TR-069-Komponente einen Aufruf dafür geben sollte, ist die Annahme, daß sich hinter den "Logdateien" eigentlich die Support-Daten (mit allen Konsequenzen, inkl. nicht abstellbarer und nicht protokollierter Abrufe durch den Provider) verbergen könnten, wohl nicht von der Hand zu weisen:
Code:
root@FB7490:~ $ strings /usr/share/ctlmgr/libtr069.so | grep supportdata
/bin/supportdata
Nach meinem Dafürhalten sollte das zumindest als "Anscheinsbeweis" ausreichend sein, ansonsten stellt sich wieder die Frage, was TR-069 überhaupt mit einem solchen Aufruf anfangen sollte.

Damit bleibt mir als Fazit leider nur die Feststellung, daß an der Behauptung, über TR-069 wäre das Auslesen von Zugangsdaten nicht möglich, wohl etwas nicht so ganz stimmen dürfte.

Das ist nur die Formulierung im Konjunktiv ... ich halte sogar die Behauptung, daß AVM den Anwender hier nach Strich und Faden hintergeht, für vertretbar. Die offiziellen Aussagen passen offenbar nicht zum Inhalt der Firmware, soweit man das mit forensischen Mitteln ergründen kann. Da es sich bei diesen Komponenten um "Closed Source" handelt, ist eine unabhängige Untersuchung auch nicht möglich, damit ist es für mich auch legitim, beim Vorliegen so massiver Indizien einen solchen Verdacht zu formulieren.

Welche zusätzlichen Daten, die den Provider nun wirklich nichts angehen (VPN hatten wir schon, das ist bei aktiviertem TR-069 damit aus prinzipiellen Erwägungen schon Schrott), jeder in der eigenen FRITZ!Box gespeichert hat und ob er tatsächlich das (spurenlose) Kopieren der Daten vom USB-Stick der Box zum Provider in der Nacht bemerken würde, muß am Ende jeder selbst entscheiden. So eine Push-Mail ist schon praktisch, bestimmt ist mit dem in der FRITZ!Box hinterlegten Kennwort für den Versand der E-Mail aber gar kein Abruf von Mails möglich. Auch ein "Cloud"-Speicher, der ja auf dem eigenen Server (mit OwnCloud) sicher ist, denn es kommt ja keiner an die Zugangsdaten, ist schon schön, man sollte ihn aber wohl besser nicht in eine FRITZ!Box per WebDAV einbinden, wenn man nicht möchte, daß der Provider dort auch mitlesen kann.

Was ich mir denke, wenn wieder mal jemand (von AVM oder nicht) über die doch so praktischen Anwendungen von TR-069 und die hohen Sicherheitsanforderungen dort schwadroniert, muß ich sicherlich nicht extra ausführen.

Im nächsten Beitrag werden wir uns dann mal näher mit den DOCSIS-Boxen und der Frage, warum dort zwar der Provider einen Telnet-Zugang braucht, aber der Anwender keinen erhalten soll, beschäftigen. Dabei geht es dann aber auch nicht im Detail darum, wie man selbst einen Telnet-Zugang erhält. Ich will nur die Frage klären, ob in der Firmware irgendwelche Vorbereitungen für den Start eines Telnet-Daemons für und durch den Provider vorhanden sind und wofür man diese dann wieder nutzen könnte. Was man mit einzelnen Kommandos ansonsten noch so anfangen kann, habe ich hoffentlich hier gezeigt ... mit einem Telnet-Zugang hilft dann auch ein abschaltbares CWMP nicht mehr.
 
Zuletzt bearbeitet:
  • Like
Reaktionen: prisrak1
gefaellt-mir-fun-aufkleber-jdm-sticker-tuning-adesivo.jpg
 
So sieht`s aus!
 
@PeterPawn:
Nur mal so: ich habe EDV studiert.
Wenn Du ein technisches Studium absolviert haben solltest, dann müßtest Du die Maxime kennen: alles was technisch irgendwie möglich ist, wird auch gemacht.
Ich "predige" dies seit über 30 Jahren und kenne von "voller Zustimmung" bis "dich müßte man für solche Bemerkungen aufhängen" alles.
Seit E. Snowden sind nun auch meine "potentiellen Henker" auf einmal verstummt oder haben sich irgendwo versteckt.
Und wir sehen ja nun tagtäglich immer deutlicher, daß unsere angebliche Demokratie hier ein Überwachungs- und Polizeistaat "bester Güte" ist. Was mich dann doch etwas überrascht, ist, daß lt. offizieller Umfragen bereits über die Hälfte der Bevölkerung das auch so offen zugeben. Also auch ein Teil meiner "Henker" statistisch darunter sein müßte.

Also:
Beitrag sehr gelungen, besonders für die Nicht-Techniker hier. Ob die ihn allerdings in Ruhe und komplett lesen und verstehen ...
Kommentar dazu aus meiner Sicht - siehe Zeilen zuvor - nicht weiter notwendig.
 
  • Like
Reaktionen: peterman
Und wir sehen ja nun tagtäglich immer deutlicher, daß unsere angebliche Demokratie hier ein Überwachungs- und Polizeistaat "bester Güte" ist. Was mich dann doch etwas überrascht, ist, daß lt. offizieller Umfragen bereits über die Hälfte der Bevölkerung das auch so offen zugeben.
Im Comic würde es vielleicht so stehen:
Code:
Wir befinden uns im Jahre 2 n.Snowden. Ganz Deutschland ist vom BND besetzt... Ganz Deutschland? Nein! Ein von unbeugsamen Mahnern bevölkertes Forum hört nicht auf, den Eindringlingen Widerstand zu leisten.
Das Thema "überbordender Überwachungsstaat" ist als Fiktion so alt wie - sagen wir mal - der Film an sich und auch in der Literatur hinreichend zu finden. Der einzige Unterschied ist, daß aus der Fiktion schleichend Realität wird. Glücklicherweise bin ich selbst so alt, daß ich den "richtigen" Überwachungsstaat (sagen wir mal ab 2040, wenn dann die Kritiker nicht mehr ignoriert, sondern wegen ihrer Ansichten weggesperrt werden) nur noch als dementes Wrack erleben sollte - wenn ich es überhaupt so lange schaffen sollte.

Die Frage, warum der "Auslandsgeheimdienst" BND eigentlich in Deutschland schnüffelt, stelle ich mir schon gar nicht mehr ... ich kann das Geseiere dazu nicht mehr hören und würde jeden Politiker, der seinerseits rumheult, daß man mit effektiverer Zusammenarbeit (= effektivere Überwachung der gesamten Bevölkerung) viel bessere Resultate erzielen könnte, am liebsten für 4 Wochen ins Dschungelcamp schicken, aber mit 24h-Live-Kamera. Vielleicht gewinnt er dann mal einen Eindruck davon, was das Ergebnis seiner Forderungen sein könnte.

Aber das ist alles OT hier, ich will auch keine solchen Diskussionen hier führen. Mich nervt es nur, wenn der Anwender für dumm verkauft wird. Wenn ein Hersteller (in diesem Fall wieder AVM, gilt auch für andere) einfach zugeben würde, daß man sich mit so einem Gerät alle möglichen Lauscher in sein Heimnetz einlädt (OpenWRT mal außen vor), dann hätte ich in #1 gar nichts gehabt, was ich kritisieren könnte. Das wurde erst möglich, weil es einen offensichtlichen Widerspruch zwischen dieser Veröffentlichung und der vorhandenen Firmware sowie anderen (autoritativen) Quellen im Netz gibt. Andere Kommentare von AVM (z.B. auf Anfragen von heise.de) sind genauso schwammig und ich frage mich immer wieder, warum da die Redakteure (die es ja nun eigentlich besser wissen müßten), solche Sachen dann auch noch veröffentlichen, ohne sie mal zu hinterfragen. Das ist dann eben eher "Sprachrohr" als "Journalismus", aber auch das ist offenbar ein neuer Trend und hier höre ich jetzt auch auf, ehe es wieder in die Richtung einer Diskussion mit politischem Hintergrund läuft. Nicht daß ich an solchen Diskussionen nicht auch mein Vergnügen hätte ... aber es gibt geeignetere Plattformen dafür, hier geht es mir eher um die technischen und rechtlichen (solange geschützte/schützenswerte Rechte wenigstens noch auf dem Papier existieren) Hintergründe.
 
@ PeterPawn:

Äußerst informative, inhaltlich auch für Laien wie mich gut nachzuvollziehende Doku über die Fähigkeiten der AVM-Implementation von TR069.
Vielen Dank dafür !
Nun hätte ich am Rande noch eine (technische) Restfrage:
Wenn ich es richtig verstanden habe, legt TR069 im Wesentlichen die Möglichkeit(en) fest, wie auf ein CPE zugegriffen werden kann, kümmert sich aber weniger um das, was dann getan wird. Um die jeweilige Implemenation in der CPE kümmert sich also dann der Hersteller der Box und/oder der Provider.
Aber wie finden denn nun, natürlich nur im besten Fall des FW-Updates seitens des Providers zwecks Schließen einer Sicherheitslücke, die beiden Königskinder zueinander ? Sprich: Wie könnte konkret der Mechanismus aussehen, der die providerseitige Benutzung von tr069fwupdate zuläßt ? Da gehören dann doch nach meinem Verständnis u.A. Datei-Berechtigungen dazu .... (?) Es sei denn, daß in allen im Betrieb befindlichen Boxen ein Ausführen von tr069fwupdate für einen bestimmten Benutzer schon entsprechend hardcoded durch den Hersteller der FW sichergestellt ist .... (?)
Nochmal vielen Dank und Grüße,

JD.
 
Zuletzt bearbeitet:
Um die jeweilige Implemenation in der CPE kümmert sich also dann der Hersteller der Box und/oder der Provider.
Richtig verstanden, der konkrete Funktionsumfang (was kann alles eingestellt/ausgelesen werden) wird vom Hersteller festgelegt.

Wie könnte konkret der Mechanismus aussehen, der die providerseitige Benutzung von tr069fwupdate zuläßt ? Da gehören dann doch nach meinem Verständnis u.A. Datei-Berechtigungen dazu
Ich bin mir nicht sicher, ob ich die Frage richtig verstehe. Ich erläutere mal, wie (nach meiner Ansicht) so ein Firmware-Update ablaufen sollte.

Wenn das CPE seinerseits die Kommunikation mit dem ACS beenden will (weil es z.B. nur einen der regelmäßigen "INFORM"-Requests loswerden wollte), dann sendet es einen leeren Request an den ACS. Der kann nun seinerseits mit einer leeren Response antworten, dann ist die Kommunikation beendet. Er kann aber auch auf die Idee kommen, dem CPE jetzt seine "Aufträge" in Form von RPC-Requests zu übermitteln und ein solcher "Befehl" wäre eben "Download". Wie das aussieht und was der ACS da senden muß, ist in der TR-069-Spezifikation (verlinkt in #1) zu finden, im Abschnitt "A.3.2.8 Download" (Seite 95). Auf Seite 97 sieht man dann auch, daß für einen solchen Download ein "Dateityp" festgelegt wird, der den Inhalt der Datei beschreibt. Die Spezifikation umfaßt bereits die Typen
  • 1 Firmware Upgrade Image
  • 2 Web Content
  • 3 Vendor Configuration File
  • 4 Tone File
  • 5 Ringer File
Zusätzlich ist die Definition von "vendor-specific file types" möglich, damit stehen praktisch alle Wege offen, was ein Hersteller da übertragen kann. Aber wir sind ja bei "Firmware-Update" ... da wird dann wohl (wie gesagt, ich will keine Anleitung daraus machen) ein Download-"Befehl" mit dem ersten o.a. Typen an die Box gesendet und die ruft dann ihrerseits (je nach Vorhandensein und Inhalt der restlichen Datenfelder im Request) eines der Kommandos zum Download von der ebenfalls angegebenen URL auf:
Code:
wget %s -O - "ftp://%s" 2>/var/dl_err | /usr/www/cgi-bin/firmwarecfg stream |%s tar xvf -
wget %s -O - "ftp://%s:%s@%s" 2>/var/dl_err | /usr/www/cgi-bin/firmwarecfg stream | tar xvf -
httpsdl%s -O - "%s" 2>/var/dl_err | /usr/www/cgi-bin/firmwarecfg stream |%s tar xvf -
httpsdl%s -O - "%s" "%s" "%s" 2>/var/dl_err | /usr/www/cgi-bin/firmwarecfg stream | tar xvf -
Wie man sehen kann, wird die geladene Datei erst einmal direkt an "firmwarecfg" übergeben, das macht dann mit dem Parameter "stream" erst einmal die Gültigkeitsprüfung der Datei (wahrscheinlich Signatur auch) und gibt das Ergebnis in diversen Dateien in /var/tmp zum Besten. Aber auch wenn die Prüfung schief gehen sollte bzw. wird (das weiß firmwarecfg in der Regel erst, wenn die komplette Datei bei ihm vorbeigekommen ist), wird der Download gleich weiter an ein tar-Kommando geleitet, das ihn dann auch sofort entpackt. Man darf annehmen, daß tr069fwupdate vorher irgendwie sichergestellt hat, daß das Arbeitsverzeichnis auch tatsächlich das Wurzelverzeichnis ist, denn Firmware-Images erwarten normalerweise, nach "/" ausgepackt zu werden.

Anschließend dürfte dann "tr069fwupdate" (wenn das tatsächlich erfolgt, da bin ich noch am Untersuchen) das Ergebnis der Prüfung durch "firmwarecfg" auswerten und dann wird wohl ganz normal der Update-Prozess gestartet. In "tr069fwupdate" sind jedenfalls die möglichen Aufrufe von "prepare_fwupgrade" (das beendet die nicht benötigten Dienste, damit das Update "ungestört" bleibt, ggf. wird der Speicher der zu beendenden Daemons auch benötigt, das hängt vom Modell ab) auch enthalten:
Code:
root@FB7490:~ $ prepare_fwupgrade
[...]
use: [COLOR="#FF0000"]/bin/prepare_fwupgrade [start|start_from_internet|start_tr069|end] [UPNP][/COLOR]
root@FB7490:~ $ strings /usr/bin/tr069fwupdate | grep prepare
/bin/prepare_fwupgrade
root@FB7490:~ $ strings /usr/bin/tr069fwupdate | grep start
__bss_start
start
/var/tmp/firmware_update_started
start_from_internet
start_tr069

Fazit: Bei einem Download-Request des ACS mit "FileType='1 Firmware Upgrade Image'" wird die FRITZ!Box wohl das File von der angegebenen URL laden und den Update-Prozess starten. Daß das am Ende auf der Box auf einen Aufruf von "tr069fwupdate" hinausläuft, muß der ACS ja gar nicht wissen. Für ihn sollen sich alle CPE, die einen Download-Request für Firmware-Updates unterstützen, identisch verhalten. Wie das der Hersteller am Ende umgesetzt hat, interessiert den ACS nicht. Welche anderen Dateien der Hersteller noch für den Download über die "vendor-specific file"-Erweiterungen bereitstellt, interessiert den ACS vielleicht am Ende (er braucht für die richtige Datei ja den korrekten Typ), ist aber der TR-069-Spezifikation vollkommen egal.

Analog läuft das bei einem Upload (Abschnitt "A.4.1.5 Upload"). Da sind zwar im TR-069 auch "Dateitypen" vorgesehen (S. 111):
  • 1 Vendor Configuration File” [DEPRECATED]
  • 2 Vendor Log File” [DEPRECATED]
  • 3 Vendor Configuration File <i>
  • 4 Vendor Log File <i>
Es besteht aber auch wieder die Möglichkeit, "vendor-specific file types" zu benutzen. Was der "Vendor" dann da überträgt, entscheidet wieder nur er.

Daher gibt es für mich auch gar keine Alternative (höchstens noch permanentes Probieren) zur Offenlegung der Dokumentation durch AVM, wenn man auch nur annähernde Transparenz dort erreichen will. "Annähernd" nur deshalb, weil man sich dann immer noch darauf verlassen müßte, daß eine solche Dokumentation (A) stimmt und (B) vollständig ist und daß es nicht noch irgendwelche "versteckten" Funktionen für "spezielle Provider" gibt. 1&1 als Beispiel für einen in der Firmware hinterlegten ACS hatten wir schon ... die Konfiguration des KDG-Homespots muß auch irgendwie erfolgen, denn über "boxfeaturedisable" läuft das wohl nicht mehr, da wird bei der 6490 nur noch das TV eingeschaltet, wenn es der Provider zuläßt.

Auch wenn eine Dokumentation vielleicht nicht den letzten Zweifel ausräumen würde (das ist bei ClosedSource eben schwer), wäre sie doch ein Schritt in die richtige Richtung. So bleibt der Community wohl nichts weiter übrig, als diese Möglichkeiten Stück für Stück selbst zu erkunden ... es besteht zwar eine gewisse Deckungsgleichheit zwischen den für TR-064 von AVM dokumentierten Möglichkeiten und denen bei TR-069, aber schon der Blick in die jeweiligen Plugins (eigentlich schon der Blick auf die Größe der Dateien) offenbart, daß die Möglichkeiten bei TR-064 nur eine Teilmenge von TR-069 sind.
 
Wie immer höchst interessanter Beitrag... wenn ich das richtig interpretiere und mal vereinfacht ausdrücken will, sind also zwei Gefahren:

a) Hack aufgrund nicht sicherer Verbindungen bzw. fehlender Server Verifizierung beim Download.
b) "Hack" durch den Provider, der an mehr rankommt an was er sollte bzw. anderen bösen Stellen eine Schnittstelle zur Verfügung stellt bzw. stellen muss.

Bei beiden redet AVM die Sache schön. Beim einen werden Probleme im Standard ignoriert, beim anderen werden Daten übermittelt, die abseits jeden Standards sind, da AVM-spezifisch und eigentlich für eine Fehlerbehebung völlig irrelevant sind (man kann das Ganze eigentlich auf Reset + Neukonfiguration reduzieren).

Was lernt man daraus?
- Anbieter mit Routerzwang meiden, dann behält man die Hohheit über das was in den eigenen Räumen vorgeht.
- TR-069 abschalten, die Einrichtung geht eigentlich recht schnell und ist i.d.R. eine einmalige Sache.

Für mich persönlich wäre es ja der Gau, wenn z.B. Kabelanbieter oder auch manche DSL-Anbieter ohne Weiteres auf mein Heimnetzwerk und ggf. angeschlossenen USB-Laufwerken zugreifen können. Aber es ist ja vermeidbar.
 
Fazit: Bei einem Download-Request des ACS mit "FileType='1 Firmware Upgrade Image'" wird die FRITZ!Box wohl das File von der angegebenen URL laden und den Update-Prozess starten. Daß das am Ende auf der Box auf einen Aufruf von "tr069fwupdate" hinausläuft, muß der ACS ja gar nicht wissen.

Also muß sich AVM darum kümmern, daß die Ausführung bspw. von "tr069fwupdate" (oder einem anderen Programm auf der Box, Abhängig vom von Dir erwähnten ACS-Requests) "korrekt", also mit den passenden Berechtigungen, ausreichenden Download-Platz, richtigen Pfaden usw. ausgeführt wird ?
Also nochmal zusammenfassend:
ACS sendet Request "Download" (FileType wasauchimmer) ->
der Daemaon auf dem CPE bekommt diesen Request und führt, abhängig vom Request-Typ (und den "%s") entsprechende Programme, Scripte, etc. auf der Box aus ?

Das bedeutet, jegliche Übertragungskontrolle, Analyse des Inhaltes und der "Authentifizierung" des Heruntergeladenen (also auch passenden File-Berechtigungen) obliegt dem Hersteller der FW ?
Nehmen wir also an, ich benutze eine geeignete Python-Klasse zu TR069, kenne einige MAC-Adressen geeigneter Router und passe meine Requests ("%s") entsprechend an, dann kann ich dafür sorgen, daß ein CPE sich über eine http-Verbindung eine neue FW besorgt, diese installiert und mir brav eine Quittierungs-Message schickt ?
Grüße,

JD.
 
ohne Weiteres auf mein Heimnetzwerk und ggf. angeschlossenen USB-Laufwerken zugreifen können. Aber es ist ja vermeidbar.
Ich habe es vielleicht nicht deutlich genug gemacht ... die TR-069-Implementierung an sich erlaubt wohl keinen direkten Zugriff auf die FRITZ!Box, damit nicht auf das LAN und den angesteckten USB-Speicher.

Aber sie ermöglicht es einem externen Angreifer (ob Provider, Exekutive oder tatsächlich "bad guys" - auch bei einem Provider verdienen sicherlich nicht alle Mitarbeiter mit Zugang zu Technik so blendend, daß sie entsprechenden Verlockungen immer widerstehen können), die in der Box hinterlegten Anmeldeinformationen auszulesen (und am Ende auch zu entschlüsseln). Wenn es parallel noch möglich ist, (event. noch nicht offene) Fernwartungszugänge einzurichten - ggf. auch nur temporär -, kann man mit den erbeuteten Zugangsdaten dann allerdings tatsächlich sich ganz normal aus dem WAN einloggen und hat dann Zugriff mit den Rechten des gewählten Kontos. Wenn man schon Zugriff auf die komplette Kontoliste hat, nimmt man natürlich auch ein Admin-Konto.

Auch sonst habe ich so meine Zweifel, ob die gefundenen Zeichenketten in der TR-069-Implementierung tatsächlich den Schluß nahelegen, daß da alles ordentlich gegen "command injection" durch den Provider abgesichert ist und der nicht ohnehin über entsprechende Lücken direkt Kommandos auf der Box ausführen könnte. Für AVM ist offenbar der Provider eben nicht einmal ein potentieller Feind, er ist ja ihr eigener Kunde und der Anwender eigentlich nur noch das notwendige Übel, weil der Kunde sonst nicht genug Geräte abnehmen würde. Sicherheit auf der LAN-Seite und Sicherheit zum Provider auf der WAN-Seite sind Stiefkinder ... die tatsächliche Sicherheit der WAN-Seite interessiert mich nur peripher, da wird schon der nächste Angriff die Lücken aufdecken.

Aber die ganzen Spielereien, die man auf diesem Wege eventuell machen könnte, die interessieren mich tatsächlich ... zum Beispiel die Frage, ob es nicht durch simple Übernahme des DNS-Servers einer FRITZ!Box möglich wäre, den Download einer Datei von einem falschen Server sogar dann zu initiieren, wenn die TR-069-Kommunikation verschlüsselt ist. Wenn der Download-Server und der ACS unterschiedliche DNS-Namen haben und man den Namen des Download-Servers kennt, dann wird nur dieser ge"fake"t (oder einfach gleich alles mit der Adresse eines Proxies beantwortet) und der eigene untergeschobene Download-Server antwortet dann eben auf jeden Request (weil man ja nicht sehen kann, was der ACS da angewiesen hat) mit der falschen Datei.

Dann hätte man einfach durch eine - u.U. sogar im GUI erreichbare - Einstellung wieder eine Möglichkeit, die TR-069-Kommunikation zu mißbrauchen. Ob da von der Box tatsächlich der eingestellte DNS genutzt würde und ob es überhaupt möglich ist, einen Download von einer anderen Adresse als vom ACS zu "befehlen" (der Standard sieht allerdings die Angabe einer kompletten URL vor, also müßte AVM da zusätzliche Tests machen), ist aber alles vollkommen ungeklärt. Das sind nur die ersten Gedanken gewesen, die mir beim Finden der "Download"-Kommandos durch den Kopf geschossen sind, als ich mich gefragt habe, wo da bei "httpsdl" wohl die Optionen geblieben sind.

Das ist auch alles schon lange her, das sind ja keine wirklich neuen Erkenntnisse - ich habe fast zwei Jahre gesammelt und komme erst jetzt dazu, das alles mal aufzuschreiben und zu dokumentieren. Es hat sich aber nur wenig geändert, für eine grundlegende Renovierung oder einem Review habe ich bisher keine Anzeichen gefunden.

dann kann ich dafür sorgen, daß ein CPE sich über eine http-Verbindung eine neue FW besorgt, diese installiert und mir brav eine Quittierungs-Message schickt?
Wenn die CPE Dich als ACS sieht (bei unverschlüsselter Kommunikation ja nicht so schwer zu realisieren, wenn man irgendwo auf dem Transportweg sitzt, bei HTTPS und korrekter Zertifikatprüfung müßtest Du schon den eingestellten ACS in der Firmware irgendwie ändern), dann steht es Dir tatsächlich frei, solch einen Request zu senden.

Was die aktuelle Firmware mit so einem Request macht, interessiert den ACS nicht wirklich, der will unter Umständen nicht einmal eine positive Quittung, weil er - sollte das Update ohnehin einen Neustart erfordern - beim nächsten Start dann ohnehin die Information kriegt, welche Firmware-Version das CPE jetzt verwendet.

Für die Validierung der angebotenen Firmware (und theoretisch auch der übermittelten Konfigurationsdateien) ist ausschließlich das CPE zuständig.

EDIT:
Auch das noch einmal ausdrücklich festgehalten: Bei CWMP geht die Verbindung immer vom CPE aus, da kann also auch der richtige ACS nur über einen "asynchronen Request" (dazu braucht man den offenen Port für TR-069) einen Verbindungswunsch mitteilen. Die Verbindung wird auch dann immer noch vom CPE selbst aufgebaut. Insofern ist das also nicht einfach möglich, mit einer passenden Klasse und ein paar IP-Adressen einfach wilde Downloads zu organisieren. Das klappt nur dann, wenn das CPE "fertig hat" (der leere Request), nur dann darf der ACS seine Wünsche äußern.
 
Zuletzt bearbeitet:
Wenn die CPE Dich als ACS sieht ...

Also bestünde die Aufgabe für einen potentiellen "Bad guy" darin, dies zu realisieren ?
Wenn es also gelänge, bspw. Kontrolle über den/die Rechner hinter 80.228.251.206 zu bekommen oder diese IP jemand anderem vorzugaukeln, stände dem o.g. Mechanismus nichts mehr im Wege ?
Sind alle ACS in der AVM-FW "hardcoded", also entweder via IP oder Domain-Namen, aber dennoch konkret benamst ? Oder gibt es auch "dynamische" Quellen ?
Grüße,

JD.
 
Wenn das ein EWETEL-ACS sein sollte und der tatsächlich unverschlüsselt über ein fremdes Netz kommuniziert, dann ist das wie bei jeder anderen TCP/IP-Verbindung auch.

Bei HTTPS findet noch eine Prüfung der Authentizität der Gegenstelle statt, aber sogar das läßt sich über entsprechende Einstellungen in der tr069.cfg der FRITZ!Box verhindern - ein weiterer Grund, warum die "sichere Kommunikation" bei TR-069 auch mit Kenntnis von AVM keineswegs immer gegeben ist, denn diese Optionen hat ja kein Provider in die Firmware eingebracht.

Welche anderen "hard-codierten" ACS es noch gibt, weiß ich gar nicht ... da die "soft-codierten" aber in der erwähnten "providers*.tar" stehen, läßt sich das ja leicht feststellen. Man muß einfach nur nach den dort hinterlegten ACS-URLs in den Zeichenketten des "ctlmgr" suchen ...

Eine wirklich dynamische Einstellung des ACS ist nur über die DHCP-Option 43 möglich, die kann seit einiger Zeit auch im GUI offiziell deaktiviert werden.

Ansonsten werden die TR-069-Einstellungen (diese Info könnte aber auch veraltet sein, es hat sich in den 06.10-Labors bis zur 06.20 ständig geändert) beim Start des "ctlmgr" anhand des "active_provider" in der ar7.cfg überprüft (und früher tatsächlich auch jedesmal überschrieben), dazu läßt der "ctlmgr" direkt das angesprochene tar-File entpacken:
Code:
rm -rf /var/tmp/providers
/var/tmp/providers
tar xf %s
cat %s | tar xf -
providerlist.cpp
activename
guiflag
displayId2name
other
active_provider
activate_on_start
activation_done
%s/%s
%s/desc.txt
/etc/default/%s/providers
[COLOR="#FF0000"]/etc/default/%s/providers-%s.tar[/COLOR]
no valid providerlist found!
Das sind einige der Strings, die sich im ctlmgr dazu finden lassen, der verwaltet auch eine Liste der möglichen Provider (ob immer oder "on demand", weiß ich nicht), die dann vom GUI abgefragt werden kann (providerlist:settings/*).
 
Moin die Damen und Herren

Ich hoffe das dies der aktuellste Fred zum Thema TR-69 ist. Die Frage ob TR-069 gefährlich ist oder nicht hatte ich schon vor geraumer Zeit für mich entschieden - obwohl ich zum dem Zeitpunkt noch nicht eure technischen Analysen gelesen hatte. Ich habe das aufgrund grundsätzlicher Überlegungen mit "muss aus Firmware raus" entschieden weil ich ab dem 01.08.2016 nicht einsehe warum ein potentieller Trojaner auf soch einem sicherheitstechnisch sensiblen Gerät vorgehalten werden soll.
In einem Anfall von Dummheit versuchte ich via AVM Support herauszufinden ob AVM Überlegungen anstellt spätestens ab dem Stichtag des Wegfalls des Routerzwangs eine Firmware anzubieten welche keinerlei Elemente/Module für TR-069 beinhaltet. Eigentlich erwarte ich dies als Direktkunde schon immer (alle meine bisherigen AVM FB 7xxx Modelle habe ich selbst gekauft), als Besitzer möchte ich meine Besitzrechte uneingeschränkt ausüben können. Bisher bietet AVM aber nur ein "abschalten" der TR-069 Funktionalität an. Dies ist mir nicht genug zumal AVM selbst schon öfter bei neuen Firmware releases nicht alte Einstellungen übernimmt sondern eigene Defaults setzt - unschön wenn es TR-069 enable/disable betrifft.

Da ich zu Unitymedia gewechselt bin bin ich nun mit bisher ungeahnten Effekten des Wirkens von hochqualifizierten Supportpersonals konfrontiert.
NATÜRLICH haben DTAG und Unitymedia im kollektiven Versagen die Portierung meiner Rufnummern vergeigt.
NATÜRLICH hat die Provisionierung zwischen ACS und FB6490 nicht geklappt und hat einen Mix von unregistrierten Interims-Nummern und portierten Nummern auf der FB hinterlassen.
NATÜRLICH war das erste was der UM-Techniker machte ein Factory-Reset der FB OHNE mich darüber zu informieren.

Ich bemerkte dies erst als ich nicht mehr auf meine Server zugreifen konnte, ich habe nicht aus Jux ein Businessprodukt mit fester IP bei UM gewählt, ich hoffte auf höhere Kompetenz im Support.
Zu retten war die Situation nicht mehr, mit dem Factory-Reset waren auch meine Möglichkeiten des Fernzugriffs auf die FB dahin.
Aus generellen Erwägungen bezüglich IT Sicherheit an sich und um die Anschlussverfügbarkeit durch Fernhalten von unqualifiziertem Personal zu erhöhen suche ich jetzt nach einer Modem-Router Kombi OHNE TR-069.
Wenn AVM da nicht mitzieht müsste ich auf getrennte Boxen umsatteln.

Meine Frage(n) an Peter Pawn & JohnDoe42:

- Könnt ihr mich weiter argumentativ aufladen?
- ist es "einfach" wie bei diesem Freetz-mod die TR-69 Funktion "auszubauen" ohne wesentliche Funktionen "kaputtzumachen"?
- gibt es ähnliche Probleme mit TR-064 welches IMHO nur für die Fon-App genutzt wird?
- gibt es noch andere Module (ausser VPN) welche potentiell vorbereitete backdoors sind welche in der Firmware rumlungern?


Grund/Ziel: Obwohl der AVM Support kompetent und sehr hilfsbereit ist kann er mir bei meinem Anliegen nicht weiterhelfen, ich möchte jetzt versuchen mit Entscheidern von AVM zu reden. Sollte dies scheitern würde ich eine Petition unter "AVM-Benutzern" probieren - ob das AVM beeindrucken wird ist natürlich eine andere Frage.
 
Zuletzt bearbeitet:
Moins


gibt es noch andere Module (ausser VPN) welche potentiell vorbereitete backdoors sind welche in der Firmware rumlungern?
Mir waren die Taster für DECT/WLAN schon immer suspekt.
Besonders weil Funkgeräte möglichst zentral und deswegen leicht zugänglich aufgestellt werden müssten.
Dazu hat PeterPawn zwar schon einen lesenswerten Spaßbeitrag geschrieben, aber wer weiß. :confused:
Um die eigene Datensicherheit zu gewährleisten...
(Ex Innenminister: Jeder ist selbst für seine Datensicherheit verantwortlich)
...braucht es heutzutage ein mehrsemestriges IT Studium.

Da ich nicht auf ein solches aufbauen kann, setze ich persönlich auf Individualisierung.
...leider macht einem AVM das auch nicht mehr so leicht.

Und: Ja, nach der Ersteinrichtung wird sofort TR-069 deaktiviert und eine Sicherungsdatei mit Passwort erstellt
 
Zuletzt bearbeitet:
Die Unfähigkeit des Support-Personals eines Kabelanbieters (bei mir war es KDG) war auch für mich mal der Anlaß, mich mit den Interna der DOCSIS-FRITZ!Boxen zu beschäftigen, während es bei den DSL-Boxen über lange Jahre auch bei mir mehr um das "Benutzen" der Funktionen ging.

Bei den DSL-Boxen stelle ich (für mich, aber mein Anbieter macht auch kein TR-069) einfach einen ACS im LAN ein, das muß aber bei DOCSIS-Modellen nicht funktionieren, da dort das gesamte TR-069 u.U. über ein gesondertes logisches Interface (z.B. "voip+tr069") abgewickelt wird (sieht man in den Support-Daten, ist aber auch providerabhängig).

An hochqualifizierten Technikern des Anbieters (vermutlich darf der L1-Support gar nichts anderes als "factory reset" auslösen) führt wohl weder derzeit noch in der Zukunft ein Weg vorbei ... manchmal bin sogar ich geneigt, etwas Verständnis für solches Vorgehen zu entwickeln (und für "Ausnahmen" ist dann in solchen Standardabläufen eben kein Platz), wenn ich mir so einige "Fehlermeldungen" in Erinnerung rufe und die teilweise recht fruchtlosen Diskussionen, wenn es die Fragesteller dann letztlich doch alles besser wissen.

Das ist alles ein sehr zweischneidiges Schwert ... ich bin in der Konsequenz damals dann von einer (bis dahin nur logisch getrennten) Netzwerk-Topologie auf eine VLAN-basierte gewechselt (nachdem die vom Anbieter zurückgesetzte FRITZ!Box dann DHCP-Server spielen mußte und damit (zumindest teilweise) meine Daten auf einmal alle ungeschützt im Internet zu sehen waren, die ansonsten (bei abweichendem Gateway) ganz ordentlich über VPN-Verbindungen getunnelt worden wären) und habe damit die FRITZ!Boxen damals (es waren ohnehin mehrere, wo eine Lastverteilung stattfinden mußte) eigentlich vollkommen gegen den Rest meines Netzes isoliert ... alles ist nur noch per NAT erreichbar und jede FRITZ!Box sieht nur die Adresse des zentralen Gateways, was auch Nachteile hat, weil die FRITZ!Box die Sitzungen anhand der IP-Adresse verwaltet und damit praktisch jede Session von diesem zentralen Gateway kommt - klappt in einer die Authentifizierung nicht, werden alle anderen Sitzungen von derselben Adresse (bei mir also praktisch alle) ebenfalls abgebrochen; das gibt wunderschöne Effekte, wenn sich das aufschaukelt.

Daß eine Ferneinwirkung auf die FRITZ!Box (selbst ein "factory reset") aus meiner Sicht erst nach der (wie auch immer gearteten) Zustimmung durch den Kunden wirksam werden sollte, habe ich seit Jahren (mind. 3 sind es jetzt schon) immer wieder propagiert (ob in diesem Thread auch, weiß ich gar nicht) ... ich habe ja nichts prinzipiell gegen TR-069, ich halte es sogar für nützlich, wenn es mit Einwilligung des Kunden und nicht sogar gegen seinen ausdrücklichen Willen eingesetzt wird und wenn man tatsächlich deutlich macht, was darüber wirklich alles geht und was nicht. Die Verschleierung der Möglichkeiten lädt nur zu Spekulationen (und eigenen Tests) ein und wenn Kriminelle diese Schnittstellen ausnutzen könnten, weil sie richtig dokumentiert wurden, dann stimmt an der Implementierung der Schnittstellen ohnehin etwas nicht.

Die Geschichte mit den plötzlich offenen WLANs bei einigen Vodafone-Kunden (muß so ca. 6 Monate her sein) ist ja nur ein Beispiel, wie (vermutlich) der Anbieter durch entsprechende Fehlkonfigurationen nicht nur ein Loch in sein eigenes Netzwerk reißen kann ... heutzutage sind durch so ein offenes Netz eben noch viele andere Geräte in den Netzen der Kunden angreifbar (das "IoT" läßt grüßen) und da stellt sich dann ohnehin die Frage, wer da die Verantwortung für Schäden übernehmen will/soll, die sich aus solchen Fehlkonfigurationen ergeben und vor allem, wie man das auch noch gerichtsfest beweisen kann, was da so machbar ist und daß es eben nicht vollkommen abwegig ist, daß da ein Dritter seine Hände im Spiel hatte ... und das gilt nicht nur bei der Störerhaftung, bei entsprechenden Aktoren (richtige Heim-Automation, wo man dann auch mal die Raumtemperatur anpassen kann o.ä.) kann das auch richtigen finanziellen Schaden nach sich ziehen.
 
@Jonas12:
Ist lange her (auch dieser Thread) und ich müßte erst wieder in den Aufzeichnungen suchen.

Was passiert denn, wenn Du mit der "Download"-Methode und FileType="1 Firmware Upgrade Image" einen Download anweist?

Soweit ich mich erinnere, wird der entsprechende Download in der Box gestartet (und zwar gleich, im Gegensatz zum "ScheduleDownload") über einen Aufruf von "tr069fwupdate" ... und wenn das File alle Prüfungen besteht (das sind dieselben, denen auch ein Update per GUI unterworfen wird, der Provider kann also nicht einfach am Image etwas ändern, solange er es nicht wieder gültig signieren kann - wie das geht, steht in einem anderen Thread), dann wurde es auch installiert (durch den Aufruf der "./var/install" im Image).
 
  • Like
Reaktionen: Jonas12
Danke für den Hinweis.
Nach dem Wechsel auf einen anderen ACS funktionierte das Update über die Download Funktion.

Sent from my A0001 using Tapatalk
 
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.

IPPF im Überblick

Neueste Beiträge