Skip to main content

Netzwerksicherheit

CODESYS 4 Server nur hinter einem TLS-Reverse-Proxy betreiben

Zielgruppe: Systemadministrator

Beschreibung: Der CODESYS 4 Server stellt selbst keine TLS-Verschlüsselung bereit und ist außerhalb von localhost nur über unverschlüsseltes HTTP erreichbar. Für den Betrieb über das Netzwerk ist deshalb ein vorgeschalteter, externer TLS-Reverse-Proxy (bspw. nginx) oder Portal-Proxy vorgesehen. Der externe TLS-Reverse-Proxy (beispielsweise nginx) oder Portal-Proxy terminiert TLS und leitet sowohl HTTP- als auch WebSocket-Verbindungen an den CODESYS 4 Server weiter. Ohne einen gesicherten Kontext (HTTPS) verweigert die Web-Anwendung den Betrieb.

Maßnahme: Schalten Sie in jedem Netzwerk- oder Produktivbetrieb zwingend einen TLS-Reverse-Proxy oder Portal-Proxy vor den CODESYS 4 Server. Verwenden Sie hierfür die mitgelieferte nginx-Beispielkonfiguration oder passen Sie diese an Ihre Umgebung an. Eine Anleitung zur Einrichtung finden Sie in der Schnellstart-Anleitung.

Begründung: Ohne TLS-Verschlüsselung würden Anmeldedaten, Session-Informationen und Projektdaten im Klartext über das Netzwerk übertragen und könnten von einem Angreifer mit Zugriff auf das Netzwerk mitgelesen oder manipuliert werden. Die Web-Anwendung benötigt daher zwingend einen gesicherten Kontext (Secure Context, MSDN), ein Netzwerkbetrieb ohne vorgeschaltete TLS-Verschlüsselung ist somit technisch gar nicht möglich.

Zusätzlichen Schutz gegen Brute-Force- und (D)DoS-Angriffe einrichten

Zielgruppe: Systemadministrator

Beschreibung: CODESYS 4 begrenzt Anmeldeversuche intern durch mehrere Maßnahmen: eine zufällige Verzögerung bei der Anmeldung, maximal 10 gleichzeitige Anmeldevorgänge pro Benutzer bzw. maximal 500 insgesamt sowie einen Cache für ungültige Benutzernamen. Ein umfassender Schutz gegen Brute-Force- und (D)DoS-Angriffe ist damit jedoch nicht gegeben.

Maßnahme: Richten Sie zusätzlich auf Infrastrukturebene einen vorgelagerten Schutz gegen Brute-Force- und (D)DoS-Angriffe ein, beispielsweise Rate-Limiting und Verbindungslimits am Reverse-Proxy oder an einer vorgeschalteten Web Application Firewall (WAF). Dieser vorgelagerte Schutz liegt in Ihrer Verantwortung als Betreiber.

Begründung: Die internen Begrenzungen von CODESYS 4 erschweren Angriffe, können gezielte Brute-Force- oder (D)DoS-Angriffe jedoch nicht vollständig verhindern. Ohne vorgelagerten Schutz kann ein Angreifer die Verfügbarkeit des Systems für autorisierte Benutzer beeinträchtigen.

Eigene Portal-Proxy-Lösungen isolieren und absichern

Zielgruppe: Systemadministrator

Beschreibung: Anstelle des mitgelieferten Proxys des CODESYS 4 Servers können Sie einen eigenen Portal-Proxy oder eine eigene Session-Isolation einsetzen (beispielsweise je Session ein eigener Docker-Container mit dem CODESYS 4 Backend). Die Sicherheit eines solchen eigenen Aufbaus liegt vollständig in Ihrer Verantwortung und kann von CODESYS nicht bewertet werden. Die Verbindung zwischen Proxy und Backend ist in dieser Variante derzeit weder authentifiziert noch verschlüsselt.

Maßnahme: Isolieren und sichern Sie die Verbindung zwischen Ihrem Proxy und dem CODESYS 4 Backend ab, beispielsweise durch getrennte Hosts, Container oder Netzwerke, sodass sie für andere lokale oder entfernte Benutzer nicht erreichbar ist. Betreiben Sie diese Variante bis auf Weiteres ausschließlich in gesicherten Umgebungen. Stellen Sie sicher, dass keine Secrets (Passwörter, Tokens) protokolliert werden.

Begründung: Die Verbindung zwischen Proxy und Backend ist derzeit weder authentifiziert noch verschlüsselt. Daher könnte ein Angreifer mit Zugriff auf diese Verbindung Sitzungen kapern, sich als anderer Benutzer ausgeben, übertragene Daten mitlesen oder manipulieren oder den Zugriff auf Sitzungen blockieren.

Onlineverbindungen zu Steuerungen nur in gesicherten Netzwerken betreiben

Zielgruppe: Systemadministrator

Beschreibung: CODESYS 4 verschlüsselt die Onlineverbindung zum Gateway bzw. zur Steuerung (Laufzeitsystem) derzeit noch nicht; lediglich das Passwort der Steuerung ist bei der Übertragung kryptografisch geschützt. Die Bootapplikation, und damit das geistige Eigentum Ihres Projekts, sowie Live-Monitoring- und Steuerdaten werden momentan im Klartext über das Netzwerk übertragen.

Maßnahme: Betreiben Sie Onlineverbindungen zu Gateways und Steuerungen ausschließlich in einem gesicherten oder segmentierten Netzwerk, das für Unbefugte nicht zugänglich ist.

Begründung: Ein Angreifer mit Zugriff auf das Netzwerk könnte den unverschlüsselten Onlineverkehr mitlesen (und so beispielsweise Ihr Projekt-Know-how offenlegen) oder übertragene Daten und Befehle manipulieren.

Sichere TLS-Konfiguration am Reverse-Proxy pflegen

Zielgruppe: Systemadministrator

Beschreibung: Die TLS-Verschlüsselung erfolgt beim Betrieb des CODESYS 4 Servers durch den vorgeschalteten Reverse-Proxy, siehe auch CODESYS 4 Server nur hinter einem TLS-Reverse-Proxy betreiben. Damit obliegt Ihnen als Betreiber dieses Proxys auch die Auswahl und Pflege der Reverse-Proxy Software, der zulässigen TLS-Versionen und der Cipher-Suites.

Maßnahme: Konfigurieren Sie die zulässigen TLS-Versionen und Cipher-Suites an Ihrem Reverse-Proxy nach dem aktuellen Stand der Technik und halten Sie diese Konfiguration aktuell. Stellen Sie zudem sicher, dass Sie die Software Ihres Reverse-Proxys aktuell halten, um Sicherheitslücken darin zeitnah zu schließen.

Begründung: Veraltete TLS-Versionen oder schwache Cipher-Suites können es einem Angreifer ermöglichen, die Verschlüsselung zu brechen und übertragene Daten mitzulesen oder zu manipulieren.