Bei der durchgeführten Sicherheitsanalyse durch den BSI erzielte Matrix gute Ergebnisse, leider war die Berichterstattung verwirrend.
Am 01.09.2024 wurde auf der Website „heise online“ ein ungenauer und somit verwirrender Artikel mit dem Titel:„BSI entdeckt schwere Sicherheitslücken in Mastodon und Matrix“ veröffentlicht. Hier reagierte Element – der Entwickler des Open-Source-Messenger Dienstes Matrix schnell und kontaktierte Heise, so dass die Schlagzeile umgehend korrigiert wurde in: „BSI entdeckt schwere Sicherheitslücken in Mastodon, einige kleinere in Matrix“. Dennoch bleibt in unschöner Beigeschmack zurück.
Wir – practicalBYTES – bieten den Matrix-Messenger als Managed Service an, sind absolut überzeugt und freuen uns über die guten Ergebnisse, die Matrix bei der Sicherheitsanalyse des BSI erzielen konnte. Mit diesem Blog möchten wir die ungenauen und verwirrenden Informationen im Bezug zur Matrix Sicherheit aus dem Artikel ansprechen und diese aufräumen.
Wie kam es zu dem Artikel?
Durch das Bundesamt für Sicherheit in der Informationstechnik (Abk.„BSI“) wurde eine Überprüfung des Quellcodes des Messenger-Dienstes Matrix und der Social-Media-Anwendung Mastodon durchgeführt. Dies geschah in Zusammenarbeit mit der Münchner Firma MGM Security Partners.
Die Codeanalyse von Open-Source-Software (Caos 2.0) identifizierte unterm Strich drei kleine Sicherheitslücken mit geringer Schwere bei dem Open Source Messenger Matrix.
Es ist sehr erfreulich, dass Matrix so gut abschneidet und ein Beweis dafür, dass die deutsche Regierung zu Recht auf diesen Messanger vertraut.
Leider kann man den Artikel von Heise missverstehen, somit stellen wir mit diesem Blog die Dinge richtig.
Matrix entwickelte ein offeneseund dezentrales Kommunikationsprotokoll für sichere, interoperable Echtzeitkommuniktion über verschiedene Plattformen hinweg. Es ermöglicht Nutzern, Nachrichten, Sprach- und Videoanrufe zu tätigen sowie Dateien zu teilen, alles mit Ende-zu-Ende-Verschlüsselung für erhöhte Sicherheit und Datenschutz. Dank seiner dezentralen Natur können Unternehmen ihre eigenen Server betreiben und so die volle Kontrolle über ihre Daten behalten. Matrix fördert die Vernetzung unterschiedlicher Kommunikationsdienste durch Föderation und bietet Entwicklern flexible APIs, um das Protokoll in ihre Anwendungen zu integrieren oder neue Dienste zu erstellen, wodurch es eine universelle Lösung für die digitale Kommunikation bietet.
Unsere Antworten auf die Analyse-Ergebnisse des BSI:
Gemeldete Schwachstellen aus der BSI Sicherheitsanalyse Studie „zur statischen Codeanalyse der Kommunikationssoftware Matrix“
CVE-2023-45129 fixed ab v1.94.0
CVE-2023-42453 fixed ab v1.93.0
CVE-2023-41335 fixed ab v1.93.0
CVE-2023-32683 fixed ab v1.85.0
CVE-2023-32682 fixed ab v1.85.0
CVE-2023-32323 fixed ab v1.74.0
CVE-2022-41952 fixed ab v1.53.0
CVE-2022-39374 fixed ab v1.68.0
Alle Synapse Server mit einer Version ab einschließlich 1.94.0 enthalten keine der in der Studie genannten Schwachstellen mehr.
Zu den Testergebnissen der detaillierten DAST-Analyse
E1.1 Synapse: Enumeration von Benutzernamen [niedrig]
Enumeration von Benutzernamen und E-Mail Adressen (falls hinterlegt) weiterhin möglich
„Auch wenn es kein unmittelbares Sicherheitsrisiko darstellt, kann ein Angreifer es für weitere Angriffsschritte, wie Brute-Force-Angriffe auf Nutzerpasswörter oder Social Engineering, ausnutzen.“
Dieser Angriffsvektor wird zudem durch Rate-Limiting im Synapse massiv erschwert.
E2.1 Synapse: Triviale Passwörter erlaubt [info]
Passwortrichtlinien werden nur clientseitig überprüft und durchgesetzt, dazu ist seitens Element kein Fix geplant¹ ²
„Da der Nutzer den Registrierungs-Request, der zum Server geht, aktiv abfangen und verändern muss, um ein schwaches Passwort zu setzen, liefert das Finding nur eine Information.“
Im Synapse-Server können ebenfalls Passwort-Richtlinien definiert werden, so das keine trivialen Passwörter mehr möglich sind. Des weiteren wird bei der Nutzung externer Authentifizierungs-Systeme wie LDAP, AD die Passwort-Richtlinie von diesen Systeme erzwungen.
E3.1 Synapse: Zugriff auf hochgeladene Dateien ohne Authentisierung möglich [niedrig]
In unverschlüsselten Räumen können Dateien mit Kenntnis der ID auch ohne Authentifizierung heruntergeladen werden
Gilt nur in unverschlüsselten Räumen, zudem muss für den Zugriff auf die Dateien die URL bekannt sein. Diese URL wird mit genügend Entropie erstellt, so dass die Ausnutzbarkeit dieser Lücke als eher unwahrscheinlich einzustufen ist.
E3.2 Synapse: Zugriff auf Server-Version ohne Authentisierung möglich [niedrig]
Informationen über die Version eingesetzter Softwareprodukte könnten genutzt werden um weitere Angriffsvektoren zu identifizieren.
Wir beobachten die Entwicklung des Synapse-Servers sehr genau, sobald hierfür ein Fix verfügbar ist, werden wir diesen installieren.
E4.1 Synapse: Normal privilegierte Nutzer können Umfragen beenden [niedrig]
Nur möglich mit Kenntnis der Raum-ID und der Umfrage-ID.
E5.1 Synapse: Logging von Passwort-Reset-Informationen [niedrig]
„Mit Zugriff auf die Logs des Synapse-Servers kann man unter Umständen die Passwörter von Nutzern auf ein beliebiges, selbst gewähltes Passwort ändern. Dafür muss man jedoch den Nutzer überzeugen, auf den zugeschickten Passwort-Reset-Link zu klicken oder auf ein Fehlverhalten des Nutzers warten.“
Zugriff auf die Logs haben i.d.R. nur die Administratoren des Servers. Trotzdem ist dies tatsächlich recht inkonsequent im Synapse umgesetzt. Teilweise werden sensitive Informationen Redacted und teilweise nicht. Hier hoffen wir auf einen Fix der Entwickler.
E6.1 Synapse: URL-Deny-List-Bypass bei der Generierung von URL-Previews [niedrig]
klassifiziert als CVE-2023-32683 und ab einschließlich der Version 1.85.0 behoben
E7.1 Synapse: Lange Gültigkeit der Session [niedrig]
Die Einstellung session_lifetime sollte in der Konfigurationsdatei homeserver.yaml reduziert werden, die Standarteinstellung ist weiterhin unendlich.
Die Session Lifetime lässt sich in der Konfiguration des Synapse-Servers nach Belieben konfigurieren.
E8.1 Synapse: Datei-Upload erlaubt beliebiges Dateiformat [info]
„Die fehlende Überprüfung des Dateiformats spielt nur bei nicht verschlüsselten Räumen eine Rolle.“
Hier bietet der Matrix Content Scanner Abhilfe. Durch den Einsatz dieses Tools kann sowohl der Mime-Type geprüft werden, als auch Uploads nach Viren gescannt werden.
E9.1 Synapse: Keine Virenüberprüfung beim Datei-Upload [info]
„Die fehlende Überprüfung des Dateiformats spielt nur bei nicht verschlüsselten Räumen eine Rolle.“
Siehe E8.1
E10.1 Element: Keine Auslieferung des X-Frame-Options Headers [info]
Die Anwendung schützt Nutzer nicht vor Clickjacking-Angriffen. Ein iFrame könnte mit beliebigem Inhalt überlagert werden, was Nutzer dazu bringen könnte, unwissend mit der Anwendung zu interagieren
Um jede Art von Framing zu verhindern, sollte der folgende Header gesetzt werden:
Content-Security-Policy:
frame-ancestors 'none';Aus unserer Sicht ist dies keine Problem des Homeservers bzw. von Element, sondern viel mehr eins des verwendeten Reverse-Proxies (Nginx, Haproxy).
E11.1 Element, Synapse: HSTS-Header nicht implementiert [niedrig]
Setze den folgenden Header in der NGINX-Konfiguration, um MITM-Angriffe zu verhindern:
add_header Strict-Transport-Security “max-age=31536000; includeSubDomains” always;
Siehe auch E10.1.
E12.1 Element, Synapse: MIME-Sniffing Angriffe potenziell möglich [info]
Setze den folgenden Header in der NGINX-Konfiguration, um MIME-Sniffing zu verhindern:
X-Content-Type-Options: nosniff
Siehe auch E10.1.