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.

In Pocket speichern vorlesen Druckansicht 106 Kommentare lesen
Skype, Slack, Visual Studio Code: Electron-Apps haben eine gefährliche Achilles-Ferse

(Bild: welcomia/Shutterstock.com)

Lesezeit: 4 Min.
Von
  • Fabian A. Scherschel

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.

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.

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. (fab)