tl;dr:
Was ist dran an den Behauptungen von AVM im heise.de-Artikel und wo sind die Widersprüche/Beweise in der AVM-Firmware zu finden?
Die einzelnen Aussagen stimmen jeweils für sich betrachtet, der dadurch hervorgerufene Gesamteindruck ist aber irreführend.
So im Tenor: "Wir hören Fr. Merkel zur Zeit nicht ab, sie telefoniert nämlich gerade nicht.".
Das ist eine seltsame Argumentation von AVM:
Danke, ich kam mir jedenfalls beim Lesen schon vor wie im falschen Film.
So nimmt eine FB natürlich mit einem ACS auch dann Kontakt auf, wenn der kein HTTPS fordert. Das Beispiel KBW hat ja schon jemand genannt, bei KDG sieht es auch nicht anders aus:
http://axs.technik.<domain>:7547/live/CPEManager/CPEs/genericTR69 (geändert, nicht aus Geheimhaltung, nur damit niemand dort klickt)
Dann noch das:
heise.de schrieb:
"So überprüft die Fritzbox standardkonform die Authentizität des ACS mittels Zertifikaten und anhand einer fest eingestellten Liste vertrauenswürdiger Zertifizierungsstellen, ähnlich wie Browser dies beim Online-Banking machen. Nur bei positiver Prüfung wird die Verbindung weiter aufgebaut und dem ACS vertraut. Die Liste vertrauenswürdiger Zertifizierungsstellen kann zur Laufzeit nicht verändert werden."
Bei schon mindestens zwei Providern mit HTTP ohne S beim TR-069 ist es zwar schon fast egal, aber die FB (konkret aktuelle Labor für 7390) enthält z.B. folgende Zertifikate:
Code:
================================
issuer= /C=US/O=Equifax/OU=Equifax Secure Certificate Authority
subject= /C=US/O=Equifax/OU=Equifax Secure Certificate Authority
578d5c04
================================
issuer= /O=Arcor AG Co. KG/CN=acs.arcor-ip.de
subject= /O=Arcor AG Co. KG/CN=acs.arcor-ip.de
67440fd9
================================
issuer= /C=ZA/ST=Western Cape/L=Cape Town/O=Thawte Consulting cc/OU=Certification Services Division/CN=Thawte Premium Server CA/[email protected]
subject= /C=ZA/ST=Western Cape/L=Cape Town/O=Thawte Consulting cc/OU=Certification Services Division/CN=Thawte Premium Server CA/[email protected]
98ec67f0
================================
issuer= /C=US/O=VeriSign, Inc./OU=Class 3 Public Primary Certification Authority
subject= /C=US/O=VeriSign, Inc./OU=Class 3 Public Primary Certification Authority
415660c1
================================
issuer= /C=US/O=GeoTrust Inc./CN=GeoTrust Global CA
subject= /C=US/O=GeoTrust Inc./CN=GeoTrust Global CA
2c543cd1
================================
issuer= /C=US/O=VeriSign, Inc./OU=VeriSign Trust Network/OU=(c) 2006 VeriSign, Inc. - For authorized use only/CN=VeriSign Class 3 Public Primary Certification Authority - G5
subject= /C=US/O=VeriSign, Inc./OU=VeriSign Trust Network/OU=(c) 2006 VeriSign, Inc. - For authorized use only/CN=VeriSign Class 3 Public Primary Certification Authority - G5
b204d74a
Da das - mit Ausnahme des Arcor-selfsigned - alles offzielle CAs sind, dürfte es nicht allzu schwer sein, ein Zertifikat zu beantragen, was von einer dieser CAs ausgestellt wurde. Wenn es dann noch zum Namen des eingetragenen ACS-Servers paßt (dazu komme ich gleich noch), sehe ich irgendwie nicht so richtig, wo da der Sicherheitsgewinn der Aussage
heise.de schrieb:
"Der Standard sieht eine starke Authentifizierung des ACS gegenüber dem CPE mittels Zertifikaten vor."
seitens AVM eigentlich liegen soll. Und wie wir gleich sehen werden, ist auch das die volle Wahrheit, der
Standard sieht (Seite 12, Abschnitt 2.1, Abbildung 2) wirklich Verschlüsselung per SSL/TLS zwischen der HTTP-Schicht und dem TCP-Stack vor (wir setzen jetzt der Einfachheit halber mal Verschlüsselung und Authentifizierung gleich, da das eine ohne das andere nicht funktionieren wird), gleichzeitig wird das jedoch auf Seite 20 in Abschnitt 3.3 wieder relativiert:
TR-069-Spezifikation schrieb:
The use of SSL/TLS to transport the CPE WAN Management Protocol is RECOMMENDED, although the protocol MAY be used directly over a TCP connection instead.
Da steht dann eben auch, es geht notfalls auch ohne Verschlüsselung. Wenn man AVM nun blind vertrauen will, kann man ja mal für einen Augenblick annehmen, AVM würde das so interpretieren, daß sie (der Client (das CPE) ist schließlich tonangebend beim TR-069) sich auf unverschlüsselte (und damit natürlich automatisch auch nicht über Zertifikate authentifizierte) Verbindungen gar nicht erst einlassen. Wie wir oben schon gesehen haben, ist das offenbar nicht so, zumindest für KabelBW und Kabel Deutschland. Zwar haben wir es hier im Moment mit zwei Kabelanbietern zu tun und dort kann man in gewissen Grenzen sogar von einem abgeschotteten System ausgehen, da DOCSIS-Geräte i.d.R. das TR-069 in einer gesonderten virtuellen Verbindung betreiben, aber das ist in der AVM-Firmware eben nicht nur für Kabelanbieter so eingestellt.
Bei 1und1 (auf die besorgten Anfragen dieser Kunden haben sie wohl reagiert, vermute ich einfach mal) ist das noch etwas anders, da wird über "certificate pinning" die Angriffsfläche - dem Anschein nach - weiter eingeschränkt:
Code:
ACS_SSL {
verify_server = yes;
trusted_ca_file = "/etc/default/1und1/root_ca.pem";
}
Download_SSL {
verify_server = yes;
trusted_ca_file = "/etc/default/1und1/root_ca.pem";
}
Das erfolgt aber auch nur für die Provider 1&1, GMX, M-net (VDSL) und O2. Bei allen anderen gelten die "normalen" CAs im AVM-Zweig.
Warum schreibe ich nun aber: dem Anschein nach ?
Weil dieses Zertifikat-Pinning auch nur Augenwischerei ist. In der Datei /etc/default/1und1/root_ca.pem liegen nämlich genau dieselben Zertifikate wie in der Datei im avm-Zweig. Das heißt dann eben auch wieder, jedes von einer dieser 6 CAs unterschriebene Zertifikat - ich hoffe mal, wenigstens der Name muß wirklich stimmen -> "goto fail;" bei Apple war ja auch keine Absicht - wird für einen ACS akzeptiert von der Box.
Der einzige Provider, bei dem das wohl wirklich so könnte, wie es behauptet wird (Prüfung des CN vorausgesetzt), ist M-net:
Code:
================================
issuer= /C=DE/L=Muenchen/O=M-net Telekommunikations GmbH/OU=Internet Services/CN=CA/[email protected]
subject= /C=DE/L=Muenchen/O=M-net Telekommunikations GmbH/OU=Internet Services/CN=CA/[email protected]
ec346328
Bei der Auswahl dieses Providers (nur die VDSL-Variante, die in der Providerliste einer 7390 weder in der deutschen noch der internationalen Version auftaucht) wird zwar theoretisch für die ACS-Prüfung nur ein einziges CA-Zertifikat zugelassen (s.o), leider ist für dieses jedoch auch noch der Pfad (der Auszug stammt aus der deutschen Version) falsch, denn das Verzeichnis "avme" existiert bei einer deutschen Firmware gar nicht:
Code:
ACS_SSL {
verify_server = yes;
trusted_ca_file = "/etc/default/avme/root_ca_mnet.pem";
}
Also, sorry AVM, aber da stimmt so einiges hinten und vorne nicht.
Einschub: Da beginnen dann teilweise auch die Schwierigkeiten beim Entfernen eines Brandings. In den Konfigurationsfiles in der providers-0xx.tar wird eben auch bei AVM-Branding das root_ca.pem-File in dem Ordner vom 1und1-Branding gesucht, wenn man 1und1 als Provider wählt. Da ist AVM selbst nicht so ganz sattelfest (s. avme oben) und beim Entfernen eines Brandings (bei O2 gilt ähnliches für den Pfad bei einer 7390) macht man dann eben auch mal die Provider-Konfiguration teilweise kaputt. Nachdem inzwischen eigentlich alle echten "Branding"-Files ohnehin identisch sind, macht das Anwenden des "Remove branding"-Patches in freetz nur noch bedingt Sinn. Bei Packen des SquashFS werden ohnehin alle Dateien per Hash auf doppeltes Auftauchen geprüft und nur einmal wirklich ins Image geschrieben. Wenn man also den "Overhead" durch die Verzeichnisstrukturen ertragen kann, bringt das Entfernen eines Brandings (nicht das Ändern, bitte nicht verwechseln) aus der Firmware nur noch sehr marginale Vorteile.
Wieso dann die (mal angenommene) Sicherheit über die Identität eines kontaktierten Servers automatisch auch zu einer Garantie wird, daß dieser Server nur in der Hand des Providers liegt, begreife ich bei der ganzen AVM-Argumentation nicht wirklich. Es ist sicherlich sehr heroisch, sich mit
heise.de schrieb:
"Zumindest in Deutschland seien diese Auto Configuration Server Teil einer Infrastruktur mit hohen Anforderungen an das Schutzniveau..."
für die Provider in die Breche zu werfen, aber irgendwie erinnert mich das an andere "technisch hohe Standards in D" (wo man in der Schweiz schon mal die Feuerlöscher dranmontiert). Und die hohen Anforderungen mag es ja geben, das heißt aber leider noch lange nicht, daß sie auch erfüllt werden.
Und beim Vortrag von Shahar Tal ging es eben nie um
direkt angreifbare CPEs, es ging um angreifbare ACS-Software und wie AVM da für alle in der Firmware mit "Zwangs-TR069" hinterlegten Provider die Hand ins Feuer legen will, ist mir schleierhaft. Der ACS ist in keiner Weise seitens der FRITZ!Box (oder irgendeiner anderen CPE) vor Angriffen geschützt, das muß er schon selbst in die Hand nehmen.
Unter diesem Aspekt ist und bleibt es eine unschöne Angelegenheit (man muß nicht gleich Skandal rufen), wenn AVM das TR-069 quasi "durch die Hintertür" in jedem Falle aktiviert, wenn bestimmte Provider eingestellt werden. Welcher Funktionsumfang sich hinter diesem "Litemode" verbirgt, wird ja auch nicht offen gelegt. Jetzt kommt dann noch die Möglichkeit zum Aktivieren eines ACS-Servers per DHCP-Offer dazu (als neues Feature dokumentiert) und dann haut da so ein blöder Sicherheitsforscher dazwischen ...
Nur mal so zum Spaß - für die, die diese Information ansonsten nicht finden - die in der 7390-Labor hinterlegten ACS-Einstellungen für die Provider:
Code:
1und1 -> https://acs1.online.de/;
1und1_lte -> https://acs1.online.de/;
ewetel_adsl -> http://80.228.251.206/live/CPEManager/CPEs/Auth_Basic/avm;
ewetel_lan1 -> http://80.228.251.206/init/avm;
ewetel_smart -> http://80.228.251.206/init/avm;
ewetel_smart_vdsl -> http://80.228.251.206/init/avm;
ewetel_xdsl -> http://80.228.251.206/live/CPEManager/CPEs/Auth_Basic/avm;
gmx -> https://acs1.online.de/;
htpdsl_adsl -> https://acs.htp-apv.de:7547;
htpdsl_vdsl -> https://acs.htp-apv.de:7547;
htpngn_adsl -> https://acs.htp-apv.de:7547;
htpngn_fiber -> https://acs.htp-apv.de:7547;
htpngn_vdsl -> https://acs.htp-apv.de:7547;
kielnet -> http://cm.kielnet.net:7547/live/CPEManager/CPEs/avm;
kielnet_gf -> http://cm.kielnet.net:7547/live/CPEManager/CPEs/avm;
kielnet_vdsl -> http://cm.kielnet.net:7547/live/CPEManager/CPEs/avm;
mnet_vdsl -> https://acs.mnet-online.de;
netcologne_netaachen_dsl1 -> http://trixi.netcologne.de/initial;
netcologne_netaachen_dsl2 -> http://trixi.netcologne.de/initial;
netcologne_netaachen_vdsl1 -> http://trixi.netcologne.de/initial;
netcologne_netaachen_vdsl2 -> http://trixi.netcologne.de/initial;
o2_7270_native -> https://acs.o2online.dnbbs/tr69;
o2_7570_native -> https://acs.o2online.de/nbbs/tr69;
o2_lte -> https://acs.o2online.de/nbbs/tr69;
otwored -> https://acs.o2online.de/nbbs/tr69;
telefonica -> http://acs.be-converged.com:9675;
telefonica_fttb -> http://acs.be-converged.com:9675;
telefonica_fttx -> http://acs.be-converged.com:9675;
vodafone_bytr069_adsl -> https://acsaka.arcor-ip.de:22163/cwmpWeb/CPEMgt;
vodafone_bytr069_vdsl -> https://acsaka.arcor-ip.de:22163/cwmpWeb/CPEMgt;
vodafone_lte6810 -> https://acsaka.arcor-ip.de:22163/cwmpWeb/CPEMgt;
vodafone_lte6840 -> https://acsaka.arcor-ip.de:22163/cwmpWeb/CPEMgt;
wobcom -> https://autoconf.wobline.de:7547/live/CPEManager/CPEs/genericTR69;
- gesamt: 65 Einträge - ( oma_(w)lan + other(_lte) ) = 61 Provider-Einträge
- davon 33 mit aktiviertem TR-069, die Einstellung wird auch immer wieder aktiviert vom ctlmgr
- bei den 33 Providern dann immerhin 15, die nur eine http-URL für den ACS konfiguriert haben
Da hat die ungenannte Quelle bei AVM ja gerade noch einmal Glück gehabt, daß 18 > 15 ist und man unterstellen darf, die Aussage bezog sich auf AVM-Firmware.
heise.de schrieb:
AVM betont: "In Deutschland verwendet die überwiegende Anzahl der Anbieter HTTPS-verschlüsselte Verbindungen."
Das ist ja wirklich "die überwiegende Anzahl der Anbieter" ... :mrgreen:
Etwas unverschämt wird es dann aber doch, wenn man mal die anderen Einstellungen auch noch überprüft und dann folgendes findet:
Code:
ACS_SSL {
verify_server = no;
}
Download_SSL {
verify_server = no;
}
Ich stelle jetzt einfach mal die Behauptung auf (den Beweis versuche ich hinterher zu erbringen), daß da genau die Identitätsprüfung des ACS-Servers seitens der Box abgeschaltet wird und das gilt wohl für die Provider:
Code:
htpngn_fiber
netcologne_netaachen_(v)dsl(1|2) <- das sind 4 verschiedene Einträge, aber ein Provider
wobcom
Das sind - nach meiner Lesart - schon mal 3 Provider (mit 6 Einträgen, damit auch 6 von 33 der TR-069-Provider von oben = 18%), bei denen eben keine Identität durch die Box geprüft wird, das wäre dann - Beweis meinerseits steht noch aus - eine glatte Lüge seitens AVM (vollst. Zitat weiter oben): "Nur bei positiver Prüfung wird die Verbindung weiter aufgebaut und dem ACS vertraut."
Schon die Möglichkeit, es bei einigen Providern offenbar auszuschalten, setzt ja einen anderen Kenntnisstand bei AVM voraus.
Jenseits von SSL-Verschlüsselung und Authentifizierung mit Zertifikaten gibt es dann bei TR-069 eigentlich nur noch die Übertragung von Dateien vom ACS zum CPE, wo eventuell durch den Einsatz des "Signed Package Formats" noch so etwas wie eine Authentifizierung der Quelle (ACS) anhand der Signatur möglich wäre (Anhang E der Spezifikation). Warum nun aber gerade an dieser Stelle die bis dahin eher "schludrige" Sicherheit auf dieser Basis realisiert sein sollte, kann ich nicht so richtig sehen.
Was man dann von
heise.de schrieb:
Via TR-069 können bei der Fritzbox die meisten Zugangsdaten nur gesetzt werden. Ein Auslesen zum Beispiel von VoIP-Credentials ist nicht möglich.
halten soll, muß jeder selbst einschätzen. Wenn ich aber Erfahrungsberichte von 1&1-Kunden berücksichtige, bei denen der Kundenberater (mit Zustimmung des Kunden, aber die ist eher "pro forma" und nicht ein "Freischalten") auch das kundeneigene WLAN-Kennwort auslesen konnte, dann bin ich persönlich (obwohl nicht betroffen) so skeptisch, daß ich diese Aussage ganz genau lese. Und da steht dann eben "die meisten Zugangsdaten" und beim Nichtauslesen nur "VoIP-Credentials". Angesichts der Tatsache, daß bei den meisten Providern die VoIP-Credentials auch von diesen selbst bereitgestellt werden, bin ich sogar bereit, das zu glauben ... es macht ja keinen Sinn, da irgendwelche Daten abzuholen, die man selbst hinterlegt hat.
Hinsichtlich anderer Daten beruhigt mich das aber keineswegs ... TR-069 sieht jedenfalls explizit den Upload von Dateien von einem CPE zum ACS vor und welche Dateien AVM da in Betracht zieht für eine Übermittlung zum Provider, kann man nur raten.
Was ich unbesehen glaube, ist die Behauptung, daß man der Box über TR-069 kein unsigniertes Firmware-Image unterjubeln kann, bei einem Fernwartungsaccount bin ich mir da schon nicht mehr sicher und mit dem geht dann sicherlich noch einiges mehr für einen Angreifer.
Auch die Geschäftbedingungen einiger Anbieter legen eigentlich eine andere Lesart nahe, wenn dort dann steht, der Anbieter darf die Einstellungen des Kunden auslesen, ändern und zurückspielen, wenn dieser seine Zustimmung erteilt. Da stellt sich mir dann die Frage, mit welchen übernatürlichen Kräften die Kundendienst-Mitarbeiter der Anbieter ausgestattet sein müssen, wenn ihnen das ohne das Auslesen der Einstellungen des Kunden über die AVM-Firmware gelingt.
Egal, nachdem jetzt das Zuweisen eines ACS auch per DHCP funktionieren soll, werde ich das einfach einmal probieren mit einer Box an LAN1 (das müßte - wie hinter einem Kabelmodem auch - ja funktionieren ) und dann schaue ich mir einmal genau an, was die Box da so von sich aus mitteilt. Einige ACS-Implementierungen sind ja frei verfügbar, für eine Basisanalyse sollte das ausreichend sein. Dabei teste ich dann auch die verschiedenen ACS_SSL-Einstellungen mal mit, damit die oben von mir aufgestellte Behauptung bestätigt oder widerlegt werden kann.