Schwere Sicherherheitslücke bei IP-Symcon? [Update]
Bei der App handelt es sich um eine öffentlich zugängliche Betaversion, der die zuvor kostenpflichtig von IP-Symcon angebotene App ersetzt. Ich hatte diese vor ein paar Tagen auch installiert, eingerichtet und auf dem Mobilphone laufen lassen. Allerdings benutze ich die App nur selten.
Was passiert da?
Es dauerte bei mir auch erst ne Weile, bis mir dämmerte, was das eigentlich bedeutete: ganz simpel und plakativ gesprochen kann sich somit jeder die vom Hersteller veröffentliche App installieren, das Netz nach IP-Symcon Portalen scannen um dann mit der App in die lokale Home-Automation einbrechen und deren Steuerung übernehmen (das Übliche halt: an der Heizung Klimasimulationen fahren, mit der Beleuchtung Lichtorgeln, Türen und Fenster öffnen – ja nach dem, was grad im Angebot ist).
Spätestens jetzt wurde ich auch unruhig. Und hab mich dann mal näher damit beschäftigt.
Grundlagen/Hintergrundwissen
Um es etwas transparenter zu machen hole ich etwas aus:
Für die Visualisierung der IP-Symcon Homeautomation wird ein sogenanntes Webfrontend benutzt. Dieses Webfrontend kann von jedem beliebigen Browser geöffnet werden. Der Inhalt dieses Webfrontends wird vom IP-Symcon Besitzer selbst definiert. Man kann dort sämtliche Objekte, die mit IPS verbunden sind, darstellen und über dieses Webfront auch steuern. Der User kann -je nach Lizenz – mehrere dieser Webfrontends erzeugen, die dann individuelle Aufgaben/Inhalte haben können.
Um dieses Webfront für den Browser verfügbar zu machen, ist ein Webserver notwendig. Einen solchen hat IP-Symcon bereits integriert, verwaltet und konfiguriert wird er durch den IPS-Besitzer.
Um jetzt dieses Webfrontend nicht für jeden verfügbar zu machen, gibt es eine 2stufige Zutrittsbeschränkung:
- User-/Passwort-Authentifizierung auf Webserver-Ebene (Basis-Authentifizierung)
- Passwort-Authentifizierung auf Webfrontend-Ebene
Während die User-/Passwort-Authentifizierung global für alles, was der IPS-Webserver zur Verfügung stellen kann, gilt, gilt die Passwort-Authentifizierung auf Webfrontend-Ebene nur für ein dediziertes Webfront. Das ist auch sehr hilfreich, da man so sehr flexibel steuern kann, wer was sehen und bedienen kann, und wer nicht. Hat man z.B. einen Usernamen und Passwort auf Webserver-Ebene vergeben, haben Dritte ohne Kenntnis dieser Infos keinerlei Zugriff auf die lokale Home-Automation und darüber hinaus auf alles, was dieser Webserver bereitstellen kann. Vergibt man hier keinen Usernamen/Passwort, so können Dritte theoretisch auf jedes, vom Webserver zur Verfügung gestelltes Webfrontend zugreifen.
Das Sicherheitsproblem
Leider stellte sich nun im besagten Forenthread heraus, dass das oben geschilderte Sicherheitskonzept umgangen werden kann, nämlich mit der vom Hersteller selbst hergestellten IOS/Android App. Ich würde nicht sagen, dass das ein Softwarefehler ist: vielmehr lassen die wenigen Äußerungen des Herstellers dazu vermuten, dass im Zuge der letzten Updates eine Funkion „etwas“ verändert wurde. ob bewusst oder unbewusst – sei mal dahin gestellt. Leider aber auch nirgends kommuniziert. Um den ungebremsten Zugriff von außen zu ermöglichen, muss der IPS-Besitzer eine Rahmenbedingung geschaffen haben: Wenn er die Basis-Authentifizierung aktiviert, aber die dedizierten Webfontends nicht per Passwort geschützt hat, kann jeder beliebige User mit Hilfe der App die Basis-Authentifizierung umgehen und ohne Einschränkung auf die dahinter liegenden Webfrontends zugreifen! Und dies dürfte längst nicht jedem klar sein, da die Basis-Authentifizierung auf Webbrowser Ebene bisher völlig ausreichend war – so auch die frühere Auskunft des Herstellers auf dedizierte Nachfragen.
Ich habe das bei mir sofort recherchiert und nachstellen können. Spontan habe ich meinen externen Webserver zunächst abgeschaltet. Denn wenn man eine Basis-Authentifizierung – die eigentlich generell alles abschotten soll, einfach so umgehen kann, schwindet bei mir deutlich das Vertrauen in die Sicherheit dieser Software.
Lösung in Sicht?
Leider wurden die Nachfragen im Forum vom Hersteller als „normaler, ’schon immer so‘- Zustand“ abgetan. Sorry, nein: bis zur Einführung von IPS V3.1 gab es eine allseitig wirksame Basis-Authentifizierung. Und daran werden sich die meisten User gewöhnt haben. Auf weitere Hinweise/Nachfragen reagierte der Hersteller bis heute nicht mehr.
Da es in den verg. Wochen auch andere Sicherheitsprobleme (Stichwort: Heartbleed) gab, hätte man hier eigentlich deutlich sensibler reagieren müssen. Auch beim OpenSSL-Problem gab es auf der Stable-Version erst nach Tagen ein Update – und das auch nur auf Drängen von Usern im Forum. Die User wurden nicht explizit auf das Problem und Update hingewiesen (etwa per Mail).
Von einem verantwortungsbewussten und professionellen Dienstleister hätte ich erwartet, dass
- er sofort alle User per Mail auf dieses Problem aufmerksam macht
- er den Usern Sofortmaßnahmen anbietet, das entstandene Risiko einzudämmen
- er mit höchster Priorität ein HotFix erstellt
- und er dieses (wiederum mit expliziter Info an den User) verteilt
Nicht jeder liest täglich im Forum mit, noch weniger werden diesen kleinen Thread finden. Daher finde ich das derzeitige Verhalten des Herstellers sehr verwunderlich.
Ich hoffe, dass man sich hier zukünftig mehr um die Sicherheit von IP-Symcon und der User sorgt, verantwortungsbewusster, offener und zügiger reagiert. Und ich hoffe, dass es in diesem, speziellen Problem baldmöglichst Transparenz gibt. Transparenz, der man vertrauen kann und durch die man guten Gewissens entscheiden kann, wie man selbst damit umzugehen hat.
Was tun?
Nun, auf die Schnelle sollte man unbedingt sowohl die Basis-Authentifizierung als auch das dedizierte Webfront-Passort aktivieren. Mindestens. Da aber mein Vertrauen in die Sicherheit von IP-Symcon grade rapide abnimmt, tendiere ich dazu, den externen Webserver abzuschalten und nur noch via VPN auf meine Homeautomation zuzugreifen.
Mir stellt sich nämlich die Frage: wie kann es sein, dass man eine Basis-Authentifizierung (die generell alles abschotten soll) mit einer Mobil-App ohne Probleme umgehen kann? Wie sicher ist der Webserver überhaupt?
Nachtrag:
Am 17.04 bekam ich Post (eMail) vom Hersteller. Im Ergebnis des (sehr konstruktiven) Mail-Dialogs wurde klar, dass es sich (wie oben schon vermutet) tatsächlich nicht um einen Softwarefehler handelt, sondern vielmehr um ein Ergebnis einer unglücklichen Konfiguration des Systems.
Um eine solche, ungewollte Fehlkonfiguration zu vermeiden, benötigt man jedoch als Anwender der Software genaues Hintergrundwissen. Also empfahl ich, entsprechende Hintergrundinfos dazu zu veröffentlichen. Diese kann man im o.g. Thread ab Post 19 nachlesen.
Hintergrund-Details:
Während bisher (bis zur Einführung der JSON-API in IPS V 3.0) Zugriffssteuerung in erster Instanz auf dem Webserver (Zugriff generell authentifikationspflichtig ja/nein) und in 2. Instanz pro WFE (Passwort für das dedizierte WFE ja/nein) geregelt war (was nach wie vor gültig ist), gibt es für die mobilen Apps einen 2. Kommunikationsweg, der über die JSON-API erfolgt. Da deren Authentifikation anders als beim normalen Browser-Zugriff abläuft, muss man hier sehr genau aufpassen und wissen was man tut.
Die Authentifizierung wird im WFE-Konfigurator an gleicher Stelle konfiguriert, wirkt aber etwas anders:
- Die Aktivierung der Authentifizierung im Webserver (=Webinterface) ist nur für den Browserzugriff wirksam!
-
Die Aktivierung der Authentifizierung im WF-Konfigurator ist sowohl für den Browserzugriff als auch für den Zugriff via mobile App wirksam
- Für den Zugriff über die mobile App muss im WF-Konfigurator der Punkt „Mobile/Retro => Mobile (iOS/Android)“ aktiviert werden (default: injaktiv)
Nur wenn die beiden letzten Punkte erfüllt sind, bekommt man via mobiler App einen passwortgeschützten Zugriff auf das entsprechende WFE.
Nach längerem Nachdenken über diese Konstellation glaube ich, dass zumindest die Userführung in der IPS-Konsole unglücklich
ist, da hier m.E. ein hohes Potenzial der Fehlkonfiguration durch den User besteht – ohne dass es diesem bewusst wird. Ist z.B. der Punkt „Mobile/Retro => Mobile (iOS/Android)“ aktiviert, aber der Passwortschutz im WF-Konfigurator nicht aktiv (weil der User glaubt, dass die Webserver-Authenifizierung ausreichend ist), dann ist sein WFE offen wie ein Scheunentor. Und zwar nur über die JSON-API => dadurch fällt dies beim Zugriff über den Webbrowser nicht auf, weil die Authentifizierung über den Webserver nach wie vor erforderlich ist. Ich denke, hier liegt sehr viel Gefahrenpotenzial. In wie weit sich das in der Realität auswirken wird, kann wohl nur die Zukunft zeigen.
Auf jeden Fall hat der Hersteller signalisiert, zumindest die Doku an den entsprechenden Stellen anzupassen. Und zwar sowohl mit Hintergrundwissen, als auch mit Warnhinweisen. Und das ist schon ein sehr wichtiger, zu begrüßender Schritt.