Security : 5 Programmiertipps für eine sichere SPS

Martin Scheu

Martin Scheu hat früher selber Steuerungen programmiert, heute kümmert er sich um die Sicherheit der SPS.

- © privat

Steuerungen programmiert hat Martin Scheu schon als Jugendlicher gemeinsam mit seinem Vater. Heute kümmert er sich um die Security der SPS. Scheu arbeitet im Sicherheitsbereich bei Switch. Sein Arbeitgeber ist, vereinfacht formuliert, das Schweizer „Bundesamt für Sicherheit in der Informationstechnik (BSI) für Privatunternehmen“. Gemeinsam mit anderen Expertinnen und Experten hat er eine Liste mit 20 Tipps rund um die sichere SPS entwickelt und bei Gitlab zur Verfügung gestellt.

Wie wird eine SPS sicher programmiert? Hier die 5 wichtigsten Tipps:

  1. Industrieanwender:innen sollten nicht benötigte oder unbenutzte Kommunikationsports und -protokolle deaktivieren. Viele SPSen haben einen integrierten Webserver, z. B. für SPS-Status-Informationen oder sogar als vollständiges Human Machine Interface (HMI). Hersteller, die nach der Industrie-Sicherheitsnorm IEC 62443 arbeiten, sollten ein Dokument zur Verfügung stellen, welches verfügbare bzw. laufende Dienste, offene Ports und die Möglichkeit der Deaktivierung dieser Dienste oder Ports zu welchem Zeitpunkt aufzeigt. Scheu verweist dabei auf die Dokumentation von Bosch Rexroth, die beispielhaft in der Branche sei.

  2. Die Nutzerinnen und Nutzer sollten Plausibilitätskontrollen durch Quervergleiche verschiedener Messungen einbauen. Das erfordere Prozessverständnis vom Programmierer, aber wenn beispielsweise der Motor läuft, kann der Strom nicht 0 sein.

  3. Der HMI-Zugriff auf SPS-Variablen kann (und sollte) auf einen gültigen Betriebswertbereich beschränkt werden. „Aber es sollten weitere Gegenkontrollen in der SPS hinzugefügt werden, um Eingaben außerhalb der zulässigen Bereiche, welche in der HMI programmiert sind, zu verhindern oder zu alarmieren“, erklärt der Schweizer.

  4. Anwender:innen sollten kryptographische und/oder Prüfsummen zur Integritätsprüfung des SPS-Programmes verwenden. „Dieser Ratschlag ist technisch einfach umzusetzen. Jedoch erfordert dieser Ratschlag auch organisatorische Anpassungen, z. B. einen korrekt implementierten Change-Management-Prozess, damit sichergestellt wird, dass nach einer Projektänderung ein neuer Hash-Wert erstellt wird“, erklärt Scheu in seiner Sammlung.

  5. Validierung und Alarmierung für gepaarte Eingänge / Ausgänge. Wenn die Anwenderin oder der Anwender gepaarte Signale haben, wie Start/Stop oder Offen/Geschlossen, sollten stellen sie sicherstellen, dass nicht beide Signale zusammen aktiviert sind. „Alarmieren Sie den Bediener, wenn Eingangs-/Ausgangszustände auftreten, die physikalisch nicht möglich sind. Erwägen Sie, gepaarte Signale unabhängig zu machen oder Verzögerungszeitgeber hinzuzufügen, wenn das Umschalten von Ausgängen für die Aktoren schädlich sein könnte“, rät Scheu. Dieser Ratschlag sei bei Prozessleitsystemen Stand der Technik. Bei kleineren Systemen möglicherweise nicht und je nach Aufbau vom SPS-Programm führt dieser Ratschlag zu einem zusätzlichen Programmieraufwand, so Scheu.

Angriffe mit Open Source Software erkennen

Doch Scheu arbeitet nicht nur zur sicheren SPS. Open Source und OT-Security sind ein weiterer Schwerpunkt seiner Arbeit. Systeme zur Angriffserkennung (SzA) sind für viele Unternehmen der kritischen Infrastruktur gedacht. Doch nicht nur diese setzen auf die Systeme. Viele Anwendungen gibt es auch Open Source.

Scheu hat in der Vergangenheit selbst industrielle Steuerungen programmiert und meint, dass sich viele SPS-Programmierer:innen mit ihren Fähigkeiten in die Anwendungen „reinfuchsen“ könnten. Auch das deutsche BSI entwickelt in der Open Source Community mit, weiß der Schweizer. Scheu und seinen Kolleg:innen aus Deutschland tauschen sich immer wieder aus. Scheu hat für Einsteiger und Fortgeschrittene mehrere Open Source-Tools analysiert. Für Einsteiger empfiehlt er ntopng – „Damit kann man sofort loslegen.“ Zeek ist anspruchsvoller, bietet aber auch ein Einsteigerprogramm. Auch Suricata und Snort hebt der Schweizer hervor. „Allerdings ist Snort in der Open Source Variante nicht mehr so schnell unterwegs.“ Das deutsche BSI arbeitet beim Open Source-Projekt Malcolm mit. Sponsor des Open Source Projekts ist die US Cybersecurity and Infrastructure Security Agency (CISA). Industrieanwender, die sich also schlau machen wollen, sollten Github unbedingt einen Besuch abstatten.

(Ebenfalls interessant: Smart Factories: Die Zukunft der Produktion ist intelligent, vernetzt und anfällig)