Projekt

Allgemein

Profil

Einführung der Zwei-Faktor-Authentifizierung (2FA) bei der GDI-DE Testsuite

Bearbeitungsstand: November 2023

IT-Sicherheit

Die kontinuierlich wachsende Bedrohungslage durch Cyberangriffe führt zwangsläufig dazu, dass zum Schutz der eigenen Infrastruktur der Gewährleistung einer ausreichenden IT-Sicherheit eine immer entscheidendere Bedeutung zukommt, um potenziellen Schäden vorzubeugen.

Das BKG hat bereits einen Angriff auf die eigene Infrastruktur feststellen müssen, der rechtzeitig erkannt und durch erfolgreiche Gegenmaßnahmen verhindert werden konnte. Dies verdeutlicht umso mehr die dringende Notwendigkeit, konkrete Maßnahmen zur Gefahrenabwehr zu etablieren.

Im IT-Sicherheitsgesetz des Bundes, das die Bundesbehörden zur Gewährleistung der Informationssicherheit verpflichtet, wird die Anwendung des BSI-Grundschutzes als eine der zentralen Maßnahmen zur Erreichung der Informationssicherheit festgelegt.

Das BKG als Bundesbehörde verfolgt deshalb mit seinem Informationssicherheitmanagement System (ISMS) die möglichst konsequente Umsetzung des BSI-Grundschutzes zur Gewährleistung seiner IT-Sicherheit.

Anforderungen des IT-Grundschutzes

Die Umsetzung des BSI-Grundschutzes dient dazu, die Informationssicherheit in der Bundesverwaltung zu stärken und sicherzustellen, dass sensible Daten und Systeme angemessen geschützt werden. Die Einhaltung dieser Verpflichtung ist daher von großer Bedeutung, um die Integrität, Vertraulichkeit und Verfügbarkeit von Informationen und IT-Systemen in Bundesbehörden sicherzustellen.

Einen allgemeinen Überblick über die Inhalte des IT-Grundschutzes für mehr Informationssicherheit findet sich in folgender Broschüre:

https://www.bsi.bund.de/SharedDocs/Downloads/DE/BSI/Grundschutz/sonstiges/Informationssicherheit_mit_System.html?nn=128656

Die konkreten aus dem IT-Grundschutz resultierenden Anforderungen an die zugrundeliegende IT-Systemlandschaft sind im IT-Grundschutzkompendium in sogenannten IT-Grundschutz-Bausteinen beschrieben, die sich jeweils auf spezielle Anwendungsfälle und Systemkomponenten beziehen:

https://www.bsi.bund.de/DE/Themen/Unternehmen-und-Organisationen/Standards-und-Zertifizierung/IT-Grundschutz/IT-Grundschutz-Kompendium/IT-Grundschutz-Bausteine/Bausteine_Download_Edition_node.html

NTK und IT-Sicherheit

Bei den national technischen Komponenten der GDI-DE handelt es sich durchgängig um containerisierte Webanwendungen bei denen externe Opensource Softwarekomponenten (z.B. Masterportal, R³egistry, INSPIRE-Validator) genutzt werden.

Für derartige Anwendungen richten sich die Anforderungen des IT-Grundschutzes unter anderem auf die Vermeidung folgender anwendungsspezifischer Gefährdungspotentiale und Sicherheitsrisiken:

Webanwendungen allgemein

  • Injection-Angriffe: Dazu gehören SQL-Injection (SQLi) und Cross-Site Scripting (XSS). Angreifer können schädlichen Code in Eingabefeldern oder URLs einschleusen, der dann auf dem Server oder im Browser ausgeführt wird.
  • Authentifizierungsprobleme: Unsichere Authentifizierung und Zugriffskontrollen können es Angreifern ermöglichen, sich als andere Benutzer auszugeben oder auf geschützte Bereiche der Anwendung zuzugreifen.
  • Fehlerhafte Sitzungsverwaltung: Wenn Sitzungen nicht ordnungsgemäß verwaltet werden, können Angreifer Sitzungsdaten abfangen oder verwenden, um sich als authentifizierte Benutzer auszugeben.
  • Fehlerhafte Datenvalidierung: Wenn Eingabedaten nicht ordnungsgemäß validiert werden, können Angreifer unerwartete Eingaben verwenden, um Schwachstellen auszunutzen.
  • Externe Abhängigkeiten: Webanwendungen verwenden oft externe Bibliotheken und APIs. Wenn diese nicht aktualisiert oder sicher konfiguriert werden, können Schwachstellen in diesen Abhängigkeiten ein Risiko darstellen.
  • Unzureichende Protokollierung und Überwachung: Fehlendes oder unzureichendes Protokollieren von Aktivitäten und Sicherheitsereignissen kann dazu führen, dass Sicherheitsvorfälle nicht erkannt oder nicht angemessen darauf reagiert wird.
  • Unsichere Konfigurationen: Unsichere Standardeinstellungen oder Konfigurationen können Sicherheitslücken erzeugen, die von Angreifern ausgenutzt werden können.
  • Unzureichendes Fehler-Handling: Fehlermeldungen und Stack-Traces, die an Benutzer zurückgegeben werden, können sensible Informationen preisgeben und Angreifern Hinweise auf Schwachstellen geben.
  • DDoS-Angriffe (Distributed Denial of Service): Durch die Überflutung einer Webanwendung mit Traffic können Angreifer versuchen, sie für Benutzer unzugänglich zu machen.
  • Phishing und Social Engineering: Angreifer können versuchen, Benutzer zum Preisgeben von vertraulichen Informationen oder Anmeldeinformationen durch Täuschung zu verleiten.
  • Sicherheitsbewusstsein: Das Fehlen von Sicherheitsbewusstsein bei Entwicklern und Benutzern kann zu unsicheren Praktiken und Fehlern führen.

Um diesen Gefährdungen zu begegnen sind entsprechende regelmäßige Schutzmaßnahmen erforderlich:

  1. Schutz vor Injection-Angriffen (z.B. SQL-Injection und Cross-Site Scripting): Die Implementierung sicherer Codierungspraktiken ist entscheidend, um Benutzereingaben gründlich zu validieren und zu filtern, um unerwünschte Eingaben zu verhindern.
  2. Stärkung der Authentifizierung: Sicherheitsrichtlinien sollten sichere Authentifizierungsmethoden fördern, darunter strenge Passwortrichtlinien und die Nutzung von Zwei-Faktor-Authentifizierung. Zugriffskontrollen sollten korrekt und restriktiv konfiguriert werden.
  3. Sicherung der Sitzungsverwaltung: Sicherheitsmaßnahmen, die auf sichere Sitzungsmanagementtechniken setzen, gewährleisten den Schutz von Sitzungsdaten und die ordnungsgemäße Beendigung von Sitzungen nach dem Abmelden.
  4. Sichere Datenvalidierung: Die Validierung sämtlicher Benutzereingaben ist unerlässlich. Dabei sollte Whitelisting anstelle von Blacklisting bevorzugt werden, um Angriffe effektiv zu verhindern.
  5. Verwaltung externer Abhängigkeiten: Die regelmäßige Aktualisierung externer Bibliotheken und APIs, sowie die laufende Überwachung von Sicherheitsankündigungen, tragen dazu bei, Schwachstellen in Abhängigkeiten zu identifizieren und zu beheben.
  6. Effektives Protokollieren und Überwachen: Die Implementierung umfassender Protokollierungs- und Überwachungsverfahren ermöglicht die frühzeitige Erkennung von verdächtigen Aktivitäten und Sicherheitsvorfällen.
  7. Sicherheitskonfigurationen: Die sichere Konfiguration von Servern und Anwendungen sollte sicherstellen, dass nicht benötigte Dienste und Funktionen deaktiviert sind, um potenzielle Risiken zu minimieren.
  8. Angemessenes Fehler-Handling: Fehlermeldungen sollten keine sensiblen Informationen preisgeben, wenn sie an Endbenutzer zurückgegeben werden. Fehler sollten sicher protokolliert werden, um später analysiert zu werden.
  9. Schutz vor DDoS-Angriffen: Die Implementierung von DDoS-Schutzmechanismen und Überwachungslösungen trägt dazu bei, DDoS-Angriffe zu erkennen und effektiv zu bekämpfen.
  10. Sicherheitsbewusstsein und Schulungen: Mitarbeiterschulungen in Sicherheitsbewusstsein sind entscheidend, um Phishing-Angriffe und Betrugsversuche zu erkennen und zu verhindern.

Containerisierung und Einbindung externer Images

  • Image-Vertrauenswürdigkeit: Die Überprüfung der Vertrauenswürdigkeit von Container-Images ist wichtig. Das Herunterladen von Images aus unsicheren oder nicht vertrauenswürdigen Quellen kann ein Risiko darstellen.
  • Imagesicherheit: Container-Images können unsichere Konfigurationen, veraltete Software oder Schwachstellen enthalten, die von Angreifern ausgenutzt werden können.
  • Schwachstellenmanagement: Das Patchen und Aktualisieren von Containern und den darin enthaltenen Komponenten ist entscheidend, um Schwachstellen zu beheben. Wenn dies vernachlässigt wird, erhöht sich das Risiko.
  • Unzureichende Zugriffskontrolle: Wenn die Zugriffskontrollen nicht ordnungsgemäß konfiguriert sind, können Angreifer möglicherweise unbefugten Zugriff auf Container oder Ressourcen erhalten.
  • Netzwerksicherheit: Container kommunizieren oft miteinander und mit anderen Diensten über Netzwerke. Fehlkonfigurationen können dazu führen, dass sensible Daten über unsichere Kanäle übertragen werden.
  • Schwache Container-Isolation: Container sollten normalerweise isoliert voneinander sein, aber es besteht das Risiko, dass Schwachstellen in der Container-Laufzeitumgebung die Isolation durchbrechen und es einem Angreifer ermöglichen, von einem Container auf andere zuzugreifen.
  • Orchestrierungssicherheit: Die Orchestrierung von Containern mit Tools wie Kubernetes erfordert sichere Konfigurationen, da Schwachstellen in Orchestrierungsumgebungen schwerwiegende Auswirkungen haben können.
  • Unsichere APIs: Webanwendungen und Services in Containern veröffentlichen oft APIs. Unsichere APIs können von Angreifern missbraucht werden, um auf Anwendungsdaten oder -funktionen zuzugreifen.
  • Datenlecks: Fehlkonfigurationen oder Schwachstellen in Containern können zu Datenlecks führen, bei denen sensitive Informationen kompromittiert werden.
  • Unzureichendes Monitoring und Logging: Mangelndes Monitoring und unzureichende Protokollierung können dazu führen, dass Sicherheitsvorfälle nicht erkannt oder verfolgt werden können.
  • Komplexität: Die Verwendung mehrerer Container und Microservices kann die Sicherheitskomplexität erhöhen, da eine größere Angriffsfläche entsteht.

Um diesen Gefährdungen zu begegnen sind entsprechende regelmäßige Schutzmaßnahmen erforderlich:

  1. Durchführung regelmäßiger Sicherheitsüberprüfungen: Regelmäßige Sicherheitsüberprüfungen und Schwachstellenanalysen sollten durchgeführt werden, um potenzielle Schwachstellen in Containerumgebungen und Webanwendungen frühzeitig zu identifizieren und zu beheben.
  2. Umsetzung sicherer Konfigurationen: Container und Orchestrierungsumgebungen sollten sicher konfiguriert werden, wobei sichere Standardeinstellungen verwendet und nicht benötigte Dienste und Ports deaktiviert werden.
  3. Aktualisierung von Containern und Images: Container und Images sollten in regelmäßigen Abständen auf Sicherheitspatches und Updates überprüft und aktualisiert werden, um bekannte Schwachstellen zu beheben.
  4. Einführung sicherer Zugriffskontrollen: Strenge Zugriffskontrollen sollten implementiert werden, und die Prinzipien des geringsten Privilegs sollten angewendet werden, um sicherzustellen, dass nur autorisierte Entitäten auf Ressourcen zugreifen können.
  5. Durchführung eines umfassenden Monitorings: Die Aktivitäten in Containerumgebungen und Webanwendungen sollten kontinuierlich überwacht werden, um Anomalien, verdächtige Aktivitäten oder Sicherheitsverletzungen zu erkennen.
  6. Netzwerksicherheit: Sicherheitsmaßnahmen wie Firewalls, Netzwerksegmentierung und Intrusion Detection Systems (IDS) sollten in Containerumgebungen implementiert werden, um den Datenverkehr zu überwachen und zu schützen.
  7. Sicherheitsbewusstsein und Schulungen: Das Entwicklungsteam und andere Beteiligte sollten in Sicherheitsbewusstsein und bewährten Sicherheitspraktiken geschult werden, um das Bewusstsein für potenzielle Risiken zu schärfen und angemessen darauf zu reagieren.

Anwendungsfall: GDI-DE Testsuite

Die GDI-DE Testsuite ist so aufgebaut, dass sie die grundlegenden Testklassen des INSPIRE-Validators, der vom JRC der EU bereitgestellt wird, nachnutzt. Diese sinnvolle Architektur bedingt aber, dass nicht nur die eigens für die GDI-DE entwickelten Anteile der GDI-DE Testsuite im Hinblick auf die IT-Sicherheit zu prüfen sind, sondern auch die Verknüpfung des INSPIRE-Validators.

Die inzwischen regelmäßig durchgeführten Sicherheitsüberprüfungen haben gezeigt, dass die GDI-DE Testsuite vor allem in zwei Bereichen wesentliche Sicherheitslücken aufweist.

  • Das Image des nachgenutzten INSPIRE-Validators enthält eine signifikante Anzahl bekannter Softwareschwachstellen, die weit über den für das BKG geltenden zulässigen Werten liegen. Im Docker-Image des ETF-Validators (inspire-validator v2023.2) wurden insgesamt 891 Sicherheitslücken gefunden. Davon sind 352 Schwachstellen als hoch oder kritisch eingestuft. Dadurch, dass die Software des Inspire Validators durch das JRC der EU entwickelt wird, haben wir seitens des BKG keinen direkten Einfluss auf eine zeitnahe Behebung dieser Sicherheitslücken.
  • Die frei zugängliche Schnelltestfunktionalität öffnet derzeit bei missbräuchlicher Nutzung der URL-Eingabe, die Möglichkeit für Cross-Site Scripting Angriffe. Dies hat zur Folge, dass die GDI-DE Testsuite seitens der IT des BKG und des IT-Sicherheitsbeauftragten (ISB) als kritische Anwendung eingestuft wird, solange die festgestellten Sicherheitslücken auf Seiten des INSPIRE Validators nicht geschlossen werden können.

Sollte sich daran nichts ändern, besteht sogar die Möglichkeit, dass der INSPIRE-Validator in der GDI-DE Testsuite mittelfristig nicht mehr nachgenutzt werden kann.

Zur Reduzierung der durch eine mögliche Ausnutzung dieser Schwachstellen vorhanden Sicherheitsrisiken wurde deshalb in enger Abstimmung mit dem Vorsitz der GDI-DE entschieden, als erste Sofortmaßnahmen

  • eine Einschränkung der Zugriffsmöglichkeiten durch die Einführung der 2FA und
  • den Wegfall der Schnelltests
    umzusetzen.

Mit diesen Maßnahmen soll zumindest sichergestellt werden, dass durch die Erhöhung der Zugangshürden die missbräuchliche Ausnutzung der potenziellen Schwachstellen deutlich erschwert werden und dadurch zunächst vermieden werden kann, die auf dem ETF-Validator basierenden Tests vollkommen deaktivieren zu müssen.

Die Abschaltung des Schnelltests soll in erster Linie das Risiko von Injection Angriffen durch unkontrollierte Eingabe von URLs minimieren.

Seitens des BKG / der GDI-DE haben wir keinen direkten Einfluss auf die vom JRC entwickelte Software des ETF-Validators, so dass wir für die Beseitigung der vorhandenen Schwachstellen auf die Unterstützung des JRC angewiesen sind,
Deshalb haben wir den aus unserer Sicht aufgrund der Kritikalität der großen Anzahl der in der Software des ETF-Validator vorhandenen Sicherheitslücken dringenden Handlungsbedarf adressiert und um schnellstmögliche Behebung gebeten.
Zu Unterstützung des JRC haben wir zusätzlich die Ergebnisse einer durchgeführten Schwachstellenanalyse bereitgestellt, die auch konkrete Maßnahmen zur Behebung einer Vielzahl der vorhandenen Schwachstellen enthält.

Anwendungsfall: Andere NTKs

Für alle anderen NTKs ist die Erhöhung der IT-Sicherheit durch Einführung der 2FA derzeit nicht relevant. Im Einzelnen:

  • Geoportal.de: Nicht relevant da keine Benutzerkonten.
  • Geodatenkatalog.de: Nicht relevant, da die derzeit noch bestehende Benutzeroberfläche zukünftig nicht mehr bereitgestellt wird, da die Funktionalitäten vollständig im Geoportal.de abgebildet sind.
  • GDI-DE Registry: Derzeit sind aus Sicht der IT-Sicherheit keine weiteren Maßnahmen notwendig.
  • GDI-DE Monitor: Noch in Entwicklung.

2FA für NTK

In der aktuellen Umsetzung der 2FA, welche für die GDI-DE Testsuite zügig umgesetzt werden musste, wurden zunächst zwei Möglichkeiten angeboten:

  • Browser-Plug-In
  • Smartphone-App

Das Vorgehen dazu ist in folgendem Dokument beschrieben: https://redmine.gdi-de.org/dmsf/files/2706/view

Als weitere Alternativen sind

ebenfalls nutzbar.

Die Möglichkeit ein 2FA-Token per E-Mail bereitzustellen wird derzeit noch geprüft. Eine Umsetzung würde in jedem Fall einen Aufwand von mehreren Tagen bedeuten. Außerdem ist zu bedenken, ob diese Option tatsächlich zu einer Steigerung der IT-Sicherheit führen.

Insbesondere beim Versand von 2FA-Token per E-Mail ergeben sich folgende Schwierigkeiten:

  • Wenn auch der Token über Email verschickt wird, verliert der 2FA-Mechanismus an Wert. Wenn ein Angreifer ein Email-Konto hackt, erlangt er die komplette Kontrolle über das Konto, da er nicht nur das Passwort, sondern auch den Token kontrollieren kann.
  • Der Token-Versand per Email kann größere Latenz mit sich bringen, wenn die E-Mail einige Zeit braucht, um beim Endnutzer anzukommen. Im schlimmsten Fall ist dann der verschickte Token schon ungültig.