Electron
In der Kürze:
„Electron“ ist eine Entwicklugsumgebung für Anwendungen, die dann letztendlich in einen „eigenen“ Browser eingebettet sind.
Vorteil: Praktisch - Eine App als Browser, funktioniert quasi überall
Nachteil: Bietet Angriffspotential - überfrachtet, großer Speicherbedarf, nicht barrierefrei
Mit Electron sind sehr viele Anwendungen realisiert: Atom, DeltaChat-Desktop, Discord-Desktop, Element-Desktop, Mattermost-Desktop, Signal-Desktop, Slack-Desktop, Threema-Desktop, Visual Studio, WhatsApp-Desktop usw.
Nachfolgend mehr zur Kritik an der unbestritten sehr erfolgreichen Entwicklungsplattform.
Barrierefreiheit
Electron ist nicht barrierefrei (“accessible”), was z.B. bedeutet, daß Sehbehinderte benachteiligt werden.
„Als blinder Benutzer habe ich Probleme bei der Verwendung von Electron-Anwendungen mit dem Orca Screenreader …“ - übersetzt von:
Injecting a Chromium Add-On in to Electron
As a blind user, I am having problems using Electron apps with the Orca screenreader for Linux. This is because Chromium, my primary browser, doesn’t support using Orca by default. It does, however, have an extension called ChromeVox to serve as a screenreader. Since both Chrome and Chromium use this screenreader, and Electron uses Chrome to function, I wonder if it then is possible to “inject” the ChromeVox screenreader in to my apps. I use inject losely, as there are some apps that I can’t readily get access to the source code of; Spotify and Slack serve as primary examples. Does anyone have some experience in this matter?
Quelle: Reddit (2017)
Über eine Information, ob/wie das heute ist, würde ich mich sehr freuen: >> Kontakt <<
Sicherheit und Datenschutz
Electron ist quasi ein vollständiger Chromebrowser mit eingebauter Zusatzfunktion (der App). Im Grunde sind Electron Apps also keine wirklichen Apps sondern ein Chromebrowser mit nur einem Tab, nämlich der App. Das bedeutet, für jede Electron App installiert man sich einen kompletten Chrome-Browser.
Es täuscht quasi ein sauber für das jeweilige Betriebssystem entwickeltes Programm vor indem es eigentlich nur die Webapplikation in Chrome bündelt. Eigentlich könnte man dann gleich die reguläre Webapplikation der App nutzen.
Problem:
Bei Browsern ist auf Grund der komplexität die Angriffsfläche entsprechend größer als bei klassischen Programmen/Apps.
Auch kommt es bei Electronapps häufiger vor, dass die Entwickler zwar ihre Software aktuell halten, aber das verwendete Electronframework nicht regelmäßig aktualisieren. Oftmals liegen Wochen oder Monate zwischen der verwendeten und verfügbaren Electronversionen. Niemand der verantwortungsvoll handelt würde jedoch seinen Browser monatelang nicht aktualisieren, unabhängig ob Chromium, Firefox oder einem anderen Browser. Bei Electronapps denken manche Entwickler leider anders.
Regelmäßige Updates sind zum Schließen von Sicherheitslücken jedoch elementar wichtig.
Ein eindrucksvolles Beispiel dafür ist bei debian (extern) zu finden.
Electron ist also weder aus Sicherheits- noch aus Datensparsamkeitsgründen (Datenschutz) zu empfehlen.
Wenn sich Apps auf „Sicherheit“ fokusieren und sich damit rühmen - gleichzeitig jedoch Electron verwenden, beißt sich das etwas. Manche empfehlen deshalb, Electron-Anwendungen nicht direkt auszuführen, sondern ausschließlich abgeschottet z.B. in einer „Sandbox“. Auch ist Electron laut dem Free Software Directory (extern) unfreie Software.
Sehr guter Artikel zum Thema: 'Electron-Apps haben eine gefährliche Achilles-Ferse'
Skype, Slack, VS Code, Atom: Electron-Apps haben eine gefährliche Achilles-Ferse
Programme, die auf dem Electron Framework basieren, können von lokalen Angreifern trojanisiert und als Angriffsplattform missbraucht werden.
Auf der Sicherheitskonferenz BSides Las Vegas hat Pavel Tsakalidis von der Sicherheitsfirma Context eine Schwachstelle in GitHubs Software-Entwicklungs-Framework Electron offengelegt, über die sich Electron-Apps mit Hintertüren und Schadcode versehen lassen. Zwar braucht der Angreifer dafür lokalen Zugriff auf ein System – Angriffe aus der Ferne sind also schwierig – unter Windows genügen allerdings einfache Nutzerrechte. Das Electron-Framework bildet die Grundlage für GitHubs Text-Editor Atom und Microsofts Visual Studio Code. Auch die Messenger Skype, WhatsApp, Signal, Wire, Cryptocat, Discord und Slack setzen es für ihre Desktop-Apps ein. Die Desktop-Clients von GitHub und Twitch sind ebenfalls potenziell betroffen.
Electron ist vor allem deshalb beliebt, weil es Entwicklern ermöglicht, mit einer Version ihrer App gleichzeitig auf Windows, macOS und Linux präsent zu sein. Es basiert auf JavaScript und Node.js und speichert Applikations-Daten unter anderem in einem Archivformat namens ASAR. Und genau hier befindet sich die Schwachstelle, die Tsakalidis nun öffentlich gemacht hat. Die ASAR-Achive einer Electron-App sind weder verschlüsselt noch digital signiert. Das erlaubte es dem Sicherheitsforscher, ein Python-Tool namens BEEMKA zu entwickeln, mit dem er diese Archive entpacken und den darin enthaltenen Code manipulieren kann. Das führt dazu, dass ein Angreifer bösartigen Code in legitimen Prozessen der App verstecken kann. Unter macOS und Linux benötigt BEEMKA dazu Administrator-Rechte, bei Windows genügt eine Anmeldung als normaler Nutzer.
Zugriff aufs Dateisystem und die Webcam
Der in die ursprünglichen Apps eingeschmuggelte Code kann auf die Webcam des Systems und das lokale Dateisystem zugreifen. Da das Betriebssystem der Applikation vertraut – die in der Regel mit einem gültigen Zertifikat des Entwicklers signiert ist – könnte ein Angreifer so sensible Daten auf dem System auslesen. In einem Video zeigt Tsakalidis, wie eine trojanisierte Version des Passwort-Managers Bitwarden Passwörter verrät, die der Code von Tsakalidis dann an einen beliebigen Webserver schicken könnte. Außerdem zeigte der Sicherheitsforscher in seinem Vortrag, wie eine manipulierte Version von Visual Studio Code den Inhalt jedes geöffneten Code-Tabs ins Internet leaken kann. So ließen sich etwa Betriebsgeheimnisse von Software-Entwicklern ausspionieren.
Die Schwachstelle ermöglicht es laut Tsakalidis aber auch, Code in interne Prozesse des Electron-Frameworks einzuschleusen. Etwa dessen eingebaute Chrome-Erweiterungen. So könnte ein Angreifer zum Beispiel Zertifikats-Checks aushebeln und mit HTTPS-verschlüsselte Kommunikation von Electron-Apps abhören. Außerdem könnte ein Angreifer still und heimlich die Update-Features von Electron-Apps manipulieren, damit sein bösartiger Code nicht von einer neuen App-Version überschrieben wird.
Electron sieht keinen Grund zum Handeln
Laut Tsakalidis wissen die Electron-Entwickler von dem Problem, da Electron-Entwickler in der Vergangenheit im Bug-Tracker des Open-Source-Projektes darum gebeten hätten, die ASAR-Archive kryptografisch abzusichern. Diese Anfragen seien von den verantwortlichen Projektentwicklern abgeblockt worden. Auf seine Kontaktversuche im Vorfeld der Veröffentlichung habe Electron nicht reagiert, so Tsakalidis. Auch auf Anfragen von heise online antwortete das Projekt bisher nicht. Der Sicherheitsforscher befürchtet, dass außer den von ihm beschriebenen lokalen Angriffen auch die Möglichkeit besteht, anderen Nutzern manipulierte Electron-Apps unterzuschieben. Wenigstens unter macOS müsste die Sicherheitsfunktion Gatekeeper allerdings die Δnderungen an der App erkennen und Alarm schlagen.
In einer Diskussion im Electron-Bug-Tracker erklärt Tsakalidis, wie er die Lücke ursprünglich entdeckt hatte. Als Teil eines Red Teams hatte er im Netz eines Kunden seiner Sicherheitsfirma die Aufgabe, Schadcode auf einem System zu verankern (Sicherheitsfoscher sprechen auch von persistence). Das gelang dem Red Team mit einem Powershell-Exploit, den sie in den ASAR-Dateien des Firmenmessengers Slack versteckten. "Jedes mal wenn Slack beim Windows-Start ausgeführt wurde, hatten wir wieder Zugriff zum internen Netz", so Tsakalidis.
Fabian A. Scherschel / (fab) / 09.08.2019 / Quelle:
https://www.heise.de/security/meldung/Skype-Slack-VS-Code-Atom-Electron-Apps-haben-eine-gefaehrliche-Achilles-Ferse-4493195.html (extern)
Mehr Infos im Netz: