Ich habe die Hoffnung, daß AVM die Protokollierung an der Stelle doch noch verbessert in der verbleibenden Zeit bis zur "allgemeinen Freigabe" der neuen Versionen.
(Bei der 7580 und 7560 wird es sicherlich zeitnah auch weiterhin Verbesserungsbedarf geben, da erwarte ich eher kürzere Abstände, bis eine 06.81 o.ä. folgt.)
Erstens macht es wenig bis keinen Sinn, auch jeden Zugriffsversuch des Benutzers "anonymous" zu protokollieren. Solche Zugriffe gibt es bei einigen FTP-Clients (z.B. auch dem Windows-Explorer) immer mal wieder, wenn beim ersten Zugriff ein "anonymes Lesen" des Verzeichnisses versucht wird.
Zweitens kann und wird es immer mal wieder auch "Vertipper" bei der Kennworteingabe geben ... da wäre ein Zähler für Fehlversuche
pro Benutzer, der z.B. nach einer Stunde wieder zurückgesetzt wird, wohl doch die bessere Lösung und dann kann man auch erst beim dritten Fehlversuch protokollieren.
Bei der derzeitigen Lösung verliert diese Nachricht ihre "Signalwirkung" und das macht sie praktisch wieder wertlos.
-Ich hatte AVM am 24. Juni 2016 auf eine Möglichkeit für einen "brute force"-Angriff auf die Authentifizierung im FRITZ!OS aufmerksam gemacht (Incident-ID
#499102), die auf der fehlschlagenden Protokollierung von Login-Fehlern beim FTP-Service basiert.
Bisher ist es so gewesen, daß es zwar einen solchen Zähler für Login-Fehlversuche gab ... dieser wurde in einer einzelnen Datei (/var/ftpd_login_fails) für den gesamten FTP-Service verwaltet. Jedes erfolgreiche Login setzte diesen Fehlerzähler dann wieder zurück und nur beim "Hochlaufen" wurde das FTP-Login immer weiter verzögert - bis dann irgendwann eine Grenze erreicht wurde, jenseits der keine zusätzliche Verzögerung mehr erfolgte.
Der max. Wert der Verzögerung lag bei den letzten Versionen so bei etwas über 20 Sekunden, man konnte also bei einem "brute force"-Angriff max. drei Kennwörter pro Minute "ausprobieren" ... durch die (zwar eingebaute, aber) nicht funktionierende Protokollierung der Fehlversuche fiel das praktisch trotzdem nicht auf.
Da der Zähler aber nur für alle Benutzer des FTP-Dienstes gleichzeitig verwendet wurde, setzte eben
jedes beliebige erfolgreiche FTP-Login diesen Zähler und damit auch die Verzögerung wieder zurück.
Im Ergebnis konnte damit zunächst einmal jeder Benutzer mit einem gültigen FTP-Account (der mußte nichts anderes als NAS-Leserechte haben) diesen Zähler wieder löschen und damit erhöhte sich dann die Zahl der möglichen Login-Versuche zum Brechen eines fremden Kennworts für ein Konto mit Administrator-Rechten an der FRITZ!Box wieder.
In der Datei "inetd.conf" wird der FTP-Service mit der Zeile
Code:
21 stream tcp6 nowait.30 root /bin/sh sh /bin/inetdftp
gestartet, das begrenzt die max. Anzahl der FTP-Server-Instanzen pro Minute auf 30. Allerdings ist eben auch innerhalb einer einzelnen Instanz des "ftpd" das erneute Login jederzeit möglich, damit war die Menge der pro Minute zu probierenden Logins dann doch wieder nur durch die Geschwindigkeit von Server und Client begrenzt, weil immer abwechselnd ein Angriffsversuch und ein gültiges Login (aus dem LAN wurde das auch nicht protokolliert) erfolgen mußte.
Dann kam noch hinzu, daß es bisher auch möglich war, sich am FTP-Service mit einer SID anstelle des korrekten Kennworts zu identifizieren und auch das setzte den Zähler für die Fehlversuche wieder zurück.
Am Ende war sogar die Verwendung jedes beliebigen Kontos (das mußte nicht einmal FTP-Rechte haben) möglich ... bei einem Konto ohne NAS-Rechte kam/kommt halt nach dem Login ein Fehler ("can't change to home directory"), aber der entscheidende Punkt mit dem Zurücksetzen des Zählers lag bereits davor.
Man brauchte also nur ein simples Shell-Skript, das zwei getrennte FTP-Verbindungen verwaltete (wie das mit der Shell machbar ist, kann man in den "
eva_tools" sehen) und nach einem Fehlversuch in der einen Verbindung immer ein gültiges Login in der anderen Verbindung ausführte.
Es reichte also bereits ein beliebiges gültiges Konto (selbst ein Konto nur für VPN-Verbindungen konnte genutzt werden, dann allerdings nur mit dem Kennwort, weil es keine Möglichkeit gab, dafür eine gültige SID zu bekommen) aus, sofern man das passende Kennwort kannte (oder eine SID "erschnüffelte", solange man die passende IP-Adresse dann selbst nutzen konnte) ... wie man an diese Daten z.B. auf einem Android-Gerät gelangen könnte, ist bekannt und alles andere als "geheim".
Mit den passenden Daten und dem bisherigen Verhalten der FRITZ!Box war es dann eben problemlos möglich, über einen "brute force"-Angriff (das wird i.d.R. aber trotzdem eher ein Wörterbuch-Angriff sein als ein systematisches "Probieren" aller Kennwort-Kombinationen) auch ein Administrator-Konto auf der FRITZ!Box anzugreifen, ohne dabei irgendeine Spur zu hinterlassen ... und die ursprünglich vorgesehene Verzögerung für das Ausbremsen solcher Angriffe griff dabei komplett ins Leere.
-Das will AVM nun offenbar abstellen (ich habe am 23.11.2016 eine entsprechende E-Mail von AVM erhalten) ... was auch dringend notwendig und richtig ist.
Trotzdem ist natürlich die Protokollierung wirklich jedes einzelnen Fehlversuches etwas übertrieben und das entwertet dann den warnenden Charakter dieser Nachrichten nur unnötig.
Ich habe mir die internen Änderungen noch nicht weiter angesehen (der PoC führt bei den neuen Versionen jedenfalls zur Protokollierung, damit ist das nicht mehr "spurlos") ... wenn es bei der einen gemeinsamen Zählerdatei für fehlgeschlagene Logins geblieben sein sollte, bräuchte es natürlich für eine sinnvollere Protokollierung noch weitere Änderungen; ich habe keine Ahnung, wie "seriously" AVM das Problem angegangen ist.