HINWEIS: Dieser Artikel richtet sich nicht nur an Unternehmen, die bereits gehackt wurden... Die IEC 62443 ist ein generischer Standard, der in kritischen Sektoren wie der Fertigung, dem Energiesektor, dem Transportwesen, dem Gesundheitswesen und vielen anderen als anwendbar gilt.
Dieser Artikel ist die dritte Folge einer Serie von 8 Artikeln, die die wichtigsten Praktiken abdeckt, die von jeder Organisation implementiert werden müssen, die den Stand der Technik in der Cybersicherheit für industrielle und automatisierte Steuerungssysteme erfüllen will. Auf der Grundlage eines pragmatischen Ansatzes zeigt dieser Artikel, wie Sie die Definition von Anforderungen in Bezug auf einen sicheren Entwicklungslebenszyklus (IEC 62443-4-1) innerhalb Ihrer aktuellen Organisationsprozesse handhaben können.
Um systematisch sichere Produkte zu entwickeln, muss die Sicherheit über den gesamten Software-Lebenszyklus hinweg betont werden, so dass die Ergebnisse als "Secure by Design" betrachtet werden. Daher muss jede Phase eines gängigen Software-Lebenszyklus mit Sicherheitspraktiken angereichert werden. Dies führt zu einem sicheren Entwicklungslebenszyklus, wie unten (in einer vereinfachten Übersicht) dargestellt. In dieser dritten Folge konzentrieren wir uns auf gute Praktiken, die für die Validierung von Softwareteilen in einem frühen Stadium erforderlich sind, die Code-Analyse und Sicherheits-Reviews
Dieser Prozess ist erforderlich, um sicherzustellen, dass die Implementierung den sicheren Entwurf (weitere Informationen zum sicheren Entwurf finden Sie in Episode 2 dieser Serie) und die damit verbundenen Sicherheitsanforderungen ordnungsgemäß abdeckt und den Best Practices für die Implementierung folgt.
Die IEC 62443-4-1 beschreibt solche Praktiken wie folgt:
- "Diesen Prozess zu haben bedeutet, dass der Produktlieferant eine umfassende Reihe von Sicherheitsüberprüfungen der Implementierung und ihres Designs durchführt. Verschiedene Arten von Überprüfungen werden typischerweise eingesetzt, um unterschiedliche Ziele zu erreichen. Zum Beispiel werden manuelle Reviews typischerweise anhand des Implementierungsentwurfs durchgeführt, um zu überprüfen, ob die Anforderungen erfüllt werden und ob die Implementierung angemessen vor den erwarteten Bedrohungen schützt. Darüber hinaus können manuelle Quellcode-Reviews verwendet werden, um den Quellcode auf die Einhaltung von Best Practices zu untersuchen (siehe 8.4), und automatisierte statische Quellcode-Analysen können verwendet werden, um Anomalien zu identifizieren, einschließlich Sicherheitslücken im Code sowie Nichtkonformitäten mit vorgegebenen Programmierregeln."
Wie oben beschrieben, bieten statische Analysewerkzeuge eine wichtige Unterstützung in den Codierungs- und Integrationsphasen der Softwareentwicklung. Die Abbildung unten zeigt die Überlagerung eines Softwareentwicklungslebenszyklus für statische und dynamische Analysewerkzeuge. Die Sicherstellung einer kontinuierlichen Codequalität, sowohl in der Entwicklungs- als auch in der Wartungsphase, reduziert die Kosten und Risiken von Sicherheits- und Zuverlässigkeitsproblemen in Software erheblich.
Zur Erinnerung: Der Standard ISA/IEC 62443 betont eine Philosophie der "Defense in Depth" (Schutz durch mehrere Verteidigungsschichten, die mehrere Facetten der Sicherheitspraxis nutzen) mit einem "Secure-by-Design"-Ansatz. In diesem Zusammenhang spielen Entwicklungswerkzeuge, Automatisierung sowie statische und dynamische Analysewerkzeuge eine Schlüsselrolle bei "Sicherheitsrichtlinien" und "sicherer Implementierung.”
Der Standard definiert den Bedarf an Sicherheitsexpertise sowohl beim Design als auch bei der Implementierung, aber auch bei modernen Werkzeugen und Techniken, zu denen auch Werkzeuge zur statischen Analyse gehören. In Bezug auf die sichere Implementierung ist der Standard sehr deutlich, welche Rolle Werkzeuge zur statischen Codeanalyse (SCA) spielen. Abschnitt 5.5 (Sicherheitsexpertise) sagt:
- "Diesen Prozess zu haben bedeutet, dass das Personal, das mit sicherheitsrelevanten Prozessen betraut ist, Nachweise hat, die seine relevanten Qualifikationen zeigen. Dazu gehört nicht nur das Wissen über Sicherheit, sondern auch für die Anwendung aller sicherheitsrelevanten Standards (z. B. Codierungsstandards), Techniken (z. B. Best Practices) und Werkzeuge (z. B. statische Analysewerkzeuge)."
Statische Code-Analyse
Eine statische Code-Analyse (SCA) für den Quellcode wird verwendet, um Sicherheitskodierungsfehler wie Pufferüberläufe, Null-Pointer-Dereferenzierung und alle anderen Verstöße gegen die definierten Kodierungsregeln für die unterstützte Plattform zu identifizieren. Falls verfügbar, muss die SCA mit einem Tool für die verwendete Sprache durchgeführt werden. Darüber hinaus muss bei jeder Änderung der Software eine statische Codeanalyse durchgeführt werden. Die Verwendung eines solchen automatischen Werkzeugs wird von der IEC 62443-4-1 definitiv als gute Praxis angesehen, ebenso wie manuelle Reviews zur Überprüfung des Quellcodes auf Einhaltung der Best Practices.
 
Ohne manuelle Methoden und Prüfungen auszuschließen, spielt die Automatisierung eine Schlüsselrolle bei der erfolgreichen Einhaltung der Best Practices der IEC 62443-4-1. Eine Testautomatisierung, die statische und dynamische Analysen einschließt, erhöht den Umfang der Fehler- und Schwachstellenerkennung bei gleichzeitiger Verringerung des Gesamtarbeitsaufwands.
 
Wenn Sie Fragen zu Code-Analysen, allgemeinen Sicherheitsüberprüfungen und/oder Zertifizierungskriterien haben, zögern Sie bitte nicht, unseren Cyber Security Spezialisten zu kontaktieren: Kilian Marty