Artur Marciniec - Fotolia

Was man aus Angriffen auf die Lieferkette lernen kann

Angriffe auf die Softwarelieferkette können weitreichende Folgen für Unternehmen haben. Welche Maßnahmen können Organisationen ergreifen, um sich vor derlei Attacken zu schützen?

Der SolarWinds-Hack ist einer der größten Cyberangriffe der jüngeren Geschichte mit verheerenden Folgen und einem...

potenziellen Versicherungsschaden von schätzungsweise mehr als 90 Millionen US-Dollar. Die Angreifer – bei denen es sich nach allgemeiner Auffassung um Cozy Bear, eine angeblich von Russland finanzierte APT-Gruppe, handelt – konnten in das Netzwerk von SolarWinds mit über 18.000 Kunden eindringen.

Sie kompromittierten die SolarWinds-Build-Pipeline, um Malware einzuschleusen, die dann über ein Software-Update ausgeliefert wurde. Zu diesem Kundenstamm gehörten rund 80 Prozent der Fortune-500-Unternehmen, darunter Microsoft, Cisco, Intel, Nvidia, Belkin, FireEye, Deloitte sowie zahlreiche US-Regierungsstellen und Behörden.

Der Angriff auf SolarWinds hatte nicht nur weitreichende Folgen für diese Unternehmen, sondern dient der Branche auch als Beweis dafür, wie Software Supply Chains angegriffen werden können – vor allem, da unsere Abhängigkeit von Software wächst. Welche Lehren lassen sich nun ziehen und welche Maßnahmen ergreifen, um Unternehmen vor künftigen Angriffen dieser Art auf die Softwarelieferkette zu schützen? Dies erfordert eine Konzentration auf die Absicherung von Build-Pipelines, um sicherzustellen, dass Hacker den Prozess nicht manipulieren können, und gleichzeitig Investitionen in die Infrastruktur für die Maschinenidentität, um zu gewährleisten, dass jedes Stück Code, das im Build-System läuft, mit einer gültigen Maschinenidentität für die Codesignierung signiert ist.

Der SolarWinds-Angriff entschlüsselt

Die Kompromittierung der weit verbreiteten Netzwerküberwachungs- und -verwaltungssoftware SolarWinds Orion Platform ermöglichte es den böswilligen Akteuren, gefälschte Updates in Hunderte von Kundensystemen einzuspielen. Berichte haben bestätigt, dass die Infektion durch Malware mit dem Namen Sunspot verursacht wurde. Die Sunspot-Malware war für das Einfügen des bösartigen Codes in das Software-Update verantwortlich, indem sie eine der Quellcode-Dateien während des Build-Prozesses durch die Sunburst-Backdoor ersetzte. Die Modifikation des Updates war sehr leicht. Die Hacker ahmten den Codierungsstil der Softwareentwickler nach, indem sie die Benennungsstandards anpassten, so dass sich die Änderung leicht einfügen ließ.

So konnten sie das Code-Signierungssystem der Maschinenidentität dazu zwingen, ein manipuliertes Update über den von den SolarWinds-Entwicklern definierten legitimen Signierungsprozess zu signieren. Dies bedeutete, dass die Sunburst-Backdoor über das legitime Software-Update-Verteilungssystem bereitgestellt wurde und daher von jedem, der das Update von der Unternehmenswebsite heruntergeladen hat, als vertrauenswürdig eingestuft wurde.

Die Fähigkeit des Angreifers, das Code-Signing-System auszutricksen, um einen bösartigen Code zu signieren, ist besorgniserregend, da Code Signing Vertrauen und Softwareauthentizität in Unternehmensnetzwerken garantiert. Die Tatsache, dass das Update signiert und verifiziert war, machte es letztlich extrem schwer, einen Fehler zu erkennen, so dass sich die Angreifer unbemerkt verstecken konnten.

Die Auswirkungen auf die IT-Sicherheit

Obwohl diese Art von Angriff an sich nicht neu war, hat er die Aufmerksamkeit auf sich gezogen. Heraus ragt er, weil er so raffiniert war. Die Angreifer ahmten den Code und die Struktur der Entwickler nach und fügten den Code dort ein. Außerdem waren die Angreifer so unauffällig wie möglich.

Softwarelieferketten haben sich als schlecht geschützte, lukrative Ziele erwiesen, und Angriffe auf sie werden nur noch häufiger werden. Die meisten Unternehmen sind einfach nicht in der Lage, bösartige Aktivitäten in ihrer Build-Pipeline zu erkennen. Entwickler arbeiten im Maschinentempo, um die Nachfrage nach Services im gesamten Unternehmen zu befriedigen und Innovationen zu beschleunigen. DevOps-Teams haben ihre Softwarelieferketten nicht im Griff, und was man nicht sieht, kann man auch nicht verwalten.

Hinzu kommt der Umfang: Ein durchschnittliches Java-Entwicklungsunternehmen arbeitet mit über 14.000 einzelnen Komponentenversionen. Es ist unmöglich, diese Anzahl von Komponenten mit manuellen Prozessen zur Bereitstellung und Verwaltung von Code-Signiermaschinen-Identitäten im Auge zu behalten.

Diese Probleme werden durch einen Mangel an klaren Absprachen zwischen Infosec- und DevOps-Teams noch verstärkt. In vielen Unternehmen herrscht Verwirrung über die Zuständigkeit für den Schutz von Build Pipelines und die Implementierung einer Code-Signatur-Infrastruktur, die sicherstellt, dass jeder Code signiert ist. Das bedeutet, dass weder CIOs noch Entwicklungsteams verstehen, wie sie abgesichert sind. Dies ist jedoch nicht neu: Venafi veröffentlichte beispielsweise 2019 einen Bericht, der einen deutlichen Mangel an Schutz für Code Signing-Zertifikate aufzeigte. Außerdem warnte bereits 2012 eine Studie des Georgia Institute of Technology vor der Art von Schaden, der durch die Übernahme oder das Spoofing eines Netzwerkverwaltungssystems wie SolarWinds verursacht werden könnte.

Die Sicherheitslücke beheben

Der Angriff von SolarWinds beweist, dass die Updates eines jeden Softwareunternehmens mittlerweile als Schwachstelle und Angriffsfläche betrachtet werden können. Die digitale Transformation vergrößert das Problem, da neue Software häufiger als je zuvor veröffentlicht und aktualisiert wird. Um die Lücken in der Build-Pipeline zu schließen, müssen Unternehmen genau kontrollieren, was in der Pipeline ausgeführt werden kann, und Sicherheitsprozesse automatisieren - insbesondere die Verwaltung und Rotation ihrer Maschinenidentitäten.

Yana Blachman, Venafi

„Softwarelieferketten haben sich als schlecht geschützte, lukrative Ziele erwiesen, und Angriffe auf sie werden nur noch häufiger werden.“

Yana Blachman, Venafi

Eine starke Maschinenidentitätsstrategie, bei der jedes Stück Code, das in die Build-Umgebung gelangt, signiert wird, ermöglicht eine größere Effizienz, Vorhersagbarkeit und Skalierbarkeit von Prozessen und Richtlinien und hilft dabei, Entwickler- und Sicherheitsteams aufeinander abzustimmen. Auf diese Weise können Teams Maschinenidentitäten bei Bedarf selbst verwalten und gleichzeitig den Lebenszyklus der Maschinenidentität durchgängig automatisieren.

Unternehmen müssen außerdem ihre gesamte Softwarelieferkette abbilden, um einen Überblick über alle von ihnen produzierten und verbrauchten Elemente zu erhalten und zu beurteilen, was sie in ihrem DevOps-Stack haben und wer darauf Zugriff hat.

Fazit

Unternehmen müssen dringend handeln, um sich vor zukünftigen Angriffen zu schützen. Sie können ihre Softwarelieferkette und ihre Entwickler-Build-Pipeline absichern, indem sie sicherstellen, dass jedes einzelne Stück des verwendeten Codes signiert ist. SolarWinds hat die Unternehmen zwar aufhorchen lassen, aber viele verstehen immer noch nicht, warum der Erfolg so groß war, so dass sie Code Signing und die Verwaltung von Maschinenidentitäten immer noch nicht in ihre Verteidigungsstrategien einbeziehen. Letztlich besteht die einzige Schutzmöglichkeit für Unternehmen darin, jede Software, die in der Entwicklungsumgebung läuft, zu überprüfen.

Über den Autor:
Yana Blachman ist Threat Intelligence Researcher bei Venafi.

Die Autoren sind für den Inhalt und die Richtigkeit ihrer Beiträge selbst verantwortlich. Die dargelegten Meinungen geben die Ansichten der Autoren wieder.

Erfahren Sie mehr über IT-Sicherheits-Management