Cadenza and BSI IT-Grundschutz

On this page we discuss several German BSI IT-Grundschutz modules that are typically relevant to a Cadenza deployment. As the BSI IT-Grundschutz is a German compliance framework and only applies to German installations, the following section is in German. Please contact us if you need assistance with BSI IT-Grundschutz in English.

Vorbemerkung

Im Rahmen von IT-Sicherheitskonzepten und der Anwendung der IT-Grundschutz-Methodik werden den Komponenten im Schritt der Modellierung des Informationsverbundes jeweils passende Bausteine zugeordnet. Üblicherweise sind für den Verbund Cadenza folgende Bausteine relevant:

Sollten Sie weitere Informationen über die Bereiche CON.8 Software-Entwicklung und CON.10 Entwicklung von Webanwendungen benötigen, kontaktieren Sie uns bitte oder konsultieren Sie das PEAC.

Im Folgenden werden für die einzelnen Bausteine die enthaltenen Anforderungen und die durch Disy bei Cadenza und Fachanwendungen getroffenen Maßnahmen besprochen. Dabei ist zu beachten, dass nicht alle Anforderungen abschließend in diesem Dokument geklärt werden können, da diese in Ihrer Organisation individuell zu regeln sind.

Das Bundesamt für Sicherheit in der Informationstechnik (BSI) stellt die Dokumente zum IT-Grundschutz zum Download bereit. Ferner verweisen wir bei den einzelnen Bausteinen auch nochmals auf die entsprechenden Dokumente.

Im Lauf der Zeit sind einige Anforderungen entfallen. Wir beziehen uns bei diesem Dokument auf den Stand aus dem Februar 2023 (Edition 2023) und haben die dort als entfallen markierten Anforderungen der besseren Leserbarkeit wegen nicht nochmals in diesem Dokument aufgelistet.

Die Bausteine beschreiben den SOLL-Zustand. Das bedeutet, dass Sie anhand dieser Vorlagen abschätzen und prüfen können, ob Cadenza entsprechend den Maßgaben konfiguriert wurde und betrieben wird, oder wie gegebenenfalls ein IT-Grundschutz-konformer Betrieb erreicht werden kann.

Gehen Sie frühzeitig in Abstimmung mit Ihrem Informationssicherheitsbeauftragten (ISB). Diese Person sollte Ihr erster Kontakt sein.

APP.1.4 Mobile Anwendung (Apps)

Basis-Anforderungen

Die folgenden Anforderungen MÜSSEN für diesen Baustein vorrangig erfüllt werden.

APP.1.4.A1 Anforderungsanalyse für die Nutzung von Apps (B) [Fachverantwortliche]

In der Anforderungsanalyse MÜSSEN insbesondere Risiken betrachtet werden, die sich aus der mobilen Nutzung ergeben. Die Institution MUSS prüfen, ob ihre Kontroll- und Einflussmöglichkeiten auf die Betriebssystemumgebung mobiler Endgeräte ausreichend sind, um sie sicher nutzen zu können.

Erläuterungen und Hinweise

Diese Anforderung liegt im Bereich des AG und wird von Disy nicht umgesetzt. Disy kann jedoch bei Bedarf an dieser Anforderung konzeptionell mitarbeiten, sprechen Sie und hierzu gerne an.

APP.1.4.A5 Minimierung und Kontrolle von App-Berechtigungen (B) [Fachverantwortliche]

Sicherheitsrelevante Berechtigungseinstellungen MÜSSEN so fixiert werden, dass sie nicht durch Personen oder Apps geändert werden können. Wo dies technisch nicht möglich ist, MÜSSEN die Berechtigungseinstellungen regelmäßig geprüft und erneut gesetzt werden. Bevor eine App in einer Institution eingeführt wird, MUSS sichergestellt werden, dass sie nur die minimal benötigten App-Berechtigungen für ihre Funktion erhält. Nicht unbedingt notwendige Berechtigungen MÜSSEN hinterfragt und gegebenenfalls unterbunden werden.

Erläuterungen und Hinweise

Diese Anforderung liegt im Bereich des AG und wird von Disy nicht umgesetzt. Disy kann jedoch bei Bedarf an dieser Anforderung konzeptionell mitarbeiten, sprechen Sie und hierzu gerne an.

Die App benötigt folgende Rechte, wenn die entsprechenden Funktionen genutzt werden sollen. Ein entsprechender Zugriffsrechte-Dialog wird bei erstmaliger Nutzung eingeblendet:

  • Standortfreigabe: zur Ermittlung und Anzeige des aktuellen Standorts

  • Kamera: zum Aufnehmen von Fotos (werden als Anhänge in Karten-Objekten gespeichert)

  • Fotos: zur Auswahl von bestehenden Fotos aus der Fotobibliothek des Systems (werden als Anhänge in Karten-Objekten gespeichert)

  • Mikrofon: zur Aufnahme von Sprachnotizen (werden als Anhänge in Karten-Objekten gespeichert)

  • Apple iCloud Drive: Zum Anlegen eines Datenbackups in iCloud Drive

APP.1.4.A7 Sichere Speicherung lokaler App-Daten (B)

Wenn Apps auf interne Dokumente der Institution zugreifen können, MUSS sichergestellt sein, dass die lokale Datenhaltung der App angemessen abgesichert ist. Insbesondere MÜSSEN Zugriffsschlüssel verschlüsselt abgelegt werden. Außerdem DÜRFEN vertrauliche Daten NICHT vom Betriebssystem an anderen Ablageorten zwischengespeichert werden.

Erläuterungen und Hinweise

Die App lädt nach vorheriger Anmeldung von einem Backend, dem sog. Mobile Server, bereitgestelltes Kartenmaterial, Vektordaten und Metadaten nach. Diese werden dann offline in der App weiter verwendet. Diese Daten werden lokal auf dem Gerät im App-Verzeichnis gespeichert und sind über einen Dateibrowser (beispielsweise in iOS die App Dateien) einsehbar. Die Anmeldedaten werden in der App gespeichert. Die App speichert nur in den dafür vorgesehenen Speicherort.

Die Anmeldedaten werden gegenwärtig nicht verschlüsselt gespeichert. Dies wird in einer nächsten Version (3.3) geändert. Dann werden die Anmeldedaten verschlüsselt abgelegt.

APP.1.4.A8 Verhinderung von Datenabfluss (B)

Um zu verhindern, dass Apps ungewollt vertrauliche Daten versenden oder aus den gesendeten Daten Profile über die Benutzenden erstellt werden, MUSS die App-Kommunikation geeignet eingeschränkt werden. Dazu SOLLTE die Kommunikation im Rahmen des Test- und Freigabeverfahrens analysiert werden. Weiterhin SOLLTE überprüft werden, ob eine App ungewollte Protokollierungs- oder Hilfsdateien schreibt, die möglicherweise vertrauliche Informationen enthalten.

Erläuterungen und Hinweise

Die App sammelt keine vertraulichen Daten über den Zweck der App hinaus (Geometrieerfassung und -bearbeitung, Geo-Dokumentation).

Diese Anforderung bzw. Prüfung liegt im Bereich des AG und wird von Disy nicht umgesetzt. Disy kann jedoch bei Bedarf an dieser Anforderung unterstützen. Die Logdateien liegen auf dem Gerät unter Cadenza Mobile/CadenzaMobile/logs/log_yyy_MM_dd.txt.

Standard-Anforderungen

Gemeinsam mit den Basis-Anforderungen entsprechen die folgenden Anforderungen dem Stand der Technik für diesen Baustein. Sie SOLLTEN grundsätzlich erfüllt werden.

APP.1.4.A3 Verteilung schutzbedürftiger Apps (S)

Interne Apps der Institution und Apps, die schutzbedürftige Informationen verarbeiten, SOLLTEN über einen institutionseigenen App Store oder via MDM verteilt werden.

Erläuterungen und Hinweise

Diese Anforderung liegt im Bereich des AG und wird von Disy nicht umgesetzt. Disy kann jedoch bei Bedarf an dieser Anforderung konzeptionell mitarbeiten, sprechen Sie und hierzu gerne an.

APP.1.4.A12 Sichere Deinstallation von Apps (S)

Werden Apps deinstalliert, SOLLTEN auch Daten gelöscht werden, die auf externen Systemen, beispielsweise bei den App-Anbietenden, gespeichert wurden.

Erläuterungen und Hinweise

Der App-Anbieter, in dem Fall der AG, speichert keine anderen Daten extern als jene, die dem Zweck der App zugrunde liegen. Dem Zweck der App entsprechend werden mit der App erhobene Daten dem AG zurückgespeichert. Auch nach dem Löschen der App auf einem Endgerät bleiben die Daten auf dem Backend (Mobile Server) erhalten.

Anforderungen bei erhöhtem Schutzbedarf

Im Folgenden sind für diesen Baustein exemplarische Vorschläge für Anforderungen aufgeführt, die über dasjenige Schutzniveau hinausgehen, das dem Stand der Technik entspricht. Die Vorschläge SOLLTEN bei erhöhtem Schutzbedarf in Betracht gezogen werden. Die konkrete Festlegung erfolgt im Rahmen einer individuellen Risikoanalyse.

APP.1.4.A14 Unterstützung zusätzlicher Authentisierungsmerkmale bei Apps (H)

Falls möglich, SOLLTE für die Authentisierung in Apps ein zweiter Faktor benutzt werden. Hierbei SOLLTE darauf geachtet werden, dass eventuell benötigte Sensoren oder Schnittstellen in allen verwendeten Geräten vorhanden sind. Zusätzlich SOLLTE bei biometrischen Verfahren berücksichtigt werden, wie resistent die Authentisierung gegen mögliche Fälschungsversuche ist.

Erläuterungen und Hinweise

Diese Anforderung ist gegenwärtig nicht erfüllt.

APP.1.4.A15 Durchführung von Penetrationstests für Apps (H)

Bevor eine App für den Einsatz freigegeben wird, SOLLTE ein Penetrationstest durchgeführt werden. Dabei SOLLTEN alle Kommunikationsschnittstellen zu Backend-Systemen sowie die lokale Speicherung von Daten auf mögliche Sicherheitslücken untersucht werden. Die Penetrationstests SOLLTEN regelmäßig und zusätzlich bei größeren Änderungen an der App wiederholt werden.

Erläuterungen und Hinweise

Diese Anforderung liegt im Bereich des AG und wird von Disy nicht umgesetzt. Disy kann jedoch bei Bedarf an dieser Anforderung konzeptionell mitarbeiten, sprechen Sie und hierzu gerne an.

APP.1.4.A16 Mobile Application Management (H)

Falls möglich, SOLLTE für das zentrale Konfigurieren von dienstlichen Apps ein Mobile Application Management verwendet werden.

Erläuterungen und Hinweise

Diese Anforderung liegt im Bereich des AG und wird von Disy nicht umgesetzt. Disy kann jedoch bei Bedarf an dieser Anforderung konzeptionell mitarbeiten, sprechen Sie und hierzu gerne an.

APP.3.1 Webanwendungen und Webservices

Basis-Anforderungen

Die folgenden Anforderungen MÜSSEN für diesen Baustein vorrangig erfüllt werden.

APP.3.1.A1 Authentisierung (B)

Der IT-Betrieb MUSS Webanwendungen und Webservices so konfigurieren, dass sich Clients gegenüber der Webanwendung oder dem Webservice authentisieren müssen, wenn diese auf geschützte Ressourcen zugreifen wollen. Dafür MUSS eine angemessene Authentisierungsmethode ausgewählt werden. Der Auswahlprozess SOLLTE dokumentiert werden. Der IT-Betrieb MUSS geeignete Grenzwerte für fehlgeschlagene Anmeldeversuche festlegen.

Erläuterungen und Hinweise

Die Authentisierung an Cadenza erfolgt immer über einen externen Identity-Provider (beispielsweise AD, LDAP oder OIDC). Im Regelfall wird dazu die organisationsweite Authentisierungsmethode verwendet, beispielsweise OpenID Connect mit Keycloak. Diese Kombination ist auch unsere Empfehlung. Die Dokumentation des Auswahlprozesses muss auf Basis der getroffenen Abstimmungen hierzu erfolgen. Grenzwerte für fehlgeschlagene Anmeldeversuche werden im organisationsweiten Authentisierer konfiguriert und nicht direkt in Cadenza.

APP.3.1.A4 Kontrolliertes Einbinden von Dateien und Inhalten (B)

Falls eine Webanwendung oder ein Webservice eine Upload-Funktion für Dateien anbietet, MUSS diese Funktion durch den IT-Betrieb so weit wie möglich eingeschränkt werden. Insbesondere MÜSSEN die erlaubte Dateigröße, erlaubte Dateitypen und erlaubte Speicherorte festgelegt werden. Es MUSS festgelegt werden, welche Clients die Funktion verwenden dürfen. Auch MÜSSEN Zugriffs- und Ausführungsrechte restriktiv gesetzt werden. Zudem MUSS sichergestellt werden, dass Clients Dateien nur im vorgegebenen erlaubten Speicherort speichern können.

Erläuterungen und Hinweise

In Cadenza können Benutzer nur mit entsprechendem Anwendungsrecht bzw. mit der entsprechenden Rolle (Analyst, Creator, Administrator im Auslieferungszustand von Cadenza) Dateien im Self-Service hochladen bzw. importieren. Wenn ein Benutzer berechtigt ist, kann er Dateien bis zu einer konfigurierbaren Maximalgröße (Standardwert: 100 MB) importieren. Mögliche Dateiendungen bzw. Importformate sind: CPG, CSV, DBF, GPKG, KML, PRJ, SHP, SHX, TXT, XLSX, JSON.

Über die Anwendungsrechte für den Datenimport/Datenexport können weitere Einschränkungen erfolgen.

Die hochgeladenen Daten werden geparst und anschließend in der Datenbank, die für den Cadenza Data Sore konfiguriert ist, gespeichert. Direkt nach dem Import sind die Daten nur für den Benutzer sichtbar, der die Daten hochgeladen hat, und für den Super-Administrator. Bei Bedarf kann der Benutzer die Daten mit (allen) anderen Benutzern der Plattform teilen.

Informationen über das Teilen von Inhalten finden Sie in der Benutzer-Dokumentation unter Über Freigaben für Repositorys und Repository-Elemente.

Damit diese Vorgänge protokolliert werden, muss das Auditlogging konfiguriert sein.

Eine weitere Möglichkeit des Uploads von Dateien betrifft i. d. R. einen kleineren Benutzerkreis. Beim Import von Arbeitsmappen, Repositories und Benutzergruppen können zuvor exportierte Daten als ZIP-Dateien wieder importiert werden. Der Inhalt der Dateien wird beim Lesen während des Importvorgangs validiert. Falls der Inhalt nicht der erwarteten Struktur entspricht, wird die Datei verworfen, eine spezifische Fehlermeldung wird geloggt und für den Benutzer erscheint eine generische Fehlermeldung.

APP.3.1.A7 Schutz vor unerlaubter automatisierter Nutzung (B)

Der IT-Betrieb MUSS sicherstellen, dass Webanwendungen und Webservices vor unberechtigter automatisierter Nutzung geschützt werden. Dabei MUSS jedoch berücksichtigt werden, wie sich die Schutzmechanismen auf die Nutzungsmöglichkeiten berechtigter Clients auswirken. Wenn die Webanwendung RSS-Feeds oder andere Funktionen enthält, die explizit für die automatisierte Nutzung vorgesehen sind, MUSS dies ebenfalls bei der Konfiguration der Schutzmechanismen berücksichtigt werden.

Erläuterungen und Hinweise

Fall 1 - Der Betrieb von Cadenza erfolgt ausschließlich mit Benutzer-Authentifizierung (Login): Authentifizierte Benutzer werden als berechtigt angesehen, Cadenza auch automatisiert zu nutzen (beispielsweise über eine API). Der Schutz vor unberechtigter Nutzung besteht durch die Benutzer-Authentifizierung (Login); siehe hierzu auch APP.3.1.A1 Authentisierung (B).

Fall 2 - Der Betrieb von Cadenza erfolgt öffentlich – ohne Login: Im öffentlichen Betrieb von Cadenza, beispielsweise in Bürger-Portalen, werden Benutzer automatisch mit einem anonymen Nutzer angemeldet. Das bedeutet, dass in diesem Fall durch einen vorgeschalteten (Reverse)Proxy oder eine Firewall Maßnahmen ergriffen werden müssen, um Zugriffe einzelner Benutzer bzw. IP-Adressen zu limitieren (beispielsweise durch eine Begrenzung von HTTP-Zugriffen pro Zeiteinheit, sog. Rate Limiting).

Beide Maßnahmen (Authentifizierung und Firewall-Regeln) können kombiniert werden.

APP.3.1.A14 Schutz vertraulicher Daten (B)

Der IT-Betrieb MUSS sicherstellen, dass Zugangsdaten zur Webanwendung oder zum Webservice serverseitig mithilfe von sicheren kryptografischen Algorithmen vor unbefugtem Zugriff geschützt werden. Dazu MÜSSEN Salted Hash-Verfahren verwendet werden. Die Dateien mit den Quelltexten der Webanwendung oder des Webservices MÜSSEN vor unerlaubten Abrufen geschützt werden.

Erläuterungen und Hinweise

Cadenza selbst speichert keine Benutzer-Passwörter (zwischen), sofern eine externe Authentifizierung verwendet wird (beispielsweise AD, LDAP oder OIDC). Siehe hierzu auch APP.3.1.A1 Authentisierung (B)

Cadenza benötigt an drei Stellen Zugriff auf Passwörter:

  1. Für den Betrieb von Cadenza sind Zugriffe auf Fach- und Konfigurationsdatenbanken essenziell.

  2. Weiterhin können Passwörter im Zusammenhang mit Datenquellen (beispielsweise WFS, OpenSearch, Elasticsearch) benötigt werden.

  3. Für die Konfiguration von externen Authentifizierungs-Providern (beispielsweise AD, LDAP oder OIDC) werden ebenfalls Secrets bzw. Passwörter benötigt.

Die Passwörter werden von Cadenza in Konfigurationseinstellungen und Datenbanken grundsätzlich verschleiert gespeichert und liegen nicht im Klartext vor. Verschleiert bedeutet, dass die Passwörter reversibel obfuskiert werden. Dies ist notwendig, da Cadenza zur Laufzeit Zugriff auf die unverschlüsselten Passwörter benötigt. Sollen die verschleierten Passwörter nicht in Konfigurationseinstellungen oder Datenbanken gespeichert werden, können stattdessen Systemvariablen verwendet werden.

Weitere Informationen zum Cadenza Passwort-Encoding finden Sie unter Cadenza Passwort-Encoding.

Cadenza und der mitgelieferte Webserver (Apache Tomcat) sind so konfiguriert und programmiert, dass ausschließlich Konfigurationseinstellungen abrufbar sind, die für die Funktion und den Betrieb von Cadenza notwendig sind. Der Quelltext von Cadenza wird mittels Versionsverwaltung (Git) revisioniert abgelegt. Änderungen sind dort nachvollziehbar und dokumentiert.

Standard-Anforderungen

Gemeinsam mit den Basis-Anforderungen entsprechen die folgenden Anforderungen dem Stand der Technik für diesen Baustein. Sie SOLLTEN grundsätzlich erfüllt werden.

APP.3.1.A8 Systemarchitektur (S) [Beschaffungsstelle]

Sicherheitsaspekte SOLLTEN bereits während der Planung von Webanwendungen und Webservices betrachtet werden. Auch SOLLTE darauf geachtet werden, dass die Architektur der Webanwendung oder des Webservice die Geschäftslogik der Institution exakt erfasst und korrekt umsetzt.

Erläuterungen und Hinweise

Disy berücksichtigt aktuelle Sicherheitskonzepte bei der Entwicklung von Cadenza:

  • Disy führt Architektur- und Designreviews von allen kritischen Schnittstellen durch, die u. a. wichtige Sicherheitsaspekte bewerten.

  • Disy setzt Standardverfahren und technische Maßnahmen um, die dafür sorgen, dass ein Großteil der typischen Sicherheitsproblemklassen verhindert werden. Hier eine nicht abschließende Liste an getroffenen Maßnahmen:

    • nur Bind-Variablen für SQL-Queries

    • automatisches Escaping von allen gerenderten Webinhalten

    • automatische Origin- und CSRF-Checks für alle Aufrufe mit Seiteneffekten, Unterbindung von Stacktraces in öffentlichen Schnittstellen (Information Exposure)

Die Anforderung, die Geschäftslogik der Institution exakt zu erfassen und korrekt umzusetzen, liegt im Bereich der verantwortlichen Stelle und kann von Disy nicht direkt umgesetzt werden.

APP.3.1.A9 Beschaffung von Webanwendungen und Webservices (S)

Zusätzlich zu den allgemeinen Aspekten der Beschaffung von Software SOLLTE die Institution mindestens folgendes bei der Beschaffung von Webanwendungen und Webservices berücksichtigen:

  • sichere Eingabevalidierung und Ausgabekodierung,

  • sicheres Session-Management,

  • sichere kryptografische Verfahren,

  • sichere Authentisierungsverfahren,

  • sichere Verfahren zum serverseitigen Speichern von Zugangsdaten,

  • geeignetes Berechtigungsmanagement,

  • ausreichende Protokollierungsmöglichkeiten,

  • regelmäßige Sicherheitsupdates durch den Entwickelnden der Software,

  • Schutzmechanismen vor verbreiteten Angriffen auf Webanwendungen und Webservices sowie

  • Zugriff auf den Quelltext der Webanwendung oder des Webservices.

Erläuterungen und Hinweise
Sichere Eingabevalidierung und Ausgabekodierung

Cadenza validiert, filtert und säubert (sanitized) alle Benutzereingaben.

Der Inhalt von Dateien, welche Benutzer in Cadenza laden, wird beim Lesen und beim Importvorgang validiert. Entspricht der Inhalt nicht der erwarteten Struktur, wird die Datei verworfen und es kommt zu einer spezifischen Fehlermeldung im Log und einer generischen Fehlermeldung für den Endanwender; hierzu werden Standard-Bibliotheken und eigener Java-Code genutzt.

Benutzer-Eingaben in Cadenza sind stets mit starker Typisierung verknüpft (bspw. Integer, String, Date) und es werden nur Werte übernommen, welche zum Datentyp passen. Hierzu gibt es eine doppelte Validierung: einerseits per JavaScript im Browser-Frontend, andererseits per Java im Backend der Software.

Cadenza bereinigt sämtliche Inhalte, welche aus Datenquellen angezeigt werden. Da Cadenza keine Hoheit über angebundene Datenquellen und deren Inhalt hat, werden die dort vorgefundenen Daten vor der Anzeige im Frontend stets maskiert, damit potenziell schadhafter Code nicht im Kontext von Cadenza ausgeführt werden kann. Dadurch werden Cross-Site-Scripting-Angriffe verhindert.

Sicheres Session-Management

Disy verwendet für Cadenza die starken kryptographischen Standardverfahren des Tomcat-Containers, um Session-IDs zu erzeugen und zu verwalten.

Apache Tomcat nutzt standardmäßig SHA1PRNG, um Session-IDs zu erzeugen, via platform defaults können andere Implementierungen gewählt werden.

Sichere kryptografische Verfahren

In Cadenza werden nur geprüfte Standard-Open-Source-Bibliotheken für kryptographische Verfahren verwendet. Disy erstellt keine eigenen Krypto-Implementierungen und sorgt dafür, dass bekannte schwache Algorithmen nicht eingesetzt werden, beispielsweise keine Verwendung von MD5 oder SHA1 zur Integritäts-Prüfung, State-of-the-Art BCrypt für Passwort-Hashing und -Salting_.

Sichere Authentisierungsverfahren

siehe APP.3.1.A1 Authentisierung (B). Die Authentisierung ist so sicher, wie die Implementierung, die gewählt wurde, z. B. Active Directory, Keycloak. Cadenza hat einen Demo-Modus, bei welchem eine eingebaute Authentifizierung verwendet werden kann. Diese eingebaute Authentifizierung ist ausdrücklich nicht für den Produktivbetrieb zugelassen/geeignet und darf nur auf lokalen Demo-Umgebungen verwendet werden.

Sichere Verfahren zum serverseitigen Speichern von Zugangsdaten

Die Passwörter werden von Cadenza in Konfigurationseinstellungen und Datenbanken grundsätzlich verschleiert gespeichert und liegen nicht im Klartext vor. Details siehe APP.3.1.A14 Schutz vertraulicher Daten (B)

Geeignetes Berechtigungsmanagement

Es gilt das Prinzip der minimalen Zugriffsrechte. Alle Berechtigungen werden zentral verwaltet.

In Cadenza gibt es mehrere Kategorien von Berechtigungen, die Benutzern bzw. Benutzergruppen erteilt werden können:

  • Anwendungsrechte zur Nutzung von Cadenza-Funktionen, zusammengefasst in Benutzerrollen

  • Rechte zur Nutzung von Repositorys und deren Elementen, zusammengefasst in Freigabestufen

  • Bedingungen für die Nutzung bestimmter Daten (benutzerbezogene Dateneinschränkungen)

    Benutzergruppen, -rollen, Freigabestufen und Dateneinschränkungen werden im Management Center zentral verwaltet. Die Verwaltung der Benutzer selbst findet außerhalb von Cadenza statt. Bei der Freigabe von Inhalten definiert der Eigentümer die Zugriffsrechte für andere Benutzer gemäß des Prinzips der minimalen Zugriffsrechte. Es werden explizit Berechtigungen vergeben. Cadenza bietet ein flexibles Berechtigungskonzept, das dynamische Anpassungen ermöglicht. Es werden Standard-Benutzerrollen zur Verfügung gestellt, die sinnvolle Kombinationen von Anwendungsrechten umfassen und leicht anpassbar sind.

Weitere Informationen über das Berechtigungsmanagement finden Sie in der Benutzer-Dokumentation unter Über Freigaben für Repositorys und Repository-Elemente.

Ausreichende Protokollierungsmöglichkeiten

Cadenza kann bezüglich Logging feingranular (auf Klassenebene) konfiguriert werden. Die Standard-Konfiguration eignet sich für den Produktivbetrieb, kann aber ohne Weiteres an spezielle Anforderungen angepasst werden. Als Logging-Framework wird Log4j verwendet. Es stehen alle Möglichkeiten dieses Frameworks zur Verfügung stehen.

Bei Bedarf kann zusätzlich das Auditlogging konfiguriert werden. Dann werden neben technischen Ereignissen auch Benutzerinteraktionen in ein separates Datenbankschema gespeichert.

Regelmäßige Sicherheitsupdates durch den Entwickelnden der Software

Disy nutzt statische Code-Analyse (SonarQube) und Tools zur regelmäßigen Schwachstellenanalyse (beispielsweise Snyk, npm audit, OWASP Dependency Track). Disy prüft regelmäßig (aktuell wöchentlich) die Aktualität der verwendeten Drittanbieter-Bibliotheken. Bei dieser Prüfung wird eine dem Stand der Technik entsprechende Schwachstellenanalyse durchgeführt (Trivy).

Schutzmechanismen vor verbreiteten Angriffen auf Webanwendungen und Webservices

Disy arbeitet ausschließlich mit Merge-Requests, welche nach einem Code-Review durchgeführt werden. Zusätzlich werden mit einer statischen Code-Analyse (SonarQube) Qualität und Sicherheit regelmäßig geprüft.

Zugriff auf den Quelltext der Webanwendung oder des Webservices

Eine Einsicht ist unter vorheriger Absprache und Unterzeichnung eines NDAs in den Räumlichkeiten der Disy Informationssysteme GmbH möglich.

APP.3.1.A11 Sichere Anbindung von Hintergrundsystemen (S)

Der Zugriff auf Hintergrundsysteme, auf denen Funktionen und Daten ausgelagert werden, SOLLTE ausschließlich über definierte Schnittstellen und von definierten IT-Systemen aus möglich sein. Bei der Kommunikation über Netz- und Standortgrenzen hinweg SOLLTE der Datenverkehr authentisiert und verschlüsselt werden.

Erläuterungen und Hinweise

Cadenza unterstützt die authentisierte und verschlüsselte Anbindung von Datenbanken und Geodatendiensten. Dies gilt auch für die von Cadenza zwingend benötigten Datenbankverbindung.

Konkret werden folgende Verfahren unterstützt:

Datenbankverbindungen:

  • Benutzername und Passwort

  • TLS-Transportverschlüsselung

  • Certificate Authentication (über Java Trust Store)

Geodienste (WMS, WMTS, ArcGIS-REST-Schnittstellen):

  • HTTP Basic Auth

  • TLS (HTTPS)

  • Certificate Authentication (über Java Trust Store)

Voraussetzung ist natürlich, dass die anzubindenden Datenbanken und Geodienste ebenfalls Authentifizierung und Verschlüsselung unterstützen.

APP.3.1.A12 Sichere Konfiguration (S)

Webanwendungen und Webservices SOLLTEN so konfiguriert sein, dass auf ihre Ressourcen und Funktionen ausschließlich über die vorgesehenen, abgesicherten Kommunikationspfade zugegriffen werden kann. Der Zugriff auf nicht benötigte Ressourcen und Funktionen SOLLTE deaktiviert werden. Falls dies nicht möglich ist, SOLLTE der Zugriff soweit wie möglich eingeschränkt werden. Folgendes SOLLTE bei der Konfiguration von Webanwendungen und Webservices umgesetzt werden:

  • Deaktivieren nicht benötigter HTTP-Methoden,

  • Konfigurieren der Zeichenkodierung,

  • Vermeiden von sicherheitsrelevanten Informationen in Fehlermeldungen und Antworten,

  • Speichern von Konfigurationsdateien außerhalb des Web-Root-Verzeichnisses sowie

  • Festlegen von Grenzwerten für Zugriffsversuche.

Erläuterungen und Hinweise

Cadenza ist im Auslieferungszustand so konfiguriert, dass nur notwendige Ressourcen und Funktionen erreichbar sind.

Informationen zum Thema Absicherung von Cadenza finden Sie unter Securing Cadenza.

Deaktivieren nicht benötigter HTTP-Methoden

Cadenza setzt einen CsrfProtectionFilter ein. Der Filter stellt sicher, dass alle zustandsverändernden HTTP-Anfragen (wie POST, PUT, DELETE) durch die Anforderung eines gültigen CSRF-Tokens im Antrag vor CSRF-Angriffen geschützt sind.

Konfigurieren der Zeichenkodierung

Der Zeichensatz ist konfigurierbar und sollte konsistent zur Zeichenkodierung der verwendeten Datenbanken und anderer beteiligter Software (beispielsweise Firewall, Reverse Proxy oder WAF) sein. Cadenza verwendet standardmäßig UTF-8.

Vermeiden von sicherheitsrelevanten Informationen in Fehlermeldungen und Antworten

Alle Cadenza-Fehler, die Benutzer ggf. zu sehen bekommen, sind generisch und enthalten lediglich eine Error-ID als eindeutiges Merkmal. Detaillierte Informationen können über diese ID in den Logfiles nachvollzogen werden. Konfigurationsdateien werden außerhalb des Web-Root-Verzeichnisses abgelegt (Standardkonfiguration).

Speichern von Konfigurationsdateien außerhalb des Web-Root-Verzeichnisses

Dieses Vorgehen wird von Cadenza unterstützt und als Best Practice empfohlen. Die Defaultkonfiguration setzt die Anforderung bereits um.

Festlegen von Grenzwerten für Zugriffsversuche

Eine Konfiguration für das Limitieren von Zugriffsversuchen ist in Cadenza nicht vorgesehen. Dies muss über eine vorgelagerte Instanz wie Firewall, Reverse Proxy oder WAF umgesetzt werden.

APP.3.1.A21 Sichere HTTP-Konfiguration bei Webanwendungen (S)

Zum Schutz vor Clickjacking, Cross-Site-Scripting und anderen Angriffen SOLLTE der IT-Betrieb geeignete HTTP-Response-Header setzen. Dazu SOLLTEN mindestens die folgenden HTTP-Header verwendet werden:

  • Content-Security-Policy,

  • Strict-Transport-Security,

  • Content-Type,

  • X-Content-Type-Options sowie

  • Cache-Control.

Die verwendeten HTTP-Header SOLLTEN so restriktiv wie möglich sein. Cookies SOLLTEN grundsätzlich mit den Attributen secure, SameSite und httponly gesetzt werden.

Erläuterungen und Hinweise
Content-Security-Policy

Es gibt in Cadenza eine dedizierte Konfiguration, die es erlaubt, die Content-Security-Policy zu setzen. Dadurch können auch ggf. gewünschte Embedding-Szenarien in geprüften Drittanwendungen abgebildet werden (beispielsweise frame-ancestors: self und optional zusätzliche, geprüfte Origins).

Siehe dazu auch Clickjacking.

Strict-Transport-Security

Strict-Transport-Security kann im Tomcat, aber besser im Reverse Proxy konfiguriert werden. Beim Betrieb auf Kubernetes terminiert die TLS-Verbindung am LoadBalancer bzw. am IngressController. Die Komponenten sind entweder Kubernetes-extern (LoadBalancer) oder clusterweite Ressourcen (IngressController). Es muss sichergestellt sein, dass die korrekte Konfiguration der entsprechenden Komponenten durch die zuständigen Stellen vorgenommen wird.

Content-Type

Cadenza verwendet je nach Use-Case geeignete Content-Type-Header. Cadenza erlaubt kein Rendering von Benutzerinhalten mit unsicheren Content-Types.

X-Content-Type-Options

Cadenza setzt diesen Header auf nosniff, was der gängigen Empfehlung entspricht.

Cache-Control

Cadenza verwendet den Cache-Control-Header an geeigneten Stellen. Der Einsatz von Cache-Control wird regelmäßig in internen Reviews geprüft und bewertet.

Die verwendeten HTTP-Header SOLLTEN so restriktiv wie möglich sein
  • Cadenza verwendet nur ein Session-ID Cookie.

  • Im Header übertragene Cookies sind ist immer httpOnly.

  • Das Cookie kann als secure konfiguriert werden. Voraussetzung dafür ist, dass Cadenza über eine geschlossene, TLS-verschlüsselte Verbindung erreichbar ist.

  • Das SameSite Attribut kann in Cadenza konfiguriert werden. Einschränkungen sind je nach Use-Case möglich. Da Cadenza auch in Drittanwendungen eingebettet verwendet werden kann, muss hier eine Flexibilität möglich sein.

APP.3.1.A22 Penetrationstest und Revision (S)

Webanwendungen und Webservices SOLLTEN regelmäßig auf Sicherheitsprobleme hin überprüft werden. Insbesondere SOLLTEN regelmäßig Revisionen durchgeführt werden. Die Ergebnisse SOLLTEN nachvollziehbar dokumentiert, ausreichend geschützt und vertraulich behandelt werden. Abweichungen SOLLTE nachgegangen werden. Die Ergebnisse SOLLTEN dem ISB vorgelegt werden.

Erläuterungen und Hinweise

Zusätzlich gibt es zu jedem Release ein Changelog mit Hinweisen und Beschreibungen behobener Sicherheitslücken und Fehler, welches in den Release Notes der Administrator-Dokumentation zu finden ist.

Es gibt einen internen Prozess zum Umgang mit Cadenza-Sicherheitslücken: Disy veröffentlicht gefundene Sicherheitslücken transparent inkl. CVSS Score unverzüglich über die Mailingliste cadenza-security@list.disy.net, im PEAC und direkt durch die entsprechenden Kundenbetreuer.

Die Mailingliste verfügt über ein Web-Interface, über welches sich Interessenten an- und abmelden können. Alternativ kann die Anmeldung auch manuell per Mail an sympa@list.disy.net erfolgen.

Anforderungen bei erhöhtem Schutzbedarf

Im Folgenden sind für diesen Baustein exemplarische Vorschläge für Anforderungen aufgeführt, die über dasjenige Schutzniveau hinausgehen, das dem Stand der Technik entspricht. Die Vorschläge SOLLTEN bei erhöhtem Schutzbedarf in Betracht gezogen werden. Die konkrete Festlegung erfolgt im Rahmen einer individuellen Risikoanalyse.

APP.3.1.A20 Einsatz von Web Application Firewalls (H)

Institutionen SOLLTEN Web Application Firewalls (WAF) einsetzen. Die Konfiguration der eingesetzten WAF SOLLTE auf die zu schützende Webanwendung oder den Webservice angepasst werden. Nach jedem Update der Webanwendung oder des Webservices SOLLTE die Konfiguration der WAF geprüft werden.

Erläuterungen und Hinweise

Die Kontrolle über eine WAF liegt außerhalb von Cadenza und muss durch die mit dem Betrieb der Plattform betraute Instanz umgesetzt werden. Cadenza ist kompatibel mit gängigen Load-Balancern und WAF-Technologien. Hier können wir gerne beratend unterstützen.

Über eine WAF können beispielsweise Ratelimits umgesetzt werden (siehe hierzu auch APP.3.1.A7 Schutz vor unerlaubter automatisierter Nutzung (B)).

APP.3.2 Webserver

Basis-Anforderungen

Die folgenden Anforderungen MÜSSEN für diesen Baustein vorrangig erfüllt werden.

APP.3.2.A1 Sichere Konfiguration eines Webservers (B)

Nachdem der IT-Betrieb einen Webserver installiert hat, MUSS er eine sichere Grundkonfiguration vornehmen. Dazu MUSS er insbesondere den Webserver-Prozess einem Konto mit minimalen Rechten zuweisen. Der Webserver MUSS in einer gekapselten Umgebung ausgeführt werden, sofern dies vom Betriebssystem unterstützt wird. Ist dies nicht möglich, SOLLTE jeder Webserver auf einem eigenen physischen oder virtuellen Server ausgeführt werden.

Dem Webserver-Dienst MÜSSEN alle nicht notwendige Schreibberechtigungen entzogen werden. Nicht benötigte Module und Funktionen des Webservers MÜSSEN deaktiviert werden.

Erläuterungen und Hinweise

Cadenza wird aktuell in einem OCI-Image basierend auf der aktuellen Version des Eclipse Temurin-Projekts ausgeliefert. Die Konfiguration des Tomcat wurde nur geringfügig angepasst und kann eingesehen werden. Das Cadenza-OCI-Image verwendet einen unprivilegierten Benutzer. (siehe SYS.1.6.A18). Eine Kapselung wird durch Containerisierung erreicht. Der Benutzer cadenza hat nur Schreibrechte in folgenden Verzeichnissen:

  • /usr/local/tomcat/logs

  • /usr/local/tomcat/temp

  • /usr/local/tomcat/work

  • /tmp

  • /data (das Cadenza-Konfigurationsverzeichnis)

Die im Base-Image enthaltenen Tomcat-Webapps wurden entfernt.

Diese Konfiguration bezieht sich auf das Cadenza-Container-Setup. Bei anderen Installationsarten können andere Anforderungen und Konfigurationen nötig sein.

APP.3.2.A2 Schutz der Webserver-Dateien (B)

Der IT-Betrieb MUSS alle Dateien auf dem Webserver, insbesondere Skripte und Konfigurationsdateien, so schützen, dass sie nicht unbefugt gelesen und geändert werden können. Es MUSS sichergestellt werden, dass Webanwendungen nur auf einen definierten Verzeichnisbaum zugreifen können (WWW-Wurzelverzeichnis). Der Webserver MUSS so konfiguriert sein, dass er nur Dateien ausliefert, die sich innerhalb des WWW-Wurzelverzeichnisses befinden. Der IT-Betrieb MUSS alle nicht benötigten Funktionen, die Verzeichnisse auflisten, deaktivieren. Vertrauliche Daten MÜSSEN vor unberechtigtem Zugriff geschützt werden. Insbesondere MUSS der IT-Betrieb sicherstellen, dass vertrauliche Dateien nicht in öffentlichen Verzeichnissen des Webservers liegen. Der IT-Betrieb MUSS regelmäßig überprüfen, ob vertrauliche Dateien in öffentlichen Verzeichnissen gespeichert wurden.

Erläuterungen und Hinweise

Dies ist durch die angewandte Standardkonfiguration gewährleistet. Es werden keine vertraulichen Daten in öffentlichen Verzeichnissen abgelegt. Konfigurationsdateien werden in nicht öffentlichen Verzeichnissen gepflegt.

Die kontinuierliche Sichtung der Verzeichnisse obliegt der Betrieb habenden Stelle und kann von Disy nicht erbracht werden.

APP.3.2.A3 Absicherung von Datei-Uploads und -Downloads (B)

Alle mithilfe des Webservers veröffentlichten Dateien MÜSSEN vorher auf Schadprogramme geprüft werden. Es MUSS eine Maximalgröße für Datei-Uploads spezifiziert sein. Für Uploads MUSS genügend Speicherplatz reserviert werden.

Erläuterungen und Hinweise

Über Cadenza können unmittelbar keine Dateien veröffentlicht werden. Angemeldete Benutzer können Dateien im Self-Service bereitstellen.

Die Maximalgröße für Dateiuploads kann in Cadenza konfiguriert werden. Das Limit liegt standardmäßig bei 100 MB. Bei der Nutzung von (Reverse) Proxys, Load-Balancern, WAFs oder ähnlichen Komponenten ist die Konfiguration dieser Komponenten ebenfalls zu berücksichtigen.

Hochgeladene Daten werden von Cadenza nur temporär zwischengespeichert. Self-Service-Daten werden in einer Datenbank persistiert. Die kontinuierliche Überwachung des Speicherplatzes obliegt der Betrieb habenden Stelle und kann von Disy nicht erbracht werden.

APP.3.2.A4 Protokollierung von Ereignissen (B)

Der Webserver MUSS mindestens folgende Ereignisse protokollieren:

  • erfolgreiche Zugriffe auf Ressourcen,

  • fehlgeschlagene Zugriffe auf Ressourcen aufgrund von mangelnder Berechtigung, nicht vorhandenen Ressourcen und Server-Fehlern sowie

  • allgemeine Fehlermeldungen.

Die Protokollierungsdaten SOLLTEN regelmäßig ausgewertet werden.

Erläuterungen und Hinweise

Der mitgelieferte Tomcat nutzt hier die Standardkonfiguration, die die genannten Ereignisse protokolliert. Zusätzlich wird die Cadenza-eigene Logdatei geschrieben. Eine detaillierte Konfiguration kann durch die Betrieb habende Stelle erfolgen bzw. mit Disy abgestimmt werden.

Die kontinuierliche Sammlung, Speicherung und Analyse der Logdateien obliegt der Betrieb habenden Stelle und kann von Disy nicht erbracht werden, Cadenza unterstützt gängige Monitoring-Metriken.

Details finden Sie unter Monitoring with Prometheus.

APP.3.2.A5 Authentisierung (B)

Wenn sich Clients mit Hilfe von Passwörtern am Webserver authentisieren, MÜSSEN diese kryptografisch gesichert und vor unbefugtem Zugriff geschützt gespeichert werden. Siehe hierzu auch APP.3.1.A1 Authentisierung (B)

Erläuterungen und Hinweise

Es besteht keine Möglichkeit, sich direkt am oder über den Webserver zu authentisieren.

APP.3.2.A7 Rechtliche Rahmenbedingungen für Webangebote (B) [Fachverantwortliche, Zentrale Verwaltung, Compliance-Beauftragte]

Werden über den Webserver Inhalte für Dritte publiziert oder Dienste angeboten, MÜSSEN dabei die relevanten rechtlichen Rahmenbedingungen beachtet werden. Die Institution MUSS die jeweiligen Telemedien- und Datenschutzgesetze sowie das Urheberrecht einhalten.

Erläuterungen und Hinweise

Diese Anforderung liegt im Bereich des AG und wird von Disy nicht umgesetzt. Disy kann jedoch bei Bedarf an dieser Anforderung konzeptionell mitarbeiten, sprechen Sie und hierzu gerne an.

APP.3.2.A11 Verschlüsselung über TLS (B)

Der Webserver MUSS für alle Verbindungen durch nicht vertrauenswürdige Netze eine sichere Verschlüsselung über TLS anbieten (HTTPS). Falls es aus Kompatibilitätsgründen erforderlich ist, veraltete Verfahren zu verwenden, SOLLTEN diese auf so wenige Fälle wie möglich beschränkt werden. Wenn eine HTTPS-Verbindung genutzt wird, MÜSSEN alle Inhalte über HTTPS ausgeliefert werden. Sogenannter Mixed Content DARF NICHT verwendet werden.

Erläuterungen und Hinweise

Diese Konfiguration ist gewährleistet und kann so konfiguriert werden. Anforderungen und Entscheidungen hierzu liegen nicht bei Disy. Es wird kein Mixed Content ausgeliefert.

Standard-Anforderungen

Gemeinsam mit den Basis-Anforderungen entsprechen die folgenden Anforderungen dem Stand der Technik für diesen Baustein. Sie SOLLTEN grundsätzlich erfüllt werden.

APP.3.2.A8 Planung des Einsatzes eines Webservers (S)

Es SOLLTE geplant und dokumentiert werden, für welchen Zweck der Webserver eingesetzt und welche Inhalte er bereitstellen soll. In der Dokumentation SOLLTEN auch die Informationen oder Dienstleistungen des Webangebots und die jeweiligen Zielgruppen beschrieben werden. Für den technischen Betrieb und die Webinhalte SOLLTEN geeignete Zuständige festgelegt werden.

Erläuterungen und Hinweise

Diese Anforderung liegt im Bereich des AG und wird von Disy nicht umgesetzt. Disy kann jedoch bei Bedarf an dieser Anforderung konzeptionell mitarbeiten, sprechen Sie und hierzu gerne an.

APP.3.2.A9 Festlegung einer Sicherheitsrichtlinie für den Webserver (S)

Es SOLLTE eine Sicherheitsrichtlinie erstellt werden, in der die erforderlichen Maßnahmen und Zuständigkeiten benannt sind. Weiterhin SOLLTE geregelt werden, wie Informationen zu aktuellen Sicherheitslücken besorgt werden. Auch SOLLTE geregelt werden, wie Sicherheitsmaßnahmen umgesetzt werden und wie vorgegangen werden soll, wenn Sicherheitsvorfälle eintreten.

Erläuterungen und Hinweise

Diese Anforderung liegt im Bereich des AG und wird von Disy nicht umgesetzt. Disy kann jedoch bei Bedarf an dieser Anforderung konzeptionell mitarbeiten, sprechen Sie und hierzu gerne an.

APP.3.2.A10 Auswahl eines geeigneten Webhosters (S)

Betreibt die Institution den Webserver nicht selbst, sondern nutzt Angebote externer Unternehmen im Rahmen von Webhosting, SOLLTE die Institution bei der Auswahl eines geeigneten Webhosters auf folgende Punkte achten:

  • Es SOLLTE vertraglich geregelt werden, wie die Dienste zu erbringen sind. Dabei SOLLTEN Sicherheitsaspekte innerhalb des Vertrags schriftlich in einem Service Level Agreement (SLA) festgehalten werden.

  • Die eingesetzten IT-Systeme SOLLTEN vom Webhoster regelmäßig kontrolliert und gewartet werden. Der Webhoster SOLLTE dazu verpflichtet werden, bei technischen Problemen oder einer Kompromittierung von Kundschaftssystemen zeitnah zu reagieren.

  • Der Webhoster SOLLTE grundlegende technische und organisatorische Maßnahmen umsetzen, um seinen Informationsverbund zu schützen.

Erläuterungen und Hinweise

Diese Anforderung liegt im Bereich des AG und wird von Disy nicht umgesetzt. Disy kann jedoch bei Bedarf an dieser Anforderung konzeptionell mitarbeiten, sprechen Sie und hierzu gerne an.

APP.3.2.A12 Geeigneter Umgang mit Fehlern und Fehlermeldungen (S)

Aus den HTTP-Informationen und den angezeigten Fehlermeldungen SOLLTEN weder der Produktname noch die verwendete Version des Webservers ersichtlich sein. Fehlermeldungen SOLLTEN keine Details zu Systeminformationen oder Konfigurationen ausgeben. Der IT-Betrieb SOLLTE sicherstellen, dass der Webserver ausschließlich allgemeine Fehlermeldungen ausgibt, die Clients darauf hinweisen, dass ein Fehler aufgetreten ist. Die Fehlermeldung SOLLTE ein eindeutiges Merkmal enthalten, das es dem IT-Betrieb ermöglicht, den Fehler nachzuvollziehen. Bei unerwarteten Fehlern SOLLTE sichergestellt sein, dass der Webserver nicht in einem Zustand verbleibt, in dem er anfällig für Angriffe ist.

Erläuterungen und Hinweise

Der Tomcat-Server ist in der Konfigurationsdatei server.xml so konfiguriert, dass Produktname, Version, Fehlermeldung und Stack-Trace unterdrückt werden.

Es werden keine Details zu Systeminformationen oder Konfigurationen ausgegeben. Innerhalb von Cadenza erfolgt die Fehlerkommunikation über eine dem Anwender angezeigte Fehler-ID. Für den Webserver an sich sehen wir über HTTPS-Status-Codes hinaus keinen Mehrwert für Fehler-IDs. Tomcat ist einer der Standardwege, Java-Web-Apps zu deployen.

Zu weieren Details der Tomcat-Konfiguration siehe APP.3.2.A1.

APP.3.2.A13 Zugriffskontrolle für Webcrawler (S)

Der Zugriff von Webcrawlern SOLLTE nach dem Robots-Exclusion-Standard geregelt werden. Inhalte SOLLTEN mit einem Zugriffsschutz versehen werden, um sie vor Webcrawlern zu schützen, die sich nicht an diesen Standard halten.

Erläuterungen und Hinweise

Gegenwärtig wird kein Robots-Exclusion-Standard umgesetzt, da Cadenza in der Regel nicht unmittelbar für Web-Crawler erreichbar ist.

APP.3.2.A14 Integritätsprüfungen und Schutz vor Schadsoftware (S)

Der IT-Betrieb SOLLTE regelmäßig prüfen, ob die Konfigurationen des Webservers und die von ihm bereitgestellten Dateien noch integer sind und nicht durch Angriffe verändert wurden. Die zur Veröffentlichung vorgesehenen Dateien SOLLTEN regelmäßig auf Schadsoftware geprüft werden.

Erläuterungen und Hinweise

Diese Anforderung liegt im Bereich des AG und wird von Disy nicht umgesetzt. Disy kann jedoch bei Bedarf an dieser Anforderung konzeptionell mitarbeiten, sprechen Sie und hierzu gerne an.

APP.3.2.A16 Penetrationstest und Revision (S)

Webserver SOLLTEN regelmäßig auf Sicherheitsprobleme hin überprüft werden. Auch SOLLTEN regelmäßig Revisionen durchgeführt werden. Die Ergebnisse SOLLTEN nachvollziehbar dokumentiert, ausreichend geschützt und vertraulich behandelt werden. Abweichungen SOLLTE nachgegangen werden. Die Ergebnisse SOLLTEN dem ISB vorgelegt werden.

Erläuterungen und Hinweise

Disy prüft wöchentlich die SBOM mithilfe aktueller Schwachstellenscanner und bewertet die Ergebnisse. Gegebenenfalls werden Aktualisierungen der Softwarekomponenten bzw. des OCI-Images durchgeführt. Reviews mit dem ISB liegen nicht bei Disy. Disy kann bei Bedarf unterstützen.

APP.3.2.A20 Benennung von Anzusprechenden (S) [Zentrale Verwaltung]

Bei umfangreichen Webangeboten SOLLTE die Institution zentrale Anzusprechende für die Webangebote bestimmen. Es SOLLTEN Prozesse, Vorgehensweisen und Zuständige für Probleme oder Sicherheitsvorfälle benannt werden. Die Institution SOLLTE eine Kontaktmöglichkeit auf ihrer Webseite veröffentlichen, über die Sicherheitsprobleme an die Institution gemeldet werden können. Für die Behandlung von externen Sicherheitsmeldungen SOLLTE die Institution Prozesse definieren.

Erläuterungen und Hinweise

Diese Anforderung liegt im Bereich des AG und wird von Disy nicht umgesetzt. Disy kann jedoch bei Bedarf an dieser Anforderung konzeptionell mitarbeiten, sprechen Sie und hierzu gerne an.

Anforderungen bei erhöhtem Schutzbedarf

Im Folgenden sind für diesen Baustein exemplarische Vorschläge für Anforderungen aufgeführt, die über dasjenige Schutzniveau hinausgehen, das dem Stand der Technik entspricht. Die Vorschläge SOLLTEN bei erhöhtem Schutzbedarf in Betracht gezogen werden. Die konkrete Festlegung erfolgt im Rahmen einer individuellen Risikoanalyse.

APP.3.2.A15 Redundanz (H)

Webserver SOLLTEN redundant ausgelegt werden. Auch die Internetanbindung des Webservers und weiterer IT-Systeme, wie etwa der Webanwendungsserver, SOLLTEN redundant ausgelegt sein.

Erläuterungen und Hinweise

Diese Anforderung liegt im Bereich des AG und wird von Disy nicht umgesetzt. Disy kann jedoch bei Bedarf an dieser Anforderung konzeptionell mitarbeiten, sprechen Sie und hierzu gerne an.

Eine Redundanz (Loadbalancing) ist möglich und wird von Cadenza unterstützt. Eine Entscheidung hierüber trifft der AG.

APP.3.2.A18 Schutz vor Denial-of-Service-Angriffen (H)

Der Webserver SOLLTE ständig überwacht werden. Des Weiteren SOLLTEN Maßnahmen definiert und umgesetzt werden, die DDoS-Angriffe verhindern oder zumindest abschwächen.

Erläuterungen und Hinweise

Diese Anforderung liegt im Bereich des AG und wird von Disy nicht umgesetzt. Disy kann jedoch bei Bedarf an dieser Anforderung konzeptionell mitarbeiten, sprechen Sie und hierzu gerne an.

SYS.1.6 Containerisierung

Basis-Anforderungen

Die folgenden Anforderungen MÜSSEN für diesen Baustein vorrangig erfüllt werden.

SYS.1.6.A1 Planung des Container-Einsatzes (B)

Bevor Container eingesetzt werden, MUSS zunächst das Ziel des Container-Einsatzes (z.B. Skalierung, Verfügbarkeit, Wegwerf-Container zur Sicherheit oder CI/CD) festgelegt werden, damit alle sicherheitsrelevanten Aspekte der Installation, des Betriebs und der Außerbetriebnahme geplant werden können. Bei der Planung SOLLTE auch der Betriebsaufwand berücksichtigt werden, der durch Container-Einsatz oder Mischbetrieb entsteht. Die Planung MUSS angemessen dokumentiert werden.

Erläuterungen und Hinweise

Diese Anforderung liegt im Bereich des AG und wird von Disy nicht umgesetzt. Disy kann jedoch bei Bedarf an dieser Anforderung konzeptionell mitarbeiten, sprechen Sie und hierzu gerne an.

SYS.1.6.A2 Planung der Verwaltung von Containern (B)

Die Verwaltung der Container DARF NUR nach einer geeigneten Planung erfolgen. Diese Planung MUSS den gesamten Lebenszyklus von Inbetrieb- bis Außerbetriebnahme inklusive Betrieb und Updates umfassen. Bei der Planung der Verwaltung MUSS berücksichtigt werden, dass Erstellende eines Containers aufgrund der Auswirkungen auf den Betrieb in Teilen wie Administrierende zu betrachten sind. Start, Stopp und Überwachung der Container MUSS über die eingesetzte Verwaltungssoftware erfolgen.

Erläuterungen und Hinweise

Diese Anforderung liegt im Bereich des AG und wird von Disy nicht umgesetzt. Disy kann jedoch bei Bedarf an dieser Anforderung konzeptionell mitarbeiten, sprechen Sie und hierzu gerne an.

SYS.1.6.A3 Sicherer Einsatz containerisierter IT-Systeme (B)

Bei containerisierten IT-Systemen MUSS berücksichtigt werden, wie sich eine Containerisierung auf die betriebenen IT-Systeme und Anwendungen auswirkt, dies betrifft insbesondere die Verwaltung und Eignung der Anwendungen. Es MUSS anhand des Schutzbedarfs der Anwendungen geprüft werden, ob die Anforderungen an die Isolation und Kapselung der containerisierten IT-Systeme und der virtuellen Netze sowie der betriebenen Anwendungen hinreichend erfüllt sind. In diese Prüfung SOLLTEN die betriebssystemeigenen Mechanismen mit einbezogen werden. Für die virtuellen Netze nimmt der Host die Funktion einer Netzkomponente wahr, die Bausteine der Teilschichten NET.1 Netze und NET.3 Netzkomponenten MÜSSEN entsprechend berücksichtigt werden. Logische und Overlay-Netze MÜSSEN ebenfalls betrachtet und modelliert werden. Weiterhin MÜSSEN die eingesetzten containerisierten IT-Systeme den Anforderungen an die Verfügbarkeit und den Datendurchsatz genügen. Im laufenden Betrieb SOLLTEN die Performance und der Zustand der containerisierten IT-Systeme überwacht werden (sogenannte Health Checks).

Erläuterungen und Hinweise

Der Cadenza-Docker-Container bietet entsprechende Health Checks an (siehe Status, Health & Restart).

SYS.1.6.A4 Planung der Bereitstellung und Verteilung von Images (B)

Der Prozess zur Bereitstellung und Verteilung von Images MUSS geplant und angemessen dokumentiert werden.

Erläuterungen und Hinweise

Diese Anforderung liegt im Bereich des AG und wird von Disy nicht umgesetzt. Disy kann jedoch bei Bedarf an dieser Anforderung konzeptionell mitarbeiten, sprechen Sie und hierzu gerne an.

SYS.1.6.A5 Separierung der Administrations- und Zugangsnetze bei Containern (B)

Die Netze für die Administration des Hosts, die Administration der Container und deren Zugangsnetze MÜSSEN dem Schutzbedarf angemessen separiert werden. Grundsätzlich SOLLTE mindestens die Administration des Hosts nur aus dem Administrationsnetz möglich sein. Es SOLLTEN nur die für den Betrieb notwendigen Kommunikationsbeziehungen erlaubt werden.

Erläuterungen und Hinweise

Diese Anforderung liegt im Bereich des AG und wird von Disy nicht umgesetzt. Disy kann jedoch bei Bedarf an dieser Anforderung konzeptionell mitarbeiten, sprechen Sie und hierzu gerne an.

SYS.1.6.A6 Verwendung sicherer Images (B).

Es MUSS sichergestellt sein, dass sämtliche verwendeten Images nur aus vertrauenswürdigen Quellen stammen.

Es MUSS eindeutig identifizierbar sein, wer das Image erstellt hat. Die Quelle MUSS danach ausgewählt werden, dass die im Image enthaltene Software regelmäßig auf Sicherheitsprobleme geprüft wird und diese behoben sowie dokumentiert werden.

Die Quelle MUSS diesen Umgang mit Sicherheitsproblemen zusichern und einhalten.

Die verwendete Version von Basis-Images DARF NICHT abgekündigt(„deprecated") sein.

Es MÜSSEN eindeutige Versionsnummern angegeben sein.

Wenn ein Image mit einer neueren Versionsnummer verfügbar ist, MUSS im Rahmen des Patch- und Änderungsmanagement geprüft werden, ob und wie dieses ausgerollt werden kann.

Erläuterungen und Hinweise
Vertrauenswürdige Quelle

Die Cadenza-Images werden immer direkt von Disy bereitgestellt.

Image-Erstellung

Alle Images werden mit einer Prüfsumme verifiziert und automatisiert auf Schwachstellen gescannt.

Prüfung, Dokumentation von Sicherheitsproblemen

Gefundene Schwachstellen werden periodisch geprüft, bewertet und beseitigt.

Basis-Image-Version

Versionsnummern sind nach SemVer-Nomenklatur erstellt.

Patch- und Änderungsmanagement

Patch- oder Bugfixversionen können in der Regel ohne Änderungen an Datenbanken durchgeführt werden, maßgeblich ist immer das dem Release beiliegende Release-Notes-Dokument.

SYS.1.6.A7 Persistenz von Protokollierungsdaten der Container (B)

Die Speicherung der Protokollierungsdaten der Container MUSS außerhalb des Containers, mindestens auf dem Container-Host, erfolgen.

Erläuterungen und Hinweise

Diese Anforderung liegt im Bereich des AG und wird von Disy nicht umgesetzt. Disy kann jedoch bei Bedarf an dieser Anforderung konzeptionell mitarbeiten, sprechen Sie und hierzu gerne an.

SYS.1.6.A8 Sichere Speicherung von Zugangsdaten bei Containern (B)

Zugangsdaten MÜSSEN so gespeichert und verwaltet werden, dass nur berechtigte Personen und Container darauf zugreifen können. Insbesondere MUSS sichergestellt sein, dass Zugangsdaten nur an besonders geschützten Orten und nicht in den Images liegen. Die von der Verwaltungssoftware des Container-Dienstes bereitgestellten Verwaltungsmechanismen für Zugangsdaten SOLLTEN eingesetzt werden. Mindestens die folgenden Zugangsdaten MÜSSEN sicher gespeichert werden:

  • Passwörter jeglicher Accounts,

  • API-Keys für von der Anwendung genutzte Dienste,

  • Schlüssel für symmetrische Verschlüsselungen sowie

  • private Schlüssel bei Public-Key-Authentisierung.

Erläuterungen und Hinweise

Diese Anforderung liegt im Bereich des AG und wird von Disy nicht umgesetzt. Disy kann jedoch bei Bedarf an dieser Anforderung konzeptionell mitarbeiten, sprechen Sie und hierzu gerne an.

Standard-Anforderungen

Gemeinsam mit den Basis-Anforderungen entsprechen die folgenden Anforderungen dem Stand der Technik für diesen Baustein. Sie SOLLTEN grundsätzlich erfüllt werden.

SYS.1.6.A9 Eignung für Container-Betrieb (S)

Die Anwendung oder der Dienst, die oder der im Container betrieben werden soll, SOLLTE für den Container-Betrieb geeignet sein. Dabei SOLLTE berücksichtigt werden, dass Container häufiger für die darin ausgeführte Anwendung unvorhergesehen beendet werden können. Die Ergebnisse der Prüfung nach SYS.1.6.A3 Sicherer Einsatz containerisierter IT-Systeme SOLLTE nachvollziehbar dokumentiert werden.

Erläuterungen und Hinweise

Betrieb via Container ist eine unterstützte Installationsart von Cadenza und entsprechende Container werden gebrauchsfertig angeboten. Mehr Informationen finden Sie unter Installation as Container / with Docker.

SYS.1.6.A10 Richtlinie für Images und Container-Betrieb (S)

Es SOLLTE eine Richtlinie erstellt und angewendet werden, die die Anforderungen an den Betrieb der Container und die erlaubten Images festlegt. Die Richtlinie SOLLTE auch Anforderungen an den Betrieb und die Bereitstellung der Images enthalten.

Erläuterungen und Hinweise

Diese Anforderung liegt im Bereich des AG und wird von Disy nicht umgesetzt. Disy kann jedoch bei Bedarf an dieser Anforderung konzeptionell mitarbeiten, sprechen Sie und hierzu gerne an.

SYS.1.6.A11 Nur ein Dienst pro Container (S)

Jeder Container SOLLTE jeweils nur einen Dienst bereitstellen.

Erläuterungen und Hinweise

Die Voraussetzung ist erfüllt.

SYS.1.6.A12 Verteilung sicherer Images (S)

Es SOLLTE angemessen dokumentiert werden, welche Quellen für Images als vertrauenswürdig klassifiziert wurden und warum. Zusätzlich SOLLTE der Prozess angemessen dokumentiert werden, wie Images bzw. die im Image enthaltenen Softwarebestandteile aus vertrauenswürdigen Quellen bezogen und schließlich für den produktiven Betrieb bereitgestellt werden. Die verwendeten Images SOLLTEN über Metadaten verfügen, die die Funktion und die Historie des Images nachvollziehbar machen. Digitale Signaturen SOLLTEN jedes Image gegen Veränderung absichern.

Erläuterungen und Hinweise

Die Klassifizierung der Image-Quellen muss durch den AG erfolgen. Disy stellt Images für den Gebrauch ausschließlich via registry-ext.disy.net bereit. Dort sind auch die entsprechenden Metadaten und Signaturen einzusehen.

SYS.1.6.A13 Freigabe von Images (S)

Alle Images für den produktiven Betrieb SOLLTEN wie Softwareprodukte einen Test- und Freigabeprozess gemäß dem Baustein OPS.1.1.6 Software-Test und Freigaben durchlaufen.

Erläuterungen und Hinweise

Diese Anforderung liegt im Bereich des AG und wird von Disy nicht umgesetzt. Disy kann jedoch bei Bedarf an dieser Anforderung konzeptionell mitarbeiten, sprechen Sie und hierzu gerne an.

SYS.1.6.A14 Aktualisierung von Images (S)

Bei der Erstellung des Konzeptes für das Patch- und Änderungsmanagement gemäß OPS.1.1.3 Patch-und Änderungsmanagement SOLLTE entschieden werden, wann und wie die Updates der Images bzw. der betriebenen Software oder des betriebenen Dienstes ausgerollt werden. Bei persistenten Containern SOLLTE geprüft werden, ob in Ausnahmefällen ein Update des jeweiligen Containers geeigneter ist, als den Container vollständig neu zu provisionieren.

Erläuterungen und Hinweise

Wir empfehlen eine Neuprovisionierung der Container bei Änderungen.

SYS.1.6.A15 Limitierung der Ressourcen pro Container (S)

Für jeden Container SOLLTEN Ressourcen auf dem Host-System, wie CPU, flüchtiger und persistenter Speicher sowie Netzbandbreite, angemessen reserviert und limitiert werden. Es SOLLTE definiert und dokumentiert sein, wie das System im Fall einer Überschreitung dieser Limitierungen reagiert.

Erläuterungen und Hinweise

Diese Anforderung liegt im Bereich des AG und wird von Disy nicht umgesetzt. Disy kann jedoch bei Bedarf an dieser Anforderung konzeptionell mitarbeiten, sprechen Sie und hierzu gerne an.

SYS.1.6.A16 Administrativer Fernzugriff auf Container (S)

Administrative Zugriffe von einem Container auf den Container-Host und umgekehrt SOLLTEN prinzipiell wie administrative Fernzugriffe betrachtet werden. Aus einem Container SOLLTEN KEINE administrativen Fernzugriffe auf den Container-Host erfolgen. Applikations-Container SOLLTEN keine Fernwartungszugänge enthalten. Administrative Zugriffe auf Applikations-Container SOLLTEN immer über die Container-Runtime erfolgen.

Erläuterungen und Hinweise

Der Cadenza-Container greift nicht auf den Container-Host zu und enthält keinen Fernwartungszugang. Administrative Zugriffe erfolgen über die Container-Runtime.

SYS.1.6.A17 Ausführung von Containern ohne Privilegien (S)

Die Container-Runtime und alle instanziierten Container SOLLTEN nur von einem nicht-privilegierten System-Account ausgeführt werden, der über keine erweiterten Rechte für den Container-Dienst und das Betriebssystem des Host-Systems verfügt oder diese Rechte erlangen kann. Die Container-Runtime SOLLTE durch zusätzliche Maßnahmen gekapselt werden, etwa durch Verwendung der Virtualisierungserweiterungen von CPUs. Sofern Container ausnahmsweise Aufgaben des Host-Systems übernehmen sollen, SOLLTEN die Privilegien auf dem Host-System auf das erforderliche Minimum begrenzt werden. Ausnahmen SOLLTEN angemessen dokumentiert werden.

Erläuterungen und Hinweise

Diese Anforderung liegt im Bereich des AG und wird von Disy nicht umgesetzt. Disy kann jedoch bei Bedarf an dieser Anforderung konzeptionell mitarbeiten, sprechen Sie und hierzu gerne an.

SYS.1.6.A18 Accounts der Anwendungsdienste (S)

Die System-Accounts innerhalb eines Containers SOLLTEN keine Berechtigungen auf dem Host-System haben. Wo aus betrieblichen Gründen diese Berechtigung notwendig ist, SOLLTE diese nur für unbedingt notwendige Daten und Systemzugriffe gelten. Der Account im Container, der für diesen Datenaustausch notwendig ist, SOLLTE im Host-System bekannt sein.

Erläuterungen und Hinweise

Die System-Accounts innerhalb des Containers sind entkoppelt vom Host-System.

SYS.1.6.A19 Einbinden von Datenspeichern in Container (S)

Die Container SOLLTEN NUR auf die für den Betrieb notwendigen Massenspeicher und Verzeichnisse zugreifen können. Nur wenn Berechtigungen benötigt werden, SOLLTEN diese explizit vergeben werden. Sofern die Container-Runtime für einen Container lokalen Speicher einbindet, SOLLTEN die Zugriffsrechte im Dateisystem auf den Service-Account des Containers eingeschränkt sein. Werden Netzspeicher verwendet, so SOLLTEN die Berechtigungen auf dem Netzspeicher selbst gesetzt werden.

Erläuterungen und Hinweise

Diese Anforderung liegt im Bereich des AG und wird von Disy nicht umgesetzt. Disy kann jedoch bei Bedarf an dieser Anforderung konzeptionell mitarbeiten, sprechen Sie und hierzu gerne an.

SYS.1.6.A20 Absicherung von Konfigurationsdaten (S)

Die Beschreibung der Container-Konfigurationsdaten SOLLTE versioniert erfolgen. Änderungen SOLLTEN nachvollziehbar dokumentiert sein.

Erläuterungen und Hinweise

Diese Anforderung liegt im Bereich des AG und wird von Disy nicht umgesetzt. Disy kann jedoch bei Bedarf an dieser Anforderung konzeptionell mitarbeiten, sprechen Sie und hierzu gerne an.

Anforderungen bei erhöhtem Schutzbedarf

Im Folgenden sind für diesen Baustein exemplarische Vorschläge für Anforderungen aufgeführt, die über dasjenige Schutzniveau hinausgehen, das dem Stand der Technik entspricht. Die Vorschläge SOLLTEN bei erhöhtem Schutzbedarf in Betracht gezogen werden. Die konkrete Festlegung erfolgt im Rahmen einer individuellen Risikoanalyse.

SYS.1.6.A21 Erweiterte Sicherheitsrichtlinien (H)

Erweiterte Richtlinien SOLLTEN die Berechtigungen der Container einschränken. Mandatory Access Control (MAC) oder eine vergleichbare Technik SOLLTE diese Richtlinien erzwingen. Die Richtlinien SOLLTEN mindestens folgende Zugriffe einschränken:

  • eingehende und ausgehende Netzverbindungen,

  • Dateisystem-Zugriffe und

  • Kernel-Anfragen (Syscalls).

Die Runtime SOLLTE die Container so starten, dass der Kernel des Host-Systems alle nicht von der Richtlinie erlaubten Aktivitäten der Container verhindert (z. B. durch die Einrichtung lokaler Paketfilter oder durch Entzug von Berechtigungen) oder zumindest Verstöße geeignet meldet.

Erläuterungen und Hinweise

Diese Anforderung liegt im Bereich des AG und wird von Disy nicht umgesetzt. Disy kann jedoch bei Bedarf an dieser Anforderung konzeptionell mitarbeiten, sprechen Sie und hierzu gerne an.

SYS.1.6.A22 Vorsorge für Untersuchungen (H)

Um Container im Bedarfsfall für eine spätere Untersuchung verfügbar zu haben, SOLLTE ein Abbild des Zustands nach festgelegten Regeln erstellt werden.

Erläuterungen und Hinweise

Diese Anforderung liegt im Bereich des AG und wird von Disy nicht umgesetzt. Disy kann jedoch bei Bedarf an dieser Anforderung konzeptionell mitarbeiten, sprechen Sie und hierzu gerne an.

SYS.1.6.A23 Unveränderlichkeit der Container (H)

Container SOLLTEN ihr Dateisystem während der Laufzeit nicht verändern können. Dateisysteme SOLLTEN nicht mit Schreibrechten eingebunden sein.

Erläuterungen und Hinweise

Diese Anforderung ist erfüllt.

SYS.1.6.A24 Hostbasierte Angriffserkennung (H)

Das Verhalten der Container und der darin betriebenen Anwendungen und Dienste SOLLTE überwacht werden. Abweichungen von einem normalen Verhalten SOLLTEN bemerkt und gemeldet werden. Die Meldungen SOLLTEN im zentralen Prozess zur Behandlung von Sicherheitsvorfällen angemessen behandelt werden. Das zu überwachende Verhalten SOLLTE mindestens umfassen:

  • Netzverbindungen,

  • erstellte Prozesse,

  • Dateisystem-Zugriffe und

  • Kernel-Anfragen (Syscalls).

Erläuterungen und Hinweise

Diese Anforderung liegt im Bereich des AG und wird von Disy nicht umgesetzt. Disy kann jedoch bei Bedarf an dieser Anforderung konzeptionell mitarbeiten, sprechen Sie und hierzu gerne an.

SYS.1.6.A25 Hochverfügbarkeit von containerisierten Anwendungen (H)

Bei hohen Verfügbarkeitsanforderungen der containerisierten Anwendungen SOLLTE entschieden werden, auf welcher Ebene die Verfügbarkeit realisiert werden soll (z. B. redundant auf der Ebene des Hosts).

Erläuterungen und Hinweise

Diese Anforderung liegt im Bereich des AG und wird von Disy nicht umgesetzt. Disy kann jedoch bei Bedarf an dieser Anforderung konzeptionell mitarbeiten, sprechen Sie und hierzu gerne an.

SYS.1.6.A26 Weitergehende Isolation und Kapselung von Containern (H)

Wird eine weitergehende Isolation und Kapselung von Containern benötigt, dann SOLLTEN folgende Maßnahmen nach steigender Wirksamkeit geprüft werden:

  • feste Zuordnung von Containern zu Container-Hosts,

  • Ausführung der einzelnen Container und/oder des Container-Hosts mit Hypervisoren,

  • feste Zuordnung eines einzelnen Containers zu einem einzelnen Container-Host.

Erläuterungen und Hinweise

Diese Anforderung liegt im Bereich des AG und wird von Disy nicht umgesetzt. Disy kann jedoch bei Bedarf an dieser Anforderung konzeptionell mitarbeiten, sprechen Sie und hierzu gerne an.