Sicherheitsanalyse der JavaScript-Komponenten des Online-Portals Mein ELSTER

Testgegenstand#

Das Fraunhofer AISEC hat zwischen März und Juli 2020 im Auftrag des Bayerischen Landesamts für Steuern, Abteilung IuK, die Sicherheit der JavaScript-Komponenten des Online-Portals Mein ELSTER analysiert. Zur Durchführung wurde eine Testumgebung genutzt. Die Prüfung begann am 18.03.2020 mit der Version 47.0.0-rc005 und endete am 15.05.2020. Ein Nachtest auf die Behebung einer Schwachstelle wurde vom 18.5.2020 bis zum 03.06.2020 auf der Version 47.4.0-rc001 durchgeführt. Ein weiterer Nachtest auf die Behebung einer Schwachstelle wurde am 02.07.2020 durchgeführt auf der Version 48.0.0-alpha015.

Die Hauptziele der Sicherheitsanalyse des JavaScript-Quelltextes sind hierbei die Feststellung von möglichen Schwachstellen bei der Verarbeitung des Quellcodes im Browser sowie die Feststellung von Lücken in der Nutzung der kryptografischen Funktionen durch Mein ELSTER.

Innerhalb von Mein ELSTER sind verschiedene Prozesse als JavaScript-Komponenten realisiert. In Absprache mit dem Auftraggeber wurde der Fokus der Analyse auf folgende Prozesse innerhalb der Testumgebung gelegt:

  • Registrierung des Nutzers ohne Nutzung des Personalausweises
  • Login mit dem ELSTER-Zertifikat
  • Entschlüsselung von Postfachnachrichten und Entwürfen
  • XML-Signatur von Nachrichten
  • Ändern der Zertifikats-PIN
  • Zertifikatsverlängerung
  • Verschlüsselung der Zertifikatsdatei zur Übertragung in die App ElsterSmart mittels QR-Code durch die Webseite
  • Entschlüsselung einer aus ElsterSmart übertragenen Zertifikatsdatei mittels clientseitigem JavaScript
  • Umschlüsselung von persönlich verschlüsselten Daten nach Poolkey-Verschlüsselung

Testergebnisse#

Die Kritikalität der Befunde wurde mithilfe einer 5-stufigen Skala beurteilt: Information, Niedrig, Mittel, Hoch und Kritisch. Die Einteilung der Befunde ergibt sich wie folgt:

  • Kritische Befunde stellen konkrete Schwachstellen dar, die es erlauben, das System vollständig zu übernehmen. Dafür sind keine oder nur geringe Voraussetzungen nötig.
  • Befunde der Kategorie Hoch sind Schwachstellen, welche höheren Voraussetzungen unterliegen und/oder geringere Auswirkungen haben, z.B. die Übernahme eines Accounts statt des gesamten Systems.
  • Mittlere und Niedrige Befunde deuten auf eine Anfälligkeit hin, die die Angriffsfläche höher kategorisierter Befunde vergrößern kann.
  • Befunde der Kategorie Information liefern Hinweise auf die Verbesserung der Wartbarkeit des Quelltextes.
Insgesamt wurden im Laufe des Projekts eine als kritisch, zwei als hoch, drei als mittel sowie drei niedrig eingestufte Schwachstellen ermittelt. Alle als kritisch und hoch eingestuften Schwachstellen wurden noch vor Ablauf des Projekts beseitigt. Die verbleibenden Befunde stellen keine kritischen oder hohen Sicherheitsrisiken dar. Jedoch zeigen sich an mehreren Stellen Möglichkeiten zur Vereinfachung von Abläufen, was langfristig die Wartbarkeit des Codes erhöhen und zur Minimierung von Sicherheitsrisiken beitragen kann.