Fachartikel – Meltdown & Spectre: Die Gefahren für Rechnersysteme im industriellen Einsatz
Als im Januar 2018 die CPU-Angriffsszenarien Meltdown und Spectre an die Öffentlichkeit gelangten, war die Aufregung zunächst groß. Während unterschiedlichste Schreckensszenarien allerorts zu lesen waren, wussten die wenigsten Anwender um die konkreten Bedrohungen für ihre industrielle Anwendung. Dieser Artikel soll Klarheit darüber schaffen, wie ernstzunehmend die Sicherheitsbedrohungen in der Industrie sind und welche Maßnahmen von Unternehmen zum Schutz ihrer Infrastruktur getroffen werden sollten.
Worum es genau geht
Bei Meltdown und Spectre handelt es sich um sogenannte Seitenkanal-Attacken, die es einer entsprechenden Schadsoftware ermöglichen, Zug um Zug Daten von anderen Anwendungen vom Cache einer CPU auszulesen.
Die Meltdown-Attacke macht sich dabei sogenannte Out of Order-Prozesse zunutze: Prozessoren sortieren Arbeitsabläufe in neuer Reihenfolge, um Zeit zu sparen, wenn komplexere Aufgaben noch im RAM verarbeitet werden. Einzelne Arbeitsschritte werden dazu im Cache der CPU zwischengespeichert. An dieser Stelle sind die Daten verwundbar und können aus dem CPU-Cache ausgelesen werden.
Bei Spectre handelt es sich um ein Angriffsszenario, das die spekulative Ausführung (speculative execution) von CPUs nutzt: Ein entsprechender Prozessor führt Befehle spekulativ aus, die er noch nicht erhalten hat, weil die Wahrscheinlichkeit hoch ist, dass diese Befehle ohnehin in Kürze folgen würden. Dadurch können Daten in die Caches gelangen, die nicht zum eigentlichen Prozess gehören. In diesem Sinne können Daten aus dem Cache ausgelesen werden, die eigentlich nichts mit dem aktuellen Vorgang zu tun haben.
Somit ist grundsätzlich ist jeder PC, Notebook oder mobiles Endgerät von den Sicherheitslücken betroffen, dessen CPU Out of Order-Prozesse (Meltdown) oder spekulative Ausführung (Spectre) nutzt. Bestimmte einfachere Prozessoren, die beispielsweise in Raspberry Pi-Systemen eingesetzt werden, sind von dieser Art von Seitenkanal-Attacken nicht betroffen.
Um die Sicherheitslücken auszunutzen, ist jedoch der Einsatz einer Schadsoftware nötig, die auf den Prozessortyp des attackierten Systems angepasst ist. Sprich, ohne einem entsprechenden Programm auf dem betroffenen System können die Sicherheitslücken gar nicht erst ausgenutzt werden. Eine solche Schadsoftware kann entweder – wie jede andere Malware – über unvorsichtiges Verhalten im Internet auf das System gelangen, oder physisch am System aufgespielt werden.
Im Falle industrieller PCs gelten hier jedoch andere Bedingungen als bei privaten Systemen. Auf Rechnern in der Produktion werden in der Regel keine unautorisierten Programme installiert oder dubiose Emails geöffnet, um sich entsprechende Schadsoftware einzufangen. Viele unserer Kunden bestellen bei uns kundenspezifische Systemeinstellungen. Damit schützen wir die Systeme unter anderem auch vor physischer Sabotage, indem die USB Ports unserer PCs nur den Anschluss von Maus und Tastatur zulassen. Externe Speichergeräte werden nicht erkannt, wodurch ein Aufspielen von Schadsoftware von einem USB-Stick vor Ort von vornherein nicht möglich ist.
Welche industriellen PC-Systeme besonders gefährdet sind
Um die CPU-Sicherheitslücken ausnutzen zu können, muss ein Angreifer Schadsoftware auf dem betroffenen System ausführen. In vielen Embedded Systemen oder Routern ist die Lücke deshalb unkritisch, da hier fast nie neuer Code geladen wird. Beim Grad der Gefährdung nehmen wir bei InoNet deshalb eine Abstufung nach Art und Zugänglichkeit der Systeme vor:
Server-Systeme sind in der Regel dauerhaft mit dem Internet verbunden und haben Verbindungen zu vielen weiteren Clients. Allerdings werden sie im Normalfall nicht direkt von einem Benutzer bedient, der – absichtlich oder unabsichtlich – Schadsoftware auf das System laden kann. Die Sicherung des Systems muss also vor allem auf virtueller Ebene erfolgen.
Workstations haben in den meisten Fällen nur wenige Verbindungen und sind oft nur in einem internen Netzwerk eingebunden, werden aber meist direkt vom Benutzer bedient. Die Gefahr liegt hier also primär in der physischen Manipulation.
Embedded-Systeme sind in der Regel gar nicht von außen zugänglich, da sie innerhalb ihrer Applikation verbaut sind, und werden auch meistens nicht direkt von einem Benutzer bedient. Hier sehen wir die geringste Gefahr vor Manipulationen oder externen Gefährdungen.
Welche Gefahren bestehen?
Software-Programme führen unterschiedliche Befehle parallel aus und nutzen hierfür auf PCs unterschiedliche Speicherbereiche. Ein eigentliches Performance-Feature zur Steigerung der Verarbeitungsgeschwindigkeit wird nun zur Sicherheitslücke namens Branch Target Injection oder Bounds Check Bypass. Der Speicherschutz, also der Schutz, der Speicherbereiche voneinander trennt, wird bei den Sicherheitslücken ausgehebelt. Dadurch können Daten durch entsprechende Schadsoftware ausgelesen werden, auch wenn diese einem anderen Speicherort zugewiesen sind. Prozessoren beinhalten diese Sicherheitslücke, um eine performantere Arbeitsweise zu erreichen, beispielsweise für Copy-Paste Vorgänge zwischen unterschiedlichen Programmen.
Zug um Zug können so Adressbereiche und konkrete Informationen aus den Caches von Prozessoren ausgelesen werden.
Das Risiko der Sicherheitslücken ist dabei schwer abschätzbar. Zum einen sind die Angriffe von Meltdown und Spectre auf die Sicherheitslücken schwer zu implementieren und noch schwerer zielgerichtet durchzuführen. Zum anderen hängt die Vorgehensweise in den meisten Fällen auch vom exakten Prozessortyp ab und ist nicht universell einsetzbar, da unterschiedliche Prozessoren verschiedene Arbeitsweisen beim Caching von Daten verwenden.
Allerdings kann die Gefahr im Laufe der Zeit ansteigen, wenn auf einen spezifischen Prozessortyp angepasste Schadsoftwares in den Umlauf gelangen. Aktuell sind noch keine konkreten Angriffe bekannt, das Risiko wird aber als durchaus real eingestuft. Allerdings ist es nach aktuellem Wissensstand noch nicht möglich, gezielt zusammenhängende Daten aus dem CPU-Cache auszulesen, sondern lediglich Datenfragmente.
Updates zum Schutz der Systeme
Bei vielen InoNet-Kunden sind automatische Updates ab Werk unterbunden – das Stichwort heißt hier Revisionsgleichheit. So wird sichergestellt, dass ein Rechnersystem, das über viele Jahre hinweg in einer Anwendung eingesetzt wird, mit jeder Lieferung exakt die gleiche Hard- und Software-Konfiguration behält und somit zuverlässig innerhalb der jeweiligen Applikation funktionieren wird. Unternehmen, die unsere Rechner einsetzen, müssen also für sich abschätzen, ob für ihre Anwendung eine reelle Gefahr durch externe Einflüsse besteht, oder sogar ob ein Update aufgrund von Sicherheitsbedenken die Funktionalität ihrer Anlage beeinträchtigen kann. Wir richten unser Handeln an den Kundenanforderungen aus.
Bei Systemen mit Windows 10 ist allerdings zu beachten, dass sich automatische Updates nicht außer Kraft setzen lassen und unweigerlich durchgeführt werden, sobald die Systeme Zugang zum Internet haben.
Werden die Rechnersysteme durch das Update langsamer?
Die Sicherheitslücken machen sich jeweils Performance-Optimierungen von CPUs zunutze, nämlich die zuvor erwähnten Out of Order-Prozesse sowie die spekulative Ausführung. Um die besagten Sicherheitslücke zu schließen, werden diese Funktionalitäten bei Updates eingeschränkt.
Wie stark die Performance-Einbußen ins Gewicht fallen, hängt maßgeblich von der jeweils laufenden Software sowie der Hardware-Konfiguration eines Systems ab. Besonders bei hoch performanten SSDs rechnen Experten mit stärkeren Einbußen. Diese Einbußen werden sich in der Praxis beweisen müssen, da diese je nach Anwendungsfall unterschiedlich stark ins Gewicht fallen können. Höhere Latenzzeiten in der Datenverarbeitung können durchaus zum Ausfall der gesamten Anwendung führen. In jedem Fall sollten Anwender nie auf Sicherheits-Updates verzichten, um Performance-Einbußen zu vermeiden.
Was können Anwender tun?
Als Erstes sollte für den Rechner und seine Anwendung eine Risikobeurteilung zur Möglichkeit des Einbringens von Schadsoftware erstellt werden. Besonders relevant sind hier das Einspielen von Treibern z.B. von Grafikkarten, die Verwendung von Browsern aller Art für Zugriffe nach extern, Zugriffe nach extern für Softwareupdates mit JavaScript Elementen und alle Betriebssystemupdates. Kann ein externer Einfluss für die Vergangenheit und die Zukunft ausgeschlossen werden, braucht der Anwender nichts weiter zu tun. Dies trifft auf über 60% der von InoNet ausgelieferten Geräte in ihrer Anwendung zu. Bei InoNet verlässt jeder Rechner in einem eindeutig definierten Zustand die Fertigung. Sowohl seine Hardware- als auch die Softwarekonfigurationen sind chargen- und revisionsüberwacht, das Netzwerk in der Fertigung der Geräte von InoNet ist autark und vom Internet getrennt. Damit ist ein versehentliches Aufspielen von Schadsoftware unterbunden. Ebenso werden die Testwerkzeuge, die erzeugten Images und jeder ausgelieferte Rechner bei InoNet ab Werk einem Virenscan und einer Prüfung auf Schadsoftware unterzogen.
Schutz bieten grundsätzlich Updates des Mikrocodes der Prozessoren über BIOS-Updates oder Betriebssystem-Patches, sowie Updates von Programmen, die kritische Informationen enthalten. Neben den bereitgestellten Updates auf Betriebssystem-Ebene sollten also unbedingt vor allem die Programme auf Software-Updates geprüft werden, die Mikrocode ausführen oder sensible Informationen verarbeiten, etwa Passwort-Bibliotheken oder Programme, die geschäftsrelevante Daten enthalten.