Die BPC Version 4.0 wird nicht mehr gewartet.

Sollten Sie diese BPC Version nutzen, empfehlen wir Ihnen eine Migration auf eine aktuelle Version. Die Dokumentation zur neusten BPC Version finden Sie hier. Sollten Sie Fragen haben, wenden Sie sich bitte an unseren Support.

Sicherheit

Diese Seite beschreibt integrierte Sicherheitsfunktionen des Business Process Centers sowie Maßnahmen, die für den sicheren produktiven Einsatz empfohlen werden.

Empfohlene Systemarchitektur

Für den sicheren Einsatz des BPC wird eine Kombination von verschiedenen Maßnahmen empfohlen.

Achten Sie darauf, dass eine Transportverschlüsselung (siehe TLS / HTTPS) zum Einsatz kommt. Außerdem sollten Sie ein Reverse Proxy und eine Web Application Firewall vor dem BPC einrichten.

Darstellung der empfohlenen Architektur
Illustration 1. Darstellung der empfohlenen Architektur

TLS / HTTPS

Es wird empfohlen, für das BPC eine Sichere Verbindung (TLS/HTTPS) zu konfigurieren. Somit wird eine verschlüsselte Übertragung im Netzwerk sichergestellt.

Ist dies umgesetzt, sollten Sie außerdem sichere Cookies aktivieren.

Reverse Proxy

Der Einsatz eines Reverse Proxy wird dringend empfohlen. Dieser sorgt dafür, dass das BPC auf Netzwerkebene abgeschottet und nur gezielt Netzwerkverkehr weitergeleitet wird. Ein Reverse Proxy kann zusätzliche Veränderungen am Netzwerkverkehr vornehmen und bietet weitere Funktionen, wie z.B. Caching.

Häufig wird hierfür NGINX verwendet.

Das BPC verwendet Websockets (unter /websocket). Dies erfordert je nach eingesetzter Software zusätzliche Einstellungen.

Web Application Firewall

Mit einer Web Application Firewall kann der Netzwerkverkehr gescannt und gefiltert werden. Dabei können typische Angriffe erkannt und abgewehrt werden.

Für den Client-Zugriff (User mittels Webbrowser) sollten Sie eine Allowlist mit folgenden Werten aufsetzen:

SERVER/*.* (z.B: /index.html /index.jsp /app.js)
SERVER/cxf/** -> (z.B. /cxf/bpc-core/configuration)
SERVER/resources/**
SERVER/bpc-fe-*/**
SERVER/bpc-theme-*/**
SERVER/websocket

Häufig wird hierfür ModSecurity verwendet.

Elasticsearch Zugriff

Im Auslieferungszustand bindet sich Elasticsearch nur an lokale Interfaces. Dies sollte auch so beibehalten werden.

Falls Sie den Zugriff ausdehnen wollen (zum Beispiel, um Elasticsearch im Cluster zu betreiben), dann sollten Sie Maßnahmen ergreifen, die den Zugriff einschränken.
Siehe dazu Elasticsearch per HTTPS

Mit Netzwerkzugriff auf die REST-Schnittstelle von Elasticsearch besteht uneingeschränkter Vollzugriff auf alle Daten. Daher sollte dieser Zugriff reglementiert sein.

Weitere Maßnahmen zur Erhöhung des Sicherheitsniveaus

Im Folgenden werden im BPC integrierte Sicherheitsmaßnahmen beschrieben.

Cross-Site-Request-Forgery

Im BPC wird versucht, CSRF-Angriffe abzuwehren. Wenn Sie eigene Module nutzen oder externe Anwendungen über das BPC einbinden, müssen Sie evtl. Anpassungen vornehmen, damit Sie durch den Schutzmechanismus selbst eingeschränkt werden.
Siehe dazu CSRF Abwehr

Bei Backend Connections vom Typ http_proxy ist es möglich, den CSRF Check abzuschalten.

User-Session IP Pinning

Um zu verhindern, dass eine User-Session "geklaut" wird, merkt sich das BPC beim Login die IP des Benutzers (Session Fixation). Diese Information wird bei jedem folgenden Aufruf mit der IP-Adresse des Aufrufs abgeglichen. Weicht die IP-Adresse des Aufrufs von der aus der User-Session ab, so wird der Aufruf abgelehnt.

Damit diese Funktion greift, muss beim Einsatz von Proxies der HTTP Header X-Forwarded-For korrekt gesetzt werden. Dies gilt auch für den Websocket.

HTML Sanitizing

Im Frontend wird der von den Modulen erzeugte HTML-Code automatisch bereinigt. Dabei werden JavaScript und ungültige Elemente entfernt, um Scripting-Attacken vorzubeugen. Sollten Ihre Module inline JavaScript benötigen, so können Sie dies über die Einstellung sanitzeHTML am jeweiligen Modul abschalten.

Wenn die Bereinigung Elemente aus dem HTML entfernt, so wird dies in der Browser-Konsole geloggt. Um diese Logs sehen zu können, müssen Sie das Log-Level unter Umständen auf debug/verbose einstellen.


Keywords: