- Mitglied seit
- 10 Mai 2006
- Beiträge
- 15,283
- Punkte für Reaktionen
- 1,755
- Punkte
- 113
Es gibt ja in der Firmware normalerweise drei Dateien - /etc/avm_firmware_public_key[1-3] -, die wohl unterschiedliche öffentliche Schlüssel sind, mit denen die Signatur-Dateien in einem Firmware-Image entschlüsselt und dann mit einer über das zu flashende Image gebildeten Prüfsumme (oder vielleicht auch einem Hash-Wert) verglichen werden können. Ob da Leichen dabei sind oder es notfalls mit allen drei Keys nacheinander versucht wird, wenn einer nicht paßt, weiß ich nicht, das war mir aber mal einen Test wert.
Mein Interesse geht final in die Richtung, einen der AVM-Keys gegen einen eigenen auszutauschen, damit nur noch beim ersten "falsch signierten" Update eine Fehlermeldung erscheint und ich ansonsten die Möglichkeit habe, Boxen im Bekanntenkreis (bzw. die Bekannten selbst, damit sie die Updates machen) auch mit eigenen Updates/Änderungen zu versorgen, ohne daß jedes Mal beim Update die Warnmeldung "nicht von AVM freigegebene Firmware" erscheint, die ein Update per Fernwartung ja eigentlich ausschließt.
Wie auch immer ... ich hoffe mal, daß AVM tatsächlich auch die Hand auf den entsprechenden privaten Schlüsseln hat und die nicht einfach an OEM-Kunden (also Provider) herausgibt, denn dann könnte tatsächlich jeder Provider mit TR-069-Zugriff auch Boxen modifizieren, die gar nicht in seine Zuständigkeit fallen sollten. Das ist - auf die Firmware bezogen - dann sicherlich noch eine andere Qualität des Zugriffs, wenn ein Provider auch über das von AVM per TR-069 schon "eingeräumte" Maß auf einer FRITZ!Box schalten und walten kann, wie er will - einfach weil er eigene Firmware einspielen kann, ohne daß die Box daran etwas auszusetzen hätte.
Weil mich dann abseits dieser Überlegungen zur möglichen "Streuung" dieser Keys auch interessierte, ob beim Firmware-Update seitens des Providers über TR-069 überhaupt ordentlich geprüft wird, daß es sich um eine originale Version von AVM handelt oder ob der Provider da problemlos seine eigene unsignierte Version unterbringen könnte und es gar keine Weitergabe von Keys geben muß (bei DOCSIS-Boxen ist es offenbar/vermutlich Usus, daß die Provider tatsächlich selbst die CVC-Files signieren können, das ist auch ein etwas anderer Mechanismus, der in der DOCSIS-Spezifikation und nicht im TR-069 zu finden ist), habe ich einen entsprechenden Versuch mit einer 7270v3 (AVM-Original in rot), die gerade zur Hand war, gestartet.
Als die Box ein mit Freetz entpacktes und (nach Modifikation der rc.tail.sh) wieder zusammengepacktes Image klaglos akzeptierte, vermutete ich schon, daß das tatsächlich immer so sein könnte. Zur Vorsicht habe ich dann noch einen weiteren Test ausgeführt (das "firmwarecfg"-Binary ist - nach meiner Erfahrung - für Updates durch den Benutzer und über TR-069 zuständig) und da erwartete mich dann eine herbe Überraschung.
Die These der generellen Möglichkeit unsignierter Updates über TR-069 kann man mit der aktuellen Firmware-Version 06.05 für die 7270v3 tatsächlich nicht mit letzter Sicherheit bestätigen oder widerlegen, denn diese Firmware-Version führt offenbar gar keine Signatur-Prüfung für Firmware-Updates mehr aus.
Was habe ich getestet, um zu dieser Feststellung zu gelangen?
1. Recovery mit der frisch vom AVM-FTP-Server geladenen Version von "fritz.box_fon_wlan_7270_v3.06.05.recover-image.exe" (vom 17.06.2014, SHA1: cf2972a070eb0ec64d19d280f6c7d3651a3683ba)
2. nur GUI-Kennwort gesetzt, Assistenten abgebrochen, Ansicht: Erweitert und Update mit meinem unsignierten Image
3. die Box schluckte das Image ohne die übliche Meldung "von AVM nicht freigegebene Firmware" und führte das Update aus
4. Um sicherzugehen, daß das nicht nur ein Problem der per Recovery in die Box geladenen Version ist, habe ich anschließend noch einmal Recovery auf die 05.54 (vom März 2014) - ebenfalls frisch vom AVM-Server - ausgeführt.
5. Beim dann folgenden Versuch mit dem unsignierten Image kam auch die erwartete Meldung und ich habe das Update mit diesem Image abgebrochen und neu starten lassen.
6. Anschließend dann mit der Version 06.05 vom AVM-Server (FRITZ.Box_Fon_WLAN_7270_v3.74.06.05.image vom 27.05.2014, SHA1: 432bffd942ea6f5914571bf350fd575ea55371c5) ein normales Update ... klappt reibungslos, ist ja auch signiert.
7. In der nunmehr auf "normalem" Weg aktualisierten Box (aktueller geht bei diesem Modell ja nicht) dann erneut der Test mit dem unsignierten Image, auch hier wird das klaglos akzeptiert.
Damit weiß ich nun zwar immer noch nicht, ob beim Firmware-Update durch den Provider eine ordentliche Signaturprüfung stattfindet, aber für die 7270v3 mit der erwähnten Firmware-Version kann ich die Behauptung aufstellen, daß da irgendwas bei der Überprüfung von Firmware-Updates nicht stimmt.
Das ist nun kein riesiger Skandal, aber es ermöglichte mir immerhin (als ich Provider spielte) das Einspielen einer modifizierten Firmware vollkommen ohne die Notwendigkeit irgendwelcher Exploits. Das sollte - nach meinem Verständnis - nicht ohne weiteres möglich sein.
"Schlimm" genug, wenn man AVM bei der Signatur (bei aktiviertem Auto-Update) vertrauen muß ... bei "lawful interception"-Request (Stichwort: Quellen-TKÜ im Router) könnten die sich sicherlich ohnehin nicht wehren und müßten wahrscheinlich auch eine Trojaner-Firmware auf Aufforderung signieren. Das muß aber gegenüber dem eigenen Provider nun nicht auch noch sein ... ob die 7270v3 beim Einstellen von "1&1" als Provider TR-069 auch zwangsaktiviert (enabled vs. litemode), habe ich noch gar nicht getestet. Wenn ich einen Tipp abgeben müßte, hätte ich allerdings einen ...
Auch jeder Andere mit Admin-Zugriff auf das GUI (der zwar ohnehin nicht möglich sein sollte, aber beim externen Zugriff ist - bei korrekter Umsetzung der Signaturprüfung - wenigstens kein Update mit einer modifizierten Firmware möglich, da bei der Ansage "nicht freigegebene Firmware" der dsld schon nicht mehr läuft und das "Update fortsetzen" somit nur lokal zu bestätigen ist) kann damit ohne Prüfung die Firmware von extern modifizieren ... so wie bei jedem anderen Firmware-Update per Fernwartung, wenn die Firmware halt die Signaturprüfung besteht und die zusätzliche Nachfrage entfallen kann. Mit einer passenden Firmware ist da eine 7270v3 auch schnell in einen Bot verwandelt, der auch keine schlechte Prognose für sein "Überleben" hätte, wenn AVM keine weiteren Versionen für die 7270v[23] nachschiebt, wovon ja die meisten sicherlich ausgehen. Dafür braucht man dann bloß die passenden Admin-Credentials ... was - an anderer Stelle schon dargelegt - nicht immer eine unüberwindliche Hürde sein muß.
Ob AVM hier noch einmal Abhilfe schaffen wird, mag ich nicht prognostizieren ... schon die 06.05 kam für mich persönlich sehr überraschend, die Motive lagen vermutlich im AHA-Bereich. Wenn das allerdings tatsächlich nur ein Versehen und keine Absicht ist, dann wirft das in meinen Augen einmal mehr kein allzu gutes Licht auf die QS. Meine Vermutung/Spekulation zur Ursache geht in die Richtung, daß es für Entwicklungsversionen einen Schalter für die Signaturprüfung gibt, damit die Entwickler nicht immer selbst genervt werden und hier könnte man dann nur vergessen haben, diesen wieder richtig zu setzen. Es stellt sich am Ende aber trotzdem die Frage, bei wievielen/welchen Firmware-Versionen und -Modellen das noch der Fall sein könnte oder schon früher war. Bei dem inzwischen eingetretenen "Wildwuchs" blicken offenbar auch die Entwickler nicht mehr immer durch, wir hatten ja auch schon veröffentlichte "Labor-Versionen", die eigentlich eher interne Entwickler-Versionen waren und z.B. den Log-Daemon und die AVM-Version von "shellinabox" (inkl. der Verlinkung in der Support-Seite der Box) enthielten. Wenn das allerdings bei einem Release passiert, deutet das für mich auf fehlende (auch automatisch mögliche) Tests hin.
Mein Interesse geht final in die Richtung, einen der AVM-Keys gegen einen eigenen auszutauschen, damit nur noch beim ersten "falsch signierten" Update eine Fehlermeldung erscheint und ich ansonsten die Möglichkeit habe, Boxen im Bekanntenkreis (bzw. die Bekannten selbst, damit sie die Updates machen) auch mit eigenen Updates/Änderungen zu versorgen, ohne daß jedes Mal beim Update die Warnmeldung "nicht von AVM freigegebene Firmware" erscheint, die ein Update per Fernwartung ja eigentlich ausschließt.
Wie auch immer ... ich hoffe mal, daß AVM tatsächlich auch die Hand auf den entsprechenden privaten Schlüsseln hat und die nicht einfach an OEM-Kunden (also Provider) herausgibt, denn dann könnte tatsächlich jeder Provider mit TR-069-Zugriff auch Boxen modifizieren, die gar nicht in seine Zuständigkeit fallen sollten. Das ist - auf die Firmware bezogen - dann sicherlich noch eine andere Qualität des Zugriffs, wenn ein Provider auch über das von AVM per TR-069 schon "eingeräumte" Maß auf einer FRITZ!Box schalten und walten kann, wie er will - einfach weil er eigene Firmware einspielen kann, ohne daß die Box daran etwas auszusetzen hätte.
Weil mich dann abseits dieser Überlegungen zur möglichen "Streuung" dieser Keys auch interessierte, ob beim Firmware-Update seitens des Providers über TR-069 überhaupt ordentlich geprüft wird, daß es sich um eine originale Version von AVM handelt oder ob der Provider da problemlos seine eigene unsignierte Version unterbringen könnte und es gar keine Weitergabe von Keys geben muß (bei DOCSIS-Boxen ist es offenbar/vermutlich Usus, daß die Provider tatsächlich selbst die CVC-Files signieren können, das ist auch ein etwas anderer Mechanismus, der in der DOCSIS-Spezifikation und nicht im TR-069 zu finden ist), habe ich einen entsprechenden Versuch mit einer 7270v3 (AVM-Original in rot), die gerade zur Hand war, gestartet.
Als die Box ein mit Freetz entpacktes und (nach Modifikation der rc.tail.sh) wieder zusammengepacktes Image klaglos akzeptierte, vermutete ich schon, daß das tatsächlich immer so sein könnte. Zur Vorsicht habe ich dann noch einen weiteren Test ausgeführt (das "firmwarecfg"-Binary ist - nach meiner Erfahrung - für Updates durch den Benutzer und über TR-069 zuständig) und da erwartete mich dann eine herbe Überraschung.
Die These der generellen Möglichkeit unsignierter Updates über TR-069 kann man mit der aktuellen Firmware-Version 06.05 für die 7270v3 tatsächlich nicht mit letzter Sicherheit bestätigen oder widerlegen, denn diese Firmware-Version führt offenbar gar keine Signatur-Prüfung für Firmware-Updates mehr aus.
Was habe ich getestet, um zu dieser Feststellung zu gelangen?
1. Recovery mit der frisch vom AVM-FTP-Server geladenen Version von "fritz.box_fon_wlan_7270_v3.06.05.recover-image.exe" (vom 17.06.2014, SHA1: cf2972a070eb0ec64d19d280f6c7d3651a3683ba)
2. nur GUI-Kennwort gesetzt, Assistenten abgebrochen, Ansicht: Erweitert und Update mit meinem unsignierten Image
3. die Box schluckte das Image ohne die übliche Meldung "von AVM nicht freigegebene Firmware" und führte das Update aus
4. Um sicherzugehen, daß das nicht nur ein Problem der per Recovery in die Box geladenen Version ist, habe ich anschließend noch einmal Recovery auf die 05.54 (vom März 2014) - ebenfalls frisch vom AVM-Server - ausgeführt.
5. Beim dann folgenden Versuch mit dem unsignierten Image kam auch die erwartete Meldung und ich habe das Update mit diesem Image abgebrochen und neu starten lassen.
6. Anschließend dann mit der Version 06.05 vom AVM-Server (FRITZ.Box_Fon_WLAN_7270_v3.74.06.05.image vom 27.05.2014, SHA1: 432bffd942ea6f5914571bf350fd575ea55371c5) ein normales Update ... klappt reibungslos, ist ja auch signiert.
7. In der nunmehr auf "normalem" Weg aktualisierten Box (aktueller geht bei diesem Modell ja nicht) dann erneut der Test mit dem unsignierten Image, auch hier wird das klaglos akzeptiert.
Damit weiß ich nun zwar immer noch nicht, ob beim Firmware-Update durch den Provider eine ordentliche Signaturprüfung stattfindet, aber für die 7270v3 mit der erwähnten Firmware-Version kann ich die Behauptung aufstellen, daß da irgendwas bei der Überprüfung von Firmware-Updates nicht stimmt.
Das ist nun kein riesiger Skandal, aber es ermöglichte mir immerhin (als ich Provider spielte) das Einspielen einer modifizierten Firmware vollkommen ohne die Notwendigkeit irgendwelcher Exploits. Das sollte - nach meinem Verständnis - nicht ohne weiteres möglich sein.
"Schlimm" genug, wenn man AVM bei der Signatur (bei aktiviertem Auto-Update) vertrauen muß ... bei "lawful interception"-Request (Stichwort: Quellen-TKÜ im Router) könnten die sich sicherlich ohnehin nicht wehren und müßten wahrscheinlich auch eine Trojaner-Firmware auf Aufforderung signieren. Das muß aber gegenüber dem eigenen Provider nun nicht auch noch sein ... ob die 7270v3 beim Einstellen von "1&1" als Provider TR-069 auch zwangsaktiviert (enabled vs. litemode), habe ich noch gar nicht getestet. Wenn ich einen Tipp abgeben müßte, hätte ich allerdings einen ...
Auch jeder Andere mit Admin-Zugriff auf das GUI (der zwar ohnehin nicht möglich sein sollte, aber beim externen Zugriff ist - bei korrekter Umsetzung der Signaturprüfung - wenigstens kein Update mit einer modifizierten Firmware möglich, da bei der Ansage "nicht freigegebene Firmware" der dsld schon nicht mehr läuft und das "Update fortsetzen" somit nur lokal zu bestätigen ist) kann damit ohne Prüfung die Firmware von extern modifizieren ... so wie bei jedem anderen Firmware-Update per Fernwartung, wenn die Firmware halt die Signaturprüfung besteht und die zusätzliche Nachfrage entfallen kann. Mit einer passenden Firmware ist da eine 7270v3 auch schnell in einen Bot verwandelt, der auch keine schlechte Prognose für sein "Überleben" hätte, wenn AVM keine weiteren Versionen für die 7270v[23] nachschiebt, wovon ja die meisten sicherlich ausgehen. Dafür braucht man dann bloß die passenden Admin-Credentials ... was - an anderer Stelle schon dargelegt - nicht immer eine unüberwindliche Hürde sein muß.
Ob AVM hier noch einmal Abhilfe schaffen wird, mag ich nicht prognostizieren ... schon die 06.05 kam für mich persönlich sehr überraschend, die Motive lagen vermutlich im AHA-Bereich. Wenn das allerdings tatsächlich nur ein Versehen und keine Absicht ist, dann wirft das in meinen Augen einmal mehr kein allzu gutes Licht auf die QS. Meine Vermutung/Spekulation zur Ursache geht in die Richtung, daß es für Entwicklungsversionen einen Schalter für die Signaturprüfung gibt, damit die Entwickler nicht immer selbst genervt werden und hier könnte man dann nur vergessen haben, diesen wieder richtig zu setzen. Es stellt sich am Ende aber trotzdem die Frage, bei wievielen/welchen Firmware-Versionen und -Modellen das noch der Fall sein könnte oder schon früher war. Bei dem inzwischen eingetretenen "Wildwuchs" blicken offenbar auch die Entwickler nicht mehr immer durch, wir hatten ja auch schon veröffentlichte "Labor-Versionen", die eigentlich eher interne Entwickler-Versionen waren und z.B. den Log-Daemon und die AVM-Version von "shellinabox" (inkl. der Verlinkung in der Support-Seite der Box) enthielten. Wenn das allerdings bei einem Release passiert, deutet das für mich auf fehlende (auch automatisch mögliche) Tests hin.
Zuletzt bearbeitet: