Effiziente Fehleranalyse während der SPS-Programmierung in Codesys

Forschungsprojekt Jicolyzer

Motivation und Problemstellung

Die Vernetzung von Maschinen und Anlagen nimmt zu, Programme für speicherprogrammierbare Steuerung (SPS) werden komplexer. Umso wichtiger wird das Thema Security im Industrial Internet of Things (IIoT). Denn der Funktionsumfang von SPS reicht inzwischen oft an herkömmliche Computerprogramme heran. Und die europäische Norm IEC 61131-3, die den Standard für die Applikationsentwicklung in der Industrieautomation definiert, erhöht die Ansprüche an Programmiersprachen zusätzlich. Dadurch ist der Programmcode für SPS schwerer zu überblicken und die Zahl sicherheitskritischer Fehler nimmt zu.

Jicolyzer Logo
© Adobe Stock | DIgilife
Zielsetzung des Projekts ist, es Fehler und Sicherheitsschwachstellen bei der Code-Entwicklung mit Codesys zu erkennen.

Projektziele und Lösungsansatz

Das Ziel des Projekts Jicolyzer ist es, Entwickler:innen frühestmöglich Rückmeldungen zu Fehlern und kritischen Verwundbarkeiten im Programmcode zu geben. Um das zu erreichen, werden statische Analysen für die Programmiersprachen nach der Norm IEC 61131-3 direkt in der für SPS gängigen Entwicklungsumgebung Codesys ausgeführt. Auf diese Weise erhalten Entwicklerinnen und Entwickler bereits Fehlerhinweise, während sie den Programmcode schreiben. Zudem ermöglichen statische Analysen das Auffinden von Fehlern im Programmcode, ohne ihn zu kompilieren und auszuführen. Sie können u.a. unbeabsichtigte Datenflüsse oder die falsche Verwendung von API-Bausteinen aufzeigen. Die bei der Analyse gefundenen Fehler werden – ähnlich einer Rechtschreibprüfung – im Code-Editor hervorgehoben und können sofort behoben werden.  

Das Team des Fraunhofer IEM hat innerhalb des Projekts distributive Analyseframeworks entwickelt, die in der Lage sind, just in time zu arbeiten. Diese liefern innerhalb von Sekunden Ergebnisse und halten gleichzeitig den Speicherverbrauch gering. Die Fehlererkennung im Programmcode erfolgt mittels Taint- und Type-State-Analysen, die sich durch umfangreiche Konfigurationsmöglichkeiten sowohl auf die Codesys-API als auch auf eingebundene Drittbibliotheken anwenden lassen. Die gewonnenen Projekterkenntnisse sollen Bestandteil von Codesys werden, um innovative Softwareprodukte bereits in der Entstehung effektiver abzusichern.

Projektsteckbrief

Projekttitel

Jicolyzer – Just-in-Time-Erkennung von Sicherheitsschwachstellen während der IEC61131-Code-Entwicklung mit Codesys

Laufzeit

04/2021 bis 03/2023

Fördervolumen

ca. 670.000 €

förderung
Das Jicolyzer-Projekt ist ein Forschungs- und Entwicklungs-Kooperationsprojekt des Zentralen Innovationsprogramms Mittelstand ZIM. Dieses Projekt wird vom Bundesministerium für Wirtschaft und Klimaschutz (BMWK) aufgrund eines Beschlusses des Deutschen Bundestages gefördert
Kooperationspartner
  • Codesys Development GmbH
  • Fraunhofer IEM, Paderborn
Projektleiter Dr. Matthias Meyer
Ziele
  • Statische Analyse von Programmcode nach Norm IEC 61131-3
  • Entwicklung Just-in-Time-fähiger Frameworks zur Durchführung von Taint- und Type-State-Analysen
  • Ausführung der Analysen direkt in der Entwicklungsumgebung Codesys
  • Bereitstellung von Konfigurationsmöglichkeiten der Analysen
  • Anwendung von Quick-Fixes zur automatischen Korrektur gefundener Fehler

Das Thema ist auch für Sie interessant? Dann kontaktieren Sie uns gerne!

Matthias Meyer

Contact Press / Media

Dr. Matthias Meyer

Bereichsleiter Softwaretechnik und IT-Sicherheit

Fraunhofer-Institut für Entwurfstechnik Mechatronik IEM
Zukunftsmeile 1
33102 Paderborn

Telefon +49 5251 5465-122

Jan Martin Persch

Contact Press / Media

Jan Martin Persch

Fraunhofer-Institut für Entwurfstechnik Mechatronik IEM
Zukunftsmeile 1
33102 Paderborn

Telefon +49 5251 5465122