Kategorien: Embedded Security
SPS-Software schützen mit CoDeSys V3.5 und CodeMeter
Software schützen ist nicht nur bei PC-Software ein Thema. Ein wirkungsvoller Schutz für SPS-Software hilft, den Nachbau von Maschinen und Anlagen zu erschweren, das Know-how, das mehr und mehr in der Embedded-Software steckt vor Reverse-Engineering zu schützen, neue Geschäftsmodelle zu ermöglichen und die Integrität des Systems zu gewährleisten. Was heute machbar ist, erläutert Oliver Winzenried, Vorstand von Wibu-Systems.
Hat sich das Bewusstsein der Hersteller und Anwender aus der Bedrohung durch Stuxnet gesteigert und haben sie sich entsprechend gegen mögliche Angriffe durch Viren & Co. gewappnet?
Im Bewusstsein der Anwender und Maschinenbauer ist das Thema Sicherheit von Automatisierungs- und Embedded Systemen heute stärker verankert als dies vor Stuxnet der Fall war. Die Regierungen vieler Länder starten Programme und gründen „Cyber-Abwehrzentren“, um kritische Infrastrukturen zu schützen. Dabei geht es entweder um den Schutz gegen terroristische Angriffe oder um Hackerangriffe auf kritische Infrastrukturen wie Verkehrsleitsysteme oder die Energie- und Wasserversorgung. Michael Hange, Präsident des Bundesamt für Sicherheit in der Informationstechnik, BSI, forderte am 23.10.2011 in der Frankfurter Allgemeinen Sonntagszeitung die Wirtschaft auf, einen Befall mit dem Duqu-Wurm zu melden. Duqu, vor dem Symantec gewarnt hatte, weist zahlreiche Parallelen zu Stuxnet auf.
Daneben gewinnt der Aspekt der unerlaubten Manipulation immer stärker an Bedeutung. Ein Beispiel: Hersteller von Windkraftanlagen sind bestrebt zu verhindern, dass Betreiber etwa durch Tuning mehr Energie als vorgesehen aus ihrem Windrad erzeugen, sofern dies zu Lasten des Verschleißes und damit auf Kosten der Gewährleistung durch den Hersteller geht.
Wie lässt sich heute ein wirksamer Manipulationsschutz von Automatisierungs-Systemen erreichen?
Technische Schutzsysteme erschweren den Nachbau von Geräten, Steuerungen und Maschinen, indem sie die eingebaute Software wirkungsvoll durch Verschlüsselung des Programm-Codes schützen. Die sichere Schlüsselspeicherung erfolgt entweder in einer Art Dongle oder durch software-basierte Aktivierung und Bindung an ein bestimmtes Gerät oder eine bestimmte Steuerung.
Schutz vor Reverse Engineering wird erreicht, da der Programm-Code nur verschlüsselt im Speicher des Zielsystems liegt und somit eine statische Analyse durch Disassemblieren nicht möglich ist. Darüber hinaus gibt es Mechanismen, die einen „Angriff“ erkennen und sofort die Lizenz sperren, so dass keine Entschlüsselung des Codes mehr erfolgen kann.
Um eine Manipulation, das heißt eine unberechtigte Veränderung des Programm-Codes, zu verhindern, wird der Programm-Code beim Hersteller digital signiert. Der Schutzmechanismus auf dem Zielsystem lässt nur das Laden und Ausführen korrekt signierter Programmteile zu. Kurzum: Ein manipuliertes Programm wird nicht ausgeführt.
Seit 2010 arbeitet Wibu-Systems mit der Firma 3S-Smart Software Solutions an der Integration der CodeMeter genannten Technologie in das SPS-Programmier- und Laufzeitsystem CoDeSys. Wie ist diesbezüglich Stand der Dinge?
Zur Messe SPS/IPC/Drives stellt 3S die Version 3.5 von CoDeSys vor, in der die CodeMeter-Technologie – hier CoDeSys Security Key genannt – vollständig integriert ist. Durch Setzen eines Häkchens lässt sich damit geschützter Code direkt aus der Entwicklungsumgebung erzeugen, der dann nur noch ausgeführt wird, wenn an dem Zielsystem ein CoDeSys Security Key angeschlossen ist.
Das neue Sicherheitskonzept hilft, wertvolles Know-how vor unberechtigtem Kopieren oder Übertragen auf andere Steuerungen zu schützen. Die Forderung nach Integritätsschutz wird durch die zusätzlich verfügbaren Sicherheitsfunktionen „signierte Applikation“ und „verschlüsselte Kommunikation“ zwischen Programmier-PC und SPS erfüllt. In Verbindung mit der integrierten Benutzerverwaltung, die den Zugriff auf Projekte oder Source Code schützt, wird somit eine Manipulation der Steuerung durch Dritte zuverlässig verhindert.
In der Vergangenheit war dies nicht möglich?
Bis dato war im CoDeSys-Entwicklungssystem lediglich ein Passwortschutz vorhanden und die SPS-Programme konnten für die Zielsysteme nicht geschützt werden. Ein CmDongle ließ sich nicht verwenden, da hierfür keine Laufzeitsoftware vorhanden war. Anders bei der Version 3.5 von CoDeSys: Hier lässt sich nun Programmcode, plattformunabhängig mit einem entsprechenden Dongle schützen.
Die tiefe Integration in CoDeSys eröffnet weitere neue Möglichkeiten. Einzelne Softwarekomponenten können nachträglich lizenziert werden. Wir nennen diese Funktion Feature-on-Demand. Mit anderen Worten: Funktionen, die bereits in der Software vorhanden sind, können zu einem beliebigen Zeitpunkt einfach ‚freigeschaltet’ werden. Das kann über das Internet erfolgen oder offline über eine Lizenzdatei nach der Auslieferung. Feature-on-Demand ermöglicht es dem Maschinenhersteller also, Leistungsmerkmale in seiner Maschine individuell und auch nachträglich zu verkaufen. Damit kann er zum Beispiel mit einer kostengünstigen Einstiegsversion seiner Maschine mit ausländischen Niedrigpreisanbietern konkurrieren und seine USPs mit wertvollen Funktionen zusätzlich verkaufen.
Darüber hinaus kann der Steuerungsanbieter mit Pay-Per-Use-Mechanismen eine bestimmte Anzahl von Lizenzen für Zielsysteme verkaufen, die der Maschinen- und Anlagenbauer in seinen Steuerungen bei Bedarf aktivieren kann. Der Hersteller kann diese Mechanismen auch verwenden, wenn er seine Maschine vermietet und nach Nutzung abrechnen möchte: So stellt er sicher, dass er seine Zahlungen erhält.
Nicht zuletzt kann der Maschinen- und Anlagenbauer auf diese Art seinen eigenen Quellcode derart schützen, dass es darin Teile gibt, die sein Kunde – also der Endanwender – sehen und ändern kann, und Teile, die quasi als Blackbox nur verwendet aber nicht verändert werden können.
Wie lassen sich all diese Funktionen beziehungsweise Features verwalten?
Die Lizenzverwaltung wird so in den Vertriebsprozess integriert, dass Lizenzen für Software genauso eine ‚Teilenummer’ bekommen wie mechanische Komponenten einer Maschine und dann in Stücklisten des ERP-Systems stehen. Das ERP-System – beispielsweise SAP – wird über eine Webschnittstelle mit der License Central verbunden, sodass die Erzeugung der Lizenzen automatisch geschieht. Die Übertragung in die Steuerung der Maschine erfolgt dann online oder offline mit einer Datei.
Sind die beschriebenen Security-Funktionen künftig standardmäßig in CoSeSys verfügbar?
Ja, so ist es. Um diese Funktionen nutzen zu können, ist nur der CoDeSys Security Key nötig, der bei 3S erworben werden kann. Für die Zielplattformen sind ebenso vorbereitete Security Keys erhältlich. Als Security Keys sind alle CodeMeter-Hardwarevarianten nutzbar – also die USB-Hardware CmStick/M oder die CmCards als MikroSD-, SD- oder CF-Karte. Der Preis ist dabei nur minimal höher als der Preis einer normalen industriellen Speicherkarte.
Gibt es neben der Zusammenarbeit mit 3S ähnliche Kooperationen auch mit anderen Steuerungsherstellern?
3S hat mit der tiefen Integration von CodeMeter in CoDeSys Pionierarbeit geleistet und ist der erste Anbieter im SPS-Bereich, der eine solche Lösung anbieten kann. Das FZI Forschungszentrum Informatik in Karlsruhe erstellt zurzeit ein Schutzprofil und evaluiert Sicherheitsfunktionen. Ein Schutzprofil ist eine Art Kriterienkatalog, der eine objektive Prüfung ermöglicht, gegen welche Angriffe unsere Lösung welchen Schutz bietet. Dies wird vom BMWi teilweise gefördert.
Daneben sind wir aber auch mit anderen Anbietern in Europa, USA und Asien im Gespräch.
Ein konkretes Beispiel möchte ich nennen: Wibu-Systems ist Validated Partner von Wind River, einer hundertprozentigen Tochter von Intel. Wind River gehört mit VxWorks zu den weltweit führenden Anbietern von Echtzeitbetriebssystemen. Wir integrieren hier unsere CodeMeter Compact Runtime, um sowohl sicheres Laden von RTP (Real Time Process)- und DKM (Downloadable Kernel Module)-Komponenten zu ermöglichen als auch den Schutz von Programmcode. Eine volle Integration in die Entwicklungsumgebung, die Eclipse-basierte VxWorks Workbench, ist in Arbeit.
Security ist eine elementare Voraussetzung, um auch die Anforderungen an Safety erfüllen zu können. Was bedeutet das?
Die Standards und Maßnahmen zur Gewährleistung von Safety stellen sicher, dass von Maschinen und Anlagen keine Gefahr ausgeht für Mensch, Umwelt oder Sachen. Dies funktioniert aber nur, wenn sichergestellt ist, dass an den sicherheitskritischen Systemen nichts manipuliert werden kann. Mit entsprechenden Security-Lösungen lassen sich diese Safety-Lösungen gegen Angriffe von außen schützen – beispielsweise gegen Ausführen von unzulässigem Programmcode oder dessen unberechtigte Veränderung.
Safety wird heute nur mit Security erreicht.
Dieter Hess
Geschäftsführer der 3S-Smart Software Solutions GmbH
„CoDeSys Security macht es Automatisierern leicht, ihre Applikationen wirkungsvoll zu schützen. Es stützt sich auf die bewährte CodeMeter-Technologie. Dadurch, dass es vollständig in CoDeSys integriert ist, sind nur ein paar Mausklicks nötig, um den Schutz zu aktivieren.
Auf eine Einarbeitung in die Technologie kann komplett verzichtet werden. Das gibt es derzeit bei keinem anderen SPS-Programmiersystem.“
KEYnote 22 – Herbstausgabe 2011