Parasoft
Schnellere Konformität mit der IEC 62443
Zum Schutz vor Cyberangriffen ist die vollständige Einhaltung der IEC 62443 unerlässlich. Durch die Integration automatisierter Sicherheitsscans, dynamischer Analysen und Validierungstests direkt in die CI/CD-Pipelines können Unternehmen eine durchgängige Konformität erreichen, während sich IACS-Anwendungen weiterentwickeln.
In den letzten Jahren gab es einen alarmierenden Anstieg von Cyberangriffen, die speziell auf industrielle Steuerungssysteme in Sektoren wie Energie, Fertigung, Transport und Versorgung abzielten. Laut dem Kaspersky-Bericht „ICS CERT Predictions for 2024“ soll auch in diesem Jahr Ransomware neben Malware die größte Bedrohung für die Cybersicherheit von Industrieunternehmen darstellen. Dem Bericht zufolge führten 18 % der Ransomware-Angriffe auf Industrieunternehmen im Jahr 2023 zu Produktions- oder Lieferunter- brechungen bei Produkten wie medizinischen Geräten, Stromnetzen und Transportsystemen.
Um den wachsenden Cyberrisiken zu begegnen, haben die International Society of Automation (ISA) und die International Electrotechnical Commission (IEC) im Jahr 2018 die Normenreihe IEC 62443 zur Sicherung von IACS (Industrial Automation and Control Systems) entwickelt. Sie bietet einen umfassenden Rahmen für die Implementierung von Cyberschutzmaßnahmen in allen Bereichen von IACS, einschließlich Menschen, Prozessen und Technologie (Bild 1). Ohne automatisierte Werkzeuge ist es schwierig, umfassende Anlageninventare zu führen und alle möglichen Angriffsflächen zu testen.
Die IEC 62443 ist in mehrere Teile gegliedert, die jeweils unterschiedliche Aspekte der IACS-Sicherheit behandeln, wie der Abschnitt 4-1, der als einer der wichtigsten Teile Anforderungen an den Lebenszyklus der sicheren Produktentwicklung behandelt. Indem die IEC 62443-4-1 die Prinzipien der »Cyber Security by Design« in allen Phasen des Software Development Lifecycle (SDLC) vorschreibt, ist sie eine wichtige Grundlage für sichere IACS. Von der anfänglichen Anforderungsanalyse über Design, Implementierung, Tests und Wartung müssen Sicherheitskontrollen ein integraler Bestandteil des Prozesses sein.
In Bezug auf Softwaretests betont die Normenreihe die Notwendigkeit automatisierter Sicherheitstests, da diese die kontinuierliche Validierung der Cyberintegrität von IACS-Anwendungen erleichtern. Automatisierte Sicherheitstests sind für eine gründliche Überprüfung der Sicherheitsanforderungen, Regressionstests für Schwachstellen und die Aufrechterhaltung der IEC 62443-Konformität bei der Weiterentwicklung von Produkten unerlässlich.
Herausforderung Software-Komplexität
Beim Erzielen und Aufrechterhalten der vollständigen Konformität erweist sich die Komplexität der in modernen IACS-Umgebungen eingesetzten Software als besondere Hürde, da IACS zunehmend auf heterogenen Softwarekomponenten basieren, die von verschiedenen Anbietern und Integratoren stammen und oft mit unterschiedlichen Programmiersprachen, Frameworks und Toolketten entwickelt wurden. Von Echtzeit-Betriebssystemen und SPSen bis hin zu SCADA-Systemen (Supervisory Control and Data Acquisition), verteilten Steuerungssystemen, sicherheitsgerichteten Systemen – jedes dieser Elemente stellt eine potenzielle Angriffsfläche dar, die geschützt werden muss. Diese Komplexität wird durch die vernetzte Natur von IACS noch verstärkt: So sind Anlagensysteme über funktionale Grenzen und geografische Standorte hinweg integriert und bergen Risiken, die mit jeder Anwendung, Middleware-Komponente und Infrastrukturschicht verbunden sind, die voneinander abhängen. Weitere Verstärker sind Künstliche Intelligenz und die Anbindung an die Cloud. Es ist praktisch unmöglich, nur mit manuellen Prozessen mit der täglichen Flut neu entdeckter Schwachstellen Schritt zu halten. Die konsequente Anwendung von Sicherheitspatches und die Überprüfung, ob die Schwachstellen tatsächlich behoben wurden, erfordern kontinuierliche automatisierte Sicherheitstests.
Neben dem Beherrschen der Komplexität der eingesetzten IACS-Software müssen Unternehmen auch die Sicherheit in jeder Phase des Software-Entwicklungszyklus gemäß den Anforderungen der IEC 62443-4-1 durchsetzen. Jede Phase erfordert robuste Prozesse und eine granulare Nachvollziehbarkeit, die ohne Automatisierung nur schwer kosteneffizient zu erreichen sind. Zudem wird die IACS-Software durch Updates, Integration neuer Komponenten und Migrationsinitiativen ständig weiterentwickelt. Dies setzt umfangreiche Regressionstests voraus, um die kumulative Sicherheit dieser dynamischen, mehrschichtigen Anwendungen kontinuierlich zu validieren.
Reduzierung der Komplexität
Um diese Softwarekomplexität zu bewältigen, müssen hoch- automatisierte Testverfahren über den gesamten SDLC eingesetzt werden. Einige dieser Sicherheitstestverfahren können dabei helfen, Schwachstellen großem Umfang zu identifizieren und zu beheben, während die IACS-Software weiterentwickelt wird. Diese sind:
- Statische Analyse: Static Application Security Testing (SAST) analysiert Quellcode, Bytecode, Binärdateien und Build-Artefakte, um unsichere Programmiermuster wie SQL-Injection, Pufferüberläufe, kryptographische Fehler und vieles mehr schon in einer frühen Phase des SDLC zu identifizieren.
- Unit-Tests: Direkt in die Arbeitsabläufe der Entwickler eingebettet, helfen sie zu überprüfen, ob der Implementierungscode die Sicherheitsanforderungen erfüllt. Unit-Tests, die sich u.a. auf Authentifizierung, Datenverschlüsselung, Datenentschlüsselung, Zugriffskontrolle, Eingabe-/Ausgabevalidierung konzentrieren, ermöglichen schnelle Feedback-Zyklen.
- Integrationstests: Mit automatisierten Integrationstests lassen sich Sicherheitsschwachstellen aufdecken, die sich aus der Interaktion mehrerer Komponenten ergeben. Durch die Simulation realistischer Laufzeitbedingungen validieren Integrationstests korrekte Sicherheitskonfigurationen und identifizieren Brüche, die durch verbundene Software-Abhängigkeiten verursacht werden.
- Anforderungsbasiertes Testen: Ein zentrales Prinzip der IEC 62443 ist es, die Sicherheit von der ersten Analyse der Anforderungen zu beginnen. Durch die Umsetzung spezifizierter Sicherheitsanforderungen in ausführbare Tests können Unternehmen automatisch validieren, dass das Systemverhalten die definierten Sicherheitskontrollen korrekt implementiert.
- Code-Abdeckung: Der Einsatz von Code-Abdeckungstools zeigt auf, welche Teile des Sicherheitscodes ordnungsgemäß getestet wurden beziehungsweise welche nicht und ein Risiko darstellen. Für eine vollständige Sicherheitsüberprüfung in sicherheitskritischen und risikobehafteten Software-Modulen eignen sich Abdeckungsmetriken wie die Modified Condition/Decision Coverage (MC/DC) am besten (Bild 2).
Robuste und sichere Entwicklungsverfahren
Um die Verifizierungsmethoden gemäß IEC 62443 einzuhalten, müssen IACS-Unternehmen robuste und sichere Entwicklungsverfahren anwenden. Zu den Best Practices haben sich diese Verfahren herauskristallisiert:
- Kontinuierliche Code-Verifizierung: Die Automatisierung statischer Anwendungstests innerhalb von Entwickler-IDEs und Commit-Workflows ermöglicht eine kontinuierliche Codeüberprüfung und die schnelle Behebung von Sicherheitsmängeln.
- Festlegung von Programmierstandards von Anfang an: Entwickler sollten Sicherheitsregeln für Bereiche wie Speicherverwaltung, Eingabevalidierung, Authentifizierung, Kryptografie, befolgen. Um Sicherheitsmuster zu vermeiden, trägt die Integration von SAST-Regeln bei, die automatisch die Einhaltung dieser Programmierstandards überprüfen. Die grundlegende Sicherheit sollte durch Richtlinien und Auswahlkriterien definiert werden.
- Sichere Lieferkettenpraktiken für Third-Party-Software einhalten: Unternehmen sollten eine sichere Software-Composition-Analysis (SCA) implementieren, um die Verwendung von Open-Source-Softwarekomponenten innerhalb einer größeren Softwareanwendung zu verwalten und abzusichern.
Software Bill of Materials (SBOM): Für alle Produktversionen gilt es, detaillierte und aktualisierte Software-Bestandslisten zu führen, um eine kontinuierliche Überwachung und Schadensbegrenzung zu unterstützen. SCA- und SBOM-Praktiken müssen weitgehend automatisiert werden, um die enorme Menge an externer Software analysieren zu können. - Kontinuierliches Testen: Zusätzlich zur automatisierten Codeanalyse schreibt die IEC 62443 strenge Sicherheitstests in allen Phasen des SDLC und nach jeder Änderung oder Aktualisierung vor. Unternehmen sollten DevOps-Pipelines so ausstatten, dass sie im Rahmen ihrer CI/CD-Workflows kontinuierlich automatisierte Sicherheitstests durchführen können.
- Lieferanten verpflichten: Im Einklang mit den in IEC 62443 beschriebenen Kontrollen für das Risikomanagement in der Software-Lieferkette sollten IACS-Eigentümer validieren, dass alle Drittanbieter in der Lage sind, die Einhaltung sicherer Entwicklungsprozesse zu dokumentieren. Ohne eine rigorose Überprüfung der Sicherheitspraktiken im gesamten Lieferanten-Ökosystem ist die Cyberresilienz gefährdet.
- TARA-Strategie anwenden: Entwickler sollten eine Threat Assessment & Remediation Analysis (TARA) anwenden, da diese strategisch auf die IEC 62443-Richtlinien abgestimmt ist (Bild 3). Durch das Überwachen neuer Schwachstellenmeldungen und aktualisierter Anleitungen von Quellen wie ICS-CERT, NVD und CWE und deren automatische Korrelation mit einer aktualisierten SBOM können Unternehmen eine vollständige Rückverfolgbarkeit ihrer Cyberrisiken sicherstellen und entsprechende Abhilfemaßnahmen einleiten. Interaktive Anwendungstests (Interactive Application Security Testing, IAST) können auch während der Laufzeit Einblicke in reale Angriffe auf die gesamte IACS-Angriffs-fläche geben. (ag)

















