Cyber-Bedrohungen entdecken Statische Analyse schützt SCADA-Systeme

Indem die Tainted Data Analysis von Codesonar das Zusammenspiel der Softwarekomponenten aufzeigt, ermöglicht sie die einfache Betrachtung von Maschinencode.

Programme enthalten Code, der zwar vollkommen korrekt seine vorgesehene Arbeit erledigt, aber einen Angriffspunkt für Hacker bietet. Statische Codeanalyse, wie sie Grammatech anbietet, hilft, etliche dieser Schwachstellen zu ermitteln.

Angesichts der exponentiell zunehmenden Zahl der Cyber-Attacken und der hohen Kosten, die durch Ausfälle entstehen, müssen die Planer von SCADA-Systemen (Supervisory Control And Data Acquisition) ganzheitlich an das Thema Security herangehen. In der Regel beginnen Cyber-Attacken damit, dass Hacker bestimmte Daten über einen Eingangskanal an das System senden. Da Programme Eingangssignale aus vielerlei Quellen entgegennehmen, entscheidet das Umfeld, in dem das Programm ausgeführt wird, über das Risiko, das mit den einzelnen Quellen verbunden ist.

Leider verfügen viele Systeme – darunter auch zahlreiche SCADA-Systeme – derzeit über keine Prozesse zur rigorosen Überprüfung der Eingangswerte. Derartige ungeprüfte Eingangswerte, die als „tainted“ (sinngemäß: verfälscht) definiert werden, können Hackern die Kontrolle über das System ermöglichen. Zu den Taint-Quellen gehören Umgebungsvariablen, Dateiinhalte, Datei-Metadaten wie Berechtigungen oder Datenstempel, das Netzwerk, Netzwerkdienste wie die Resultate einer DNS-Abfrage, der Systemtakt und die bei Windows-Systemen vorhandene Registry. Ein kritisches Angriffsziel ist beispielsweise das Stromnetz mit seinen Kraft – und Umspannwerken. Die Steuerung des Stromversorgungsnetzes erfolgt zentral, von einer SCADA-Software koordiniert. Die regionalen Umspannwerke verfügen jeweils über eine Vielzahl von Steuerungen, Sensoren und Bedienerschnittstellen. Ein potenzieller Angreifer könnte sich über eines der vielen vernetzten Embedded-Geräte, die zur lokalen Verteilung der elektrischen Energie dienen, Zugang zum System verschaffen oder über die SCADA-Applikation in das Netzwerk eindringen. Die zahllosen Embedded-Geräte, die vor Jahrzehnten im Feld installiert wurden, waren niemals für eine Netzwerkanbindung vorgesehen. An den Außengrenzen der Netzwerke angesiedelt, sind sie zwangsläufig anfällig für Cyber-Attacken.

Darum müssen Entwickler eingebetteter Applikationen für Stromversorgungssysteme über die Angriffsflächen ihrer Software Bescheid wissen. Eines der größten Risiken ist, dass Hacker einen unverifizierten Kanal nutzen, um eine Sicherheitslücke zu generieren oder ein Programm zum Absturz zu bringen. Mithilfe verfälschter Daten können Angreifer viele Arten von Problemen auslösen, wie Pufferüberläufe, SQL- und Befehlseinschleusung, Cross-Site Scripting, arithmetische Überläufe und Path Traversals.

Eines der nützlichsten, wirksamsten und am einfachsten einsetzbaren Werkzeuge, mit denen Entwicklungsteams solche Angriffe abwehren können, ist die moderne statische Analyse. Ihre Prüfverfahren implementieren umfassende Sicherheits-Checks, Taint-Analysen und eine gründliche Prüfung des Ausführungspfads. So deckt sie Schwachstellen und Fehler auf, die bei visuellen Inspektionen, Codeprüfungen und Tests unentdeckt bleiben würden. Dazu sucht beispielsweise „Codesonar“ von Grammatech den Quell- und Maschinencode nach Fehlern und Schwachstellen jeglicher Art ab. Das hilft Unternehmen bei der Verbesserung der Code-Integrität, indem SCADA-Systeme von Mängeln in Bezug auf die Absicherung, die Funktionssicherheit und die Zuverlässigkeit befreit werden.