27C3: Hacker analysieren Stuxnet-Maschinencode

Felix "FX" Lindner von Recurity Labs hat auf der Hackerkonferenz einen Dissasembler für die Codebestandteile des Superwurms vorgestellt, die sich direkt gegen speicherprogrammierbare Steuerungen (SPS) von Siemens-Systemen richten.

In Pocket speichern vorlesen Druckansicht 57 Kommentare lesen
Lesezeit: 4 Min.

Auf dem 27. Chaos Communication Congress in Berlin (27C3) hat Felix "FX" Lindner von den Recurity Labs ein Analysewerkzeug für die Codebestandteile von Stuxnet vorgestellt, die direkt gegen speicherprogrammierbare Steuerungen (SPS) von Siemens-Systemen gerichtet sind. Die für die Programmierung der mit dem Superwurm angreifbaren Industrieanlagen Simatic S7 eingesetzte Entwicklungsumgebung STEP7 ("STeuerungen Einfach Programmieren") lasse sich auch zum Erstellen eines entsprechenden Disassemblers verwenden, führte der Sicherheitstester aus. Mit der selbstgebauten Software lasse sich der auf den Siemens-Steuerungen laufende Maschinencode MC7 lesen, was zu interessanten Entdeckungen geführt habe.

Zunächst konnte Lindner die bereits bekannten Ergebnisse bestätigen, wonach Stuxnet drei S7-spezifische Code-Blöcke enthält, deren Teile A und B ziemlich identisch aussehen, wohingegen Teil C besonders umfangreich ausfällt. Gesucht werde damit nach einer speziellen Profibus-Kontrollschnittstelle, die als Hintertür zur Installation von Schadcode benötigt werde. Verifizierbar gewesen sei ferner, dass der Wurm eine interne Einrichtung zur Beschreibung seines aktuellen Zustands enthalte. Diese könne für Prüfungen zur Befallenheit einer Steuereinheit genutzt werden. Im Gegensatz zu bisherigen Annahmen gebe die Zustandsbeschreibung aber nur in zwei von fünf möglichen Statusinformationsmeldungen einen Wert zurück, der bislang als Zeichen für eine Infektion angesehen worden sei. Dies sei nur der Fall, wenn Stuxnet gerade am Arbeiten sei. Demnach sei durchaus möglich, dass deutlich mehr Maschinen den Wurm noch in sich tragen als bisher ausgemacht.

Weiter fand Felix Lindner Belege für die veröffentlichte Erkenntnis, dass Stuxnet einzelne Codeblöcke in SPS gegen neue austauschen oder bestehende Blöcke ergänzen kann. Dabei hätten die Angreifer auf Schwachstellen in STEP7 zurückgreifen können, die vergleichbare Knackpunkte in Adobe Flash noch überträfen. So könne etwa ein Funktionsaufruf zu Sprüngen im Programmcode führen, die durch ein "lächerliches Design" mithilfe mehr oder weniger willkürlicher Hinweispunkte übertüncht werden sollten. Auf diesem Weg könne eine vom Schädling ausgelöste Operation vergleichsweise einfach wichtige Codebestandteile austauschen. Entsprechende Funktionen seien auch den ursprünglichen STEP7-Ingenieuren bekannt gewesen und durch eine versteckte Anweisung verborgen worden. Diese habe keine Wirkung auf eine SPS gehabt, sei von Siemens-Editoren aber interpretierbar gewesen.

Lindner zufolge verwendet Stuxnet diesen Trick aber nicht, sondern verschwende an dieser Stelle stattdessen Speicherplatz und vereinfache so zugleich die Analyse mit einem MC7-Dissasembler. Für den Sicherheitsexperten beweist dies, dass der Schadcode nur zum Teil mit STEP7 hergestellt wurde. Weitere Bestandteile seien mit anderen Werkzeugen fabriziert oder nachträglich von den Spuren der Siemens-Entwicklungsumgebung gesäubert worden.

Der Stuxnet-Code enthalte zudem Zeitstempel für die Erstellung und Veränderung von Funktionen. Demnach stammen die Programmbibliotheken in Block A und B von Mitte Februar 2002, eine Auslieferungsanweisung sogar schon von 1996. Letzere sei aber zehn Jahre später modifiziert worden. Alle handgestrickten Funktionen trügen das Erstellungsdatum 24. September 2007. An diesem Tag hat der iranische Präsident Mahmud Ahmadinedschad an der Columbia University in New York eine heftig umstrittene Rede gehalten, in der er den Holocaust, die Unterdrückung von Frauen sowie die Verfolgung von Homosexuellen im Iran geleugnet hatte. Lindner mutmaßt deshalb: "Vielleicht hat das jemand in dem Maße angepisst, dass er sich ans Kompilieren machte."

Fachlich gesehen lobte der Experte insgesamt die "Qualität" des Wurms und der damit offensichtlich vorab durchgeführten Tests. Anscheinend hätten die Stuxnet-Autoren aber vergessen, die tatsächliche Wirkung auf SPS durchzuspielen. Möglicherweise sei das ursprüngliche "Bastel-Kit" für den Schädling an Cyberkrieger im "schwer bewaffneten" Umfeld herausgegeben worden. Die Reaktion der Hackergemeinde und der Sicherheitsfachleute habe jedenfalls deutlich zu lange gedauert. Schon im Vorfeld sei klar gewesen, dass die Infektion von Kontrollsystemen für Industrieanlagen recht einfach bewerkstelligt werden könne. Ferner sei die Rate, mit der heutzutage Informationen über bislang undokumentierte Schwachstellen "verbrannt" werden könnten, viel zu niedrig angesetzt worden. Die Namensgebung für den Wurm blieb Lindner rätselhaft: Entgegen bisheriger Annahmen tauche die Zeichenfolge "Stuxnet" im Code nirgends auf. (ghi)