Maschinengeflüster

Geschichten aus dem Serverraum

Supply-Chain Angriffe

07. Juli 2021 — Felix Pankratz

Leider hört man in letzter Zeit öfter von erfolgreich ausgeführten Supply-Chain-Angriffen, und das sogar in den großen Mainstreammedien. Diese Art von Angriff auf ein Computersystem kann sehr schnell viele Maschinen auf der ganzen Welt infizieren, und das unabhängig von eventuellen Netzwerkverbindungen.

Der Begriff Supply-Chain beschreibt allgemein eine Lieferkette, die nötig ist, um ein gewisses Produkt bzw. eine Funktionalität herzustellen. Das ist nicht nur auf die IT Branche beschränkt, so ziemlich jedes Unternehmen hat Supply-Chains, die mehr oder minder kritisch für das Fortbestehen der Firma sind (extrem Beispiel: Just-In-Time Produkition bei Autoherstellern). Es muss also ein erhebliches Vertrauen in die Zulieferer dieser Ketten vorhanden sein - bei Hardware insbesondere auf Seiten der Pünktlichkeit, bei Software auf Seiten der Sicherheit.

Dieser Post wird im weiteren Verlauf einen Angriff auf eine solche Kette ein bisschen ausführen.


SolarWinds

SolarWinds ist eine große Softwarefirma aus den USA, die hauptsächlich Programme zur Systemverwaltung herstellen. Im speziellen geht es hierbei um SolarWinds Orion, ein Werkzeug zum Überwachen (Fachbegriff Monitoring) der Performance von IT-Systemen.

Die Informationen, die für solche Auswertungen benötigt werden, stehen meist in sensiblen Logdateien mit unterschiedlichen Zugriffsrechten. Zum ermitteln der Systemperformance und zugehörigen Daten ist daher meist ein privilegierter Zugriff auf das System erforderlich (Adminrechte). Dementsprechend mächtig sind Monitoringtools eingerichtet.

Hintergrundwissen

Automatische Updates

Software wird heute nicht mehr ausgeliefert, wenn sie fertig ist - sondern wenn der Updater funktioniert. Die meisten modernen Programme haben ein Updateroutine eingebaut, die automatisch nach verfügbaren Aktualisierungen sucht. Falls ein Update ansteht, informieren die meisten Programme den Benutzer, einige installieren Updates jedoch auch eigenständig.

Dies ist an sich eine gute Sache, da auftretende Sicherheitslücken somit zeitnah abgedeckt werden können (vorraus gesetzt, das Update wird auch installiert). Schöner wäre es natürlich, wenn die ausgeleiferte Software gar nicht erst mit einer Sicherheitslücke kommen würde.

Digitale Signierung

Mithilfe von digitaler Signierung stellen Computersysteme die Identität einer Gegenstelle fest (Fachbegriff Authentifizierung). Dadurch weiß zum Beispiel ein Browser, dass ich wirklich mit theresno.cloud verbunden bin, und nicht mit einer Imitation. Das verfahren basiert auf asymmetrischer Kryptographie - das klingt komplizierter, als es in Wahrheit ist.

Der Server besitzt ein Paar zusammengehörender Schlüssel (auch bekannt als Zertifikate), einen privaten und einen öffentlichen. Der private Schlüssel ist nur dem Server bekannt, welcher damit seine versendeten Nachrichten "unterschreibt". Hat der Empfänger der Nachricht Zugriff auf den öffentlichen Schlüssel kann er überprüfen, ob die "Unterschrift" unter der erhaltenen Nachricht tatsächlich vom erwarteten Autor stammt. Somit kann fälschungssicher die Identität der Gegenstelle nachgewiesen werden.

Das selbe kann man auch mit Software machen - man hängt mit einem privaten Schlüssel eine "Unterschrift" an die eindeutig bestätigt, dass die Software von jemandem herausgegeben wurde, der Zugang zum persönlichen Schlüssel hat.

Aufmerksame Leser erkennen bereits die drohende Gefahr: Was, wenn jemand anderes meinen privaten Schlüssel hat?

Der SolarWinds Hack

Tatsächlich war der SolarWinds Hack bereits fast ein halbes Jahr am laufen, bis es mal jemand gemerkt hat. Hier gibt es einen schönen Zeitstrahl, der das aufschlüsselt.

Was genau ist da passiert? Anscheinend hatten die Angreifer bereits seit Januar 2019 Zugang zu den System von SolarWinds. Dieser Zugang wurde dafür genutzt, einen Virus auf den Systemen zu installieren, die den Quelltext kompilieren und die eigentliche Software erstellen. Dieser Virus heißt SUNSPOT, der in den Buildprozess eingefügte Schadcode trägt den namen SUNBURST. Hier gibt es eine technische Analyse zu SUNSPOT, und hier eine zu SUNBURST sowie den genutzten Command & Control Kanälen. SUNBURST ist primär eine Hintertür, die Unbefugten den Zugriff auf Systeme erlaubt.

Viele Softwarefirmen haben für die Erstellung ihrer Programme sogenannte Build-Pipelines eingerichtet. Dies nimmt den Entwicklern viel Arbeit ab, in dem viele Vorgänge, wie das testen oder signieren der Software, automatisiert wird. Solch eine Pipeline hatte auch SolarWinds - dadurch wurden die schadhaften Versionen automatisch signiert, wodurch den Updates automatisch "vertraut" wird. Sobald dieses schadhafte Update auf den Servern ankam, die für die Verteilung von aktualisierungen zuständig sind, nam das Unheil seinen Lauf.

Jede Installation von Orion, welche automatische Updates aktiviert hatte, aktualisierte sich auf die neue, verseuchte Version. Damit gab es auf einen Schlag tausende von Hintertüren in der ganzen Welt, die den Angreifern offen standen.

Wie kann ich mich schützen?

Leider ist es nicht einfach, gegen Supply-Chain Angriffe vorzugehen. Digitale Signierung ist ein Mittel, das hierbei schonmal eine große Hilfe ist - aber wie man sieht, kann auch das umgangen werden.

Automatische Updates zu deaktivieren ist keine Lösung, da somit wirklich kritische Sicherheitslücken nicht zeitnah behoben werden. Auch eine gesonderte Testumgebung für Softwareupdates ist nicht ausreichend - zum einen ist das ziemlich teuer und aufwändig, zum anderen kann es mehrere Monate dauern, bis solch ein Angriff aufgedeckt wird.

Es bleibt wohl nur, vertrauen in die Hersteller zu haben und zu hoffen, dass das nicht nochmal passiert 🤷‍♂️

Wenn ihr Ideen dazu habt, schreibt mir doch eine E-Mail.

Tags: de, security, malware