Beim Einsatz von Concept Flex stellen sich auch Fragen hinsichtlich der Sicherheit, als Webanwendung wird der Zugriff schließlich auch von außen über das Internet ermöglicht. Diese Aspekte möchte dieser Knowledgebaseartikel beleuchten.
Allgemein
Bei der Entwicklung von Concept Flex liegt die Sicherheit mit im Fokus. Regelmäßig wird die Anwendung dahingehend geprüft. Das umfasst bspw. die Prüfungen der öffentlichen Schnittstellen (HTTP-API) und der verwendeten Bibliotheken. Hier werden stets die aktuellen Versionen von Frameworks und Bibliotheken genutzt. Als Webentwicklungs-Framework kommt Angular zum Einsatz.
Wir folgen den für das Framework hier dokumentierten empfohlenen Vorgehensweisen: https://angular.io/guide/security
Das betrifft insbesondere Cross-Site Scripting und Cross-Site Request Forgery. Gegen SQL-Injection schützt die Datenzugriffsschicht.
Komponenten
Damit eine Concept Flex Installation betrieben werden kann, werden 2 Komponenten benötigt:
-
Flex Webseite
Die Concept Flex Webseite liefert die Flex App über einen Microsoft IIS an die Clients aus und fungiert durch das installierte IIS-Modul ARR (Application Request Routing) darüber hinaus als Reverse Proxy für API Anfragen. -
Flex Webservice
Ein Windows Dienst der die HTTP Anfragen der Webseite entgegennimmt, diese verarbeitet und beantwortet.
Sollte nämlich der Webserver irgendwie gehackt werden, ist ein potentieller Angreifer bereits im LAN drinnen, während er ansonsten nur in der DMZ landen würde. Von dort aus besteht aber kein Zugriff auf andere Dienste (bspw. das Active Directory / SMB etc.).
DMZ
Die Abkürzung DMZ steht für Demilitarisierte Zone. Letztendlich ist hiermit ein Bereich im Netzwerk gemeint, der separiert vom regulären LAN ist und mit entspr. Einschränkungen konfiguriert wird. Dort werden nur die benötigten Protokolle/Ports durchgelassen, die für das Funktionieren der Concept Flex Webseite gerade noch benötigt werden. Alle anderen hingegen werden geblockt. Üblicherweise wird so eine DMZ über eine Firewall mit einem entspr. Regelwerk realisiert.Der Microsoft IIS Webserver, auf dem die Flex Webseite läuft, würde unter Berücksichtigung von Sicherheitsaspekten, demnach in so einer DMZ stehen. Dieser Server würde als StandAlone Server installiert, und nicht Mitglied einer Active Directory Domäne sein.
Damit Concept Flex funktionieren kann, werden 2 TCP Ports benötigt:
- 1 TCP Port nach außen zu den Clients (üblicherweise 443 für HTTPS)
- 1 TCP Port nach innen zum Concept Flex Webservice
Soll darüber hinaus auch der initiale Zugriff über HTTP möglich sein (wird dann sofort auf HTTPS umgeschrieben), so wird ein weiterer TCP Port nach außen benötigt (üblicherweise 80 für HTTP).
Webservice
Über die Concept Flex Webseite, die am IIS in der DMZ laufen würde, wird dann auf den Webservice zugegriffen. Der Webservice ist Teil einer ganz normalen Concept Office Installation, die neben einem zentralen Ablageort für Dateien noch Zugriff auf einen SQL Server benötigt, um zu funktionieren.
Der Webservice selbst kommuniziert standardmäßig unverschlüsselt. Wer den Webservice (der üblicherweise im internen LAN läuft) verschlüsseln will, der kann das über einen dort installierten IIS realisieren, der wiederum als ReverseProxy konfiguriert ist und die Kommunikation zur Webseite verschlüsselt.
2 Faktor Authentifizierung
Die Sicherheit von Concept Flex kann durch das Aktivieren einer 2 Faktor Authentifizierung (2FA) erhöht werden. Die Anmeldung ist dann nur noch möglich, wenn ein zweites Geheimnis mit angegeben wird.
Zum Einsatz kommt hier die offene Technik TOTP:
https://de.wikipedia.org/wiki/Time-based_One-time_Password_Algorithmus
Hierbei werden zeitabhängige Einmalkennwörter durch eine Authenticator App am Smartphone erzeugt, die zusätzlich zum Kennwort eingegeben werden müssen.
Weitere Informationen zur Aktivierung finden Sie hier: Knowledgebase - Aktivierung der 2FA für Concept Flex (wegscheider-os.de)
Weitere Überlegungen
Darüber hinaus könnte man die Sicherheit noch weiter erhöhen. Wie weit man dann konkret das treiben will, bleibt einem selbst überlassen. Als Beispiel wäre darüber hinaus denkbar, Port 80 für HTTP komplett zu blocken und nicht den Standardport 443 für HTTPS zu nehmen: Oder aber den Zugriff nur über ein separates VPN zuzulassen, über das die Webseite nur erreicht werden kann.
Welche Maßnahme auch immer, der Phantasie sind hier keine Grenzen gesetzt. Hier muss dann immer eine Abwägung zwischen der gewünschten Sicherheit und noch Nutzbarkeit der Flex Webseite gewählt werden.
Unified Threat Management Firewalls
Denkbar wäre auch, den Datenverkehr über eine externe UTM Firewall zusätzlich abzusichern. Hier ist aber auch Vorsicht geboten. Nur allzu gerne sorgen diese Systeme dafür, dass dann Fehler in der Concept Flex Webseite auftreten und diese gar nicht, oder nicht mehr so funktioniert, wie man es erwarten würde. Wenn ein Fehler also nur hinter einer solchen Firewall, aber nicht davor auftritt, ist das kein Fehler von Concept Flex.