Solarinverter: Sicherheit auf dem Prüfstand
Seite 8: Fröhliches Schaudern
Zwar war ich froh darüber, etwas Sinn und Erkenntnisse in den Datenpaketen finden zu können, aber es bedeutete auch etwas anderes. Was auch immer da über die Leitungen ging, war aus Cybersecurity-Perspektive komplett ungeschützt. Wenn es jemandem gelänge, das Datenprotokoll, also die Interpretationsvorschrift der Bits nur richtig zu verstehen – und in der Regel auch einen Prüfsummen-Algorithmus –, dann wäre er oder sie in der Lage, Pakete so zu erstellen, wie es der Inverter oder das Backend tun. Da es, bis auf die Seriennummer im ungeschützten Payload, keine Authentifizierungsmechanismen zu geben scheint, anhand derer das Backend erkennt, wer da spricht, könnte jeder ein Gerät oder ein Backend selbst vortäuschen (engl. spoofing).
Das oben erwähnte PySolarman-Projekt war davon schon 90 Prozent des Weges gegangen. Es beschreibt zwar eher den generellen Aufbau und erlaubt dem Hersteller noch ein paar Freiheiten, dennoch ist es kein Hexenwerk eigene Pakete zu erzeugen. Das Projekt Deye Microinverter - Cloud-free hat das sogar schon vorgemacht und ein Fake-Backend erstellt, das sich für den Inverter so „anfühlt“ wie das echte. Es ist eine der Möglichkeiten, die Kommunikation mit dem echten Backend obsolet zu machen.
Meine traurigen Highlights
Mein Ziel war es aber nicht, Systeme anzugreifen, sondern zu analysieren. Hier eine Liste von Dingen, die ich dabei entdeckt habe:
Firmware-Update
Remote-Softwareupdates sind ja an sich eine gute Sache, aber in diesem Fall könnte man es besser machen. Problem Nr. 1 ist, dass durch das Protokoll auch jemand anders den Befehl an das Gerät senden könnte. Problem Nr. 2: Da auch beim Download kein HTTPS verwendet wird, überprüft das Gerät nicht einmal die Identität der Gegenstelle. Hier wäre zumindest ein Echtheits-Check der Firmware notwendig, sodass nur vom Hersteller signierte Firmware-Pakete installiert werden können.
Firmware-Update zum Mitlesen (3 Bilder)
![](https://heise.cloudimg.io/width/696/q50.png-lossy-50.webp-lossy-50.foil1/_www-heise-de_/imgs/71/4/5/9/2/1/1/8/Grafik19_Analyse_FirmwareUpdate_Befehl_geschwaerzt-c6fe65f72339b115.jpg)
Ändern des Management-Servers
Auch hier bin ich etwas zwiegespalten: Mit einem Befehl kann der Hersteller den Management-Server auf einen anderen ändern. In diesem Fall ist das super, denn ab diesem Zeitpunkt sendet der Inverter die Daten nicht mehr in die USA, sondern zu einem Server bei AWS in Frankfurt. Dennoch ist hierüber leider auch möglich, einen x-beliebigen Server zu konfigurieren und damit die Kontrolle zu übernehmen.
Unlimited Power?
Spätestens nach dem Verkauf von 800-W-Invertern, die man auch auf 600 W downgraden kann oder umgekehrt, habe ich mich gefragt, wie das wohl funktioniert. Der offizielle Weg ist, dass man ein Service-Ticket beim Hersteller oder seinem Händler erstellt, wobei man seine Seriennummer hinterlegen muss. Diese setzen dann die Werte aus der Ferne.
Nach etwas Recherche habe ich die notwendigen Befehle herausgefunden, mit denen es möglich ist, die Leistung in einem weiten Rahmen zu drosseln und sogar auf bis zu 120 Prozent zu setzen, ohne dass der Inverter eine Fehlermeldung herausgibt. Die tatsächliche Ausbeute würde das wohl in der Regel nicht erhöhen, doch zeigt das auch den weitreichenden Funktionsumfang des Remote Kanals: Geriete die Steuergewalt in falsche Hände, wäre es damit möglich, die betroffenen Geräte großflächig zu manipulieren oder gar die Geräte durch falsche Parameter zu zerstören.