Suchen

Synergieeffekte von Safety und Security

| Autor / Redakteur: Thomas Bötner, Prof. Dr. Hartmut Pohl, Gregor Schmitt* / Christine Kremser

Roboter enthalten zwar grundsätzlich Safety-relevante (IEC 61508 Funktionale Sicherheit) Schutzmechanismen, um Schäden an Leib und Leben entgegen zu wirken. Allerdings ist Security (Angriffssicherheit: ISO 27034 und IEC 62443) bei (vernetzten) Robotern gleichermaßen unverzichtbar, da Security die Safety beeinflussen kann.

Firmen zum Thema

Bei Robotern spielen Safety und Security eine zentrale Rolle. Safety, weil der Einsatz der Roboter potenziell Menschenleben gefährden könnte, und Security, weil Hackerangriffe die Programmierung verändern können – mit potenziell katastrophalen Folgen.
Bei Robotern spielen Safety und Security eine zentrale Rolle. Safety, weil der Einsatz der Roboter potenziell Menschenleben gefährden könnte, und Security, weil Hackerangriffe die Programmierung verändern können – mit potenziell katastrophalen Folgen.
(Bild: gemeinfrei/Pixabay / CC0 )

Vernetzte Produktionsprozesse sind ein zunehmend beliebtes Ziel für Cyberattacken. Die fortschreitende Digitalisierung von Fertigungsanlagen und die Vernetzung von Produktions- mit Office-Netzen vergrößern die Angriffsfläche und wecken gleichzeitig immer mehr Begehrlichkeiten von Angreifern. In der Praxis lässt sich ein Wildwuchs von ad-hoc Sicherheitsaktivitäten finden - eine Strategie fehlt. Einen Lösungsansatz zum Management aller Sicherheitsaktivitäten bietet die ISO 27034, die sich mit Hilfe eines Prozessleitfadens leicht in die Praxis umsetzten lässt.

Die Angriffsziele reichen vom Daten-Diebstahl (Spionage) und Erpressung bis hin zur Sabotage (!) von Produktionsprozessen. Wird der Angriff bekannt, entsteht dem Unternehmen (zusätzlich) ein Imageschaden; dieser ist häufig unabhängig davon, ob der Prozesseigentümer selbst oder Dritte - wie Zulieferer und Serviceanbieter - für die ausgenutzte Sicherheitslücke verantwortlich sind.

Voraussetzung für alle (erfolgreichen) Angriffe ist nämlich mindestens eine dem Angreifer bekannte und vom Angriff ausnutzbare Sicherheitslücke. Daher gilt es, möglichst alle Sicherheitslücken in Soft- und Hardware zu identifizieren und zu patchen – dies gilt insbesondere für bislang nicht-erkannte (unveröffentlichte) Sicherheitslücken (Zero-Day-Vulnerabilities).

Der Patch-Aufwand einer Sicherheitslücke steigt allerdings exponentiell mit dem Reifegrad der Software und ist nach dem Release am größten. Daher sollten Sicherheitsaspekte bereits ab den ersten Phasen der Requirements- und Risikoanalyse sowie dem Design im Entwicklungsprozess berücksichtig werden.

ISO 27034-1

Einen allgemeinen Ansatz zum Management der Entwicklung sicherer Software liefert ISO 27034-1 „Application Security“. Diese Norm bietet eine hersteller- und technologieunabhängige Grundlage; sie definiert Konzepte, Frameworks und Prozesse, die Unternehmen helfen, Application Security in ihren Software-Entwicklungsprozess zu integrieren. Entscheidender Kern der Norm ist eine unternehmensweite Bibliothek mit allen für die Softwareentwicklung nützlichen Sicherheitsaktivitäten. Gemäß den Security-Requirements für das jeweilige Software-Projekt werden ausgewählte Sicherheitsaktivitäten eingesetzt und in der Verifikationsphase auf ihre erfolgreiche Implementierung überprüft.

Die ISO 27034 lässt sich ebenso gut auf den Einkauf von Produkten oder Outsourcing der Entwicklung anwenden. So können für eingekaufte Produkte oder Leistungen unternehmensweite einheitliche Sicherheitsniveaus gefordert und überprüft werden.

Security Testing

Eine wesentliche Sicherheitsaktivität stellt das Security Testing dar: Mit den von der Norm vorgeschlagenen folgenden 5 Methoden werden bekannte Sicherheitslücken und insbesondere bisher nicht-erkannte, unveröffentlichte Zero-Day-Vulnerabilities identifiziert:

Security Requirements Analysis: Identifizierung und Überprüfung exakter Sicherheitsanforderungen.

Threat Modeling (Security by Design) überprüft die Sicherheitsarchitektur der Software und Firmware kritischer IT-Infrastrukturen und Netzwerke. Da etwa die Hälfte aller Sicherheitslücken auf Designfehler zurückzuführen sind, müssen Sicherheitsmaßnahmen bereits vor bzw. während der Designphase implementiert und überprüft werden.

Static Source Code Analysis (Code Review): Ab der Implementierungsphase wird die Konformität des Quellcodes der Zielsoftware mit formalen Methoden auf Einhaltung syntaktischer Programmierkonventionen der Programmiersprache und auf Einhaltung der Programmierrichtlinien überprüft. Dieses Verfahren ist vergleichbar einem Parser, der eine lexikalische, syntaktische und semantische Analyse des Programmcodes durchführt.

Aufgrund lexikalischer Regeln der verwendeten Programmiersprache und den semantischen Zugehörigkeiten benötigen die einzelnen Fehler im Allgemeinen einen manuellen Audit, um false positives auszuschließen und entsprechende Behebungsstrategien zu entwerfen. Die Qualität und Quantität des Analyse-Resultats hängt somit maßgeblich von der Auswahl geeigneter Tools ab.

Penetration Testing: Dynamische Sicherheitsprüfung mit bekannten Angriffen zur Identifizierung bekannter Sicherheitslücken.

Dynamic Analysis – Fuzzing: Fuzzing stellt eine halb-automatisierte Methode zur Identifizierung von (mit Angriffen ausnutzbaren) Sicherheitslücken in Software und Hardware/Firmware dar: Tool-gestützte Eingabe von Testdaten in ein Target System (Programm, Firmware) werden verwendet, um unvorhergesehene - im Programmcode unberücksichtigte - Eingabedaten zu erkennen.

Die falsche oder unzureichende Verarbeitung dieser (im Programm nicht berücksichtigten) Daten führt zu einem unerwarteten Verhalten (Crash, hoher Verbrauch an Ressourcen wie Rechenzeit, Speicher) des Zielprogramms. Dieses anomale Verhalten des Programms wird mit Hilfe eines Monitoring-Tools protokolliert, voranalysiert und dargestellt. Durch die Analyse der Monitorergebnisse können falsche Hinweise (False Positives) ausgesondert werden. Sicherheitslücken werden durch Reproduzierung der Anomalie und Entwicklung eines Exploits nachgewiesen.

Neben der Auswahl der richtigen Methoden ist die die Festsetzung des Zeitpunkts, wann im Produktlebenszyklus eine Methode angewandt wird, für den Erfolg und die Effizienz der Methode wichtig.

(ID:44290690)