Sicherheitsmechanismen
Die Extension-API bietet umfangreiche Möglichkeiten, auf das Laufzeitsystem einzuwirken. Deshalb sind Sicherheitsmaßnahmen notwendig, die der Anwender beachten muss.
Seit CODESYS Control Extension Package 4.4.0.0 wird mit der Installation des Packages die Gruppe codesysuser
angelegt. Einige Funktionen der Extension-API setzen voraus, dass der Linux-Benutzer, der sie verwendet, Mitglied der Gruppe codesysuser
ist. Sie können mit Administratorrechten einen Benutzer mit beispielsweise folgendem Befehl dieser Gruppe hinzufügen:
$ sudo adduser $USER codesysuser
Hintergrund dieser Vorgehensweise ist, dass die Mechanismen die Arbeitsverzeichnisse /var/run/codesysextension/
sowie /var/opt/codesysextension/
verwenden. Diese sind mit dem Recht 770 versehen und der Gruppe codesysuser
zugeordnet. Damit wird erreicht, dass unbefugte Benutzer keinen Einfluss auf das Laufzeitsystem nehmen können.
Wichtig
Alle Mitglieder der Gruppe codesysuser
können auf das Laufzeitsystem einwirken.
Wichtig
Die folgenden Mechanismen basieren auf einem Unix Domain Socket (UDS):
Es ist für den IEC-Programmierer notwendig, dass er bei diesen Mechanismen gegebenfalls Fehlercodes des jeweiligen Funktionsbausteins abfragt und geeignet reagiert (zum Beispiel: Verbindungsaufbau/Verbindungsabbruch).
Wichtig
Um einen Systemlastangriff zu verhindern, müssen die UDS-Gegenstellen (Unix Domain Sockets) mindestens die gleiche Priorität oder eine höhere Priorität als die IEC-Task selbst haben. Die UDS-Gegenstellen sind die mitgelieferten Beispiele oder die vom Anwender erstellten Programme, die die Funktionen der Extension-API verwenden.
Diese Priorität ist nicht die in der Taskkonfiguration von CODESYS angezeigte Priorität. Sie lässt sich auf dem Linux-System mit htop
ermitteln. Es handelt sich dabei um eine Task, die denselben Namen hat wie die in CODESYS vergebene IEC-Task.
Wichtig
Die SPS-Shell benötigt den „anonymen Benutzer“. Ist dieser aktiviert, kann nicht nachvollzogen werden, welcher Linux-Benutzer die SPS-Shell verwendet hat.
Wichtig
Die neuen Schnittstellen des CODESYS Control Extension Package bieten durch die Prozesstrennung keine Möglichkeit der Benutzerauthentifizierung (aus Sicht des CODESYS Development System). Es kann einem IEC-Anwender nicht ein entsprechender Linux-Anwender/Benutzername zugeordnet werden.
Daraus resultiert, dass bei der Sicherheitsbetrachtung der IEC-Applikation nicht nur die IEC-Anwender sondern auch die Linux-Anwender betrachtet und entsprechend administriert werden müssen!
Es dürfen nur berechtigte Benutzer administrativen Zugang auf das Linux-System des Laufzeitsystems haben.
Wichtig
Bei den Schnittstellen, die Prozesstrennung nutzen, kann nicht ausgeschlossen werden, dass Daten unverschlüsselt auf dem System weitergereicht werden. Das bedeutet, ein Angreifer mit administrativen Rechten auf dem System könnte diese mitschneiden.