In der heutigen vernetzten digitalen Landschaft stellen Supply-Chain-Angriffe eine der heimtückischsten und potenziell verheerendsten Bedrohungen dar. Anstatt direkt die Zielorganisation anzugreifen, infiltrieren Angreifer die Systeme Dritter – Softwareanbieter, Dienstleister oder Open-Source-Projekte –, um deren Produkte oder Dienstleistungen zu kompromittieren. Diese kompromittierten Komponenten werden dann unwissentlich von den eigentlichen Zielen übernommen, wodurch die Angreifer einen vertrauenswürdigen Zugang zu deren Netzwerken erhalten. Die Auswirkungen solcher Angriffe können weitreichend sein, von Datendiebstahl über Spionage bis hin zu weitreichenden Systemausfällen. Um diese Bedrohung effektiv zu bekämpfen, ist es unerlässlich, die Mechanismen vergangener Großvorfälle zu verstehen, Angriffsmuster zu erkennen und daraus robuste Präventionsstrategien abzuleiten.

Was sind Supply-Chain-Angriffe? Eine Definition und ihre Relevanz

Ein Supply-Chain-Angriff zielt darauf ab, Schwachstellen in der Lieferkette eines Unternehmens auszunutzen. Anstatt die primäre Zielorganisation direkt anzugreifen, konzentrieren sich Angreifer auf weniger geschützte Glieder in der Kette, wie z.B. Softwareentwickler, Hardware-Hersteller oder Drittanbieter von Dienstleistungen. Der Kerngedanke ist, das Vertrauen, das Organisationen in ihre Lieferanten und deren Produkte setzen, zu missbrauchen.

Die Kette ist nur so stark wie ihr schwächstes Glied

Die moderne Softwareentwicklung und IT-Infrastruktur basieren auf einem komplexen Ökosystem von Komponenten, Bibliotheken, Tools und Dienstleistungen, die von unzähligen Anbietern stammen. Jedes dieser Elemente stellt ein potenzielles Einfallstor dar. Ein Angreifer muss lediglich ein einziges, ausreichend vertrauenswürdiges Glied in dieser Kette kompromittieren, um Zugriff auf eine Vielzahl von nachgeschalteten Zielen zu erlangen. Dies macht Supply-Chain-Angriffe besonders attraktiv für staatlich unterstützte Akteure und hochmotivierte Kriminelle, da der Aufwand für den anfänglichen Einbruch oft geringer ist als ein direkter Angriff auf ein gut gesichertes Hauptziel.

Angriffsvektoren

  • Kompromittierte Software-Updates: Angreifer schleusen bösartigen Code in legitime Software-Updates ein, die dann von den Kunden installiert werden (z.B. SolarWinds, NotPetya).
  • Kompromittierte Entwicklungsumgebungen: Angriff auf Build-Server, Quellcode-Repositories oder CI/CD-Pipelines, um bösartigen Code direkt in die Software einzuschleusen (z.B. Codecov).
  • Bösartige Open-Source-Bibliotheken: Einschleusen von Schadcode in populäre Open-Source-Bibliotheken, die von vielen Projekten verwendet werden.
  • Hardware-Manipulation: Selten, aber möglich ist die Manipulation von Hardware-Komponenten während des Herstellungsprozesses.
  • Kompromittierte Dienstleister: Ausnutzung von Schwachstellen bei Managed Service Providern (MSPs) oder anderen Dienstleistern, die Zugang zu den Systemen ihrer Kunden haben (z.B. Kaseya).

Fallstudie 1: SolarWinds (SUNBURST) – Eine neue Dimension der Raffinesse

Der SolarWinds-Angriff, bekannt unter den Namen SUNBURST und Solorigate, wurde Ende 2020 öffentlich und gilt als einer der raffiniertesten und weitreichendsten Supply-Chain-Angriffe der Geschichte. Er traf Tausende von Organisationen weltweit, darunter zahlreiche US-Regierungsbehörden und Fortune-500-Unternehmen.

Der Angriffsmechanismus

Die Angreifer, die der russischen Hackergruppe APT29 (Cozy Bear) zugeschrieben werden, schafften es, die Build-Umgebung von SolarWinds zu kompromittieren. SolarWinds ist ein Softwareunternehmen, das IT-Management-Tools entwickelt, darunter das weit verbreitete Orion-Produkt zur Netzwerküberwachung. Die Angreifer injizierten bösartigen Code in eine legitime Softwarebibliothek, die Teil der Orion-Plattform ist: die Datei SolarWinds.Orion.Core.BusinessLayer.dll. Dieser Code wurde dann mit legitimen Zertifikaten signiert und als scheinbar harmloses Update an die Kunden ausgeliefert. Die Kompromittierung erfolgte über Monate hinweg unbemerkt und zeigte eine beispiellose Geduld und technische Expertise.

Der bösartige Payload, der als SUNBURST bekannt ist, enthielt eine Backdoor, die nach einer Wartezeit von bis zu zwei Wochen (um die Entdeckung zu erschweren) eine verschlüsselte Kommunikation mit Command-and-Control-Servern (C2) aufnahm. Über diese Backdoor konnten die Angreifer dann weitere Malware nachladen, um lateral in den Netzwerken der Opfer vorzudringen, Daten zu exfiltrieren und Zugangsdaten zu stehlen. Der Angriff nutzte das implizite Vertrauen der Kunden in signierte Software-Updates eines renommierten Anbieters.

Auswirkungen und Entdeckung

Die Entdeckung erfolgte nicht durch die internen Sicherheitssysteme von SolarWinds, sondern durch FireEye, ein Sicherheitsunternehmen, das selbst Opfer des Angriffs wurde und feststellte, dass seine eigenen Tools kompromittiert waren. Die Auswirkungen waren massiv: Schätzungsweise 18.000 Kunden, darunter sensible Regierungsstellen und große Unternehmen, installierten das kompromittierte Update. Die Angreifer hatten über Monate hinweg unbemerkten Zugang zu hochsensiblen Netzwerken. Der Vorfall führte zu einer Neubewertung der Sicherheit von Software-Lieferketten und der Notwendigkeit einer tieferen Überprüfung von Drittanbieter-Software.

Gelernte Lektionen

  • Tiefe Verteidigung (Defense-in-Depth): Selbst vertrauenswürdige Software kann kompromittiert sein. Es ist entscheidend, nach der Installation von Updates weiterhin eine starke Überwachung zu betreiben.
  • Supply Chain Visibility: Unternehmen müssen die Sicherheit ihrer Lieferanten besser bewerten und die Integrität von Software-Artefakten über den gesamten Lebenszyklus hinweg überprüfen.
  • Anomalieerkennung: Verhaltensanalysen und die Erkennung von ungewöhnlichem Netzwerkverkehr oder Zugriffsversuchen sind entscheidend, um auch getarnte Angriffe zu entdecken.
  • Segmentierung und Least Privilege: Um die Auswirkungen eines Kompromisses zu minimieren, sollten Systeme und Daten strikt segmentiert und der Zugriff nach dem Prinzip der geringsten Rechte (Least Privilege) gewährt werden.

Fallstudie 2: Codecov – Die Gefahr in den Entwicklungstools

Der Codecov-Angriff, der im April 2021 bekannt wurde, demonstrierte die Schwachstellen in der Softwareentwicklungs-Lieferkette selbst, insbesondere in Tools, die für Continuous Integration/Continuous Delivery (CI/CD) verwendet werden.

Der Angriffsmechanismus

Codecov ist ein Code-Coverage-Dienst, der Entwicklern hilft, die Testabdeckung ihres Codes zu messen. Viele Unternehmen integrieren Codecov in ihre CI/CD-Pipelines, indem sie ein Bash-Skript ausführen, das Daten an Codecov sendet. Die Angreifer gelangten über eine Fehlkonfiguration in einem Docker-Image, das zur Erstellung des Codecov-Bash-Uploader-Skripts verwendet wurde, an die Anmeldeinformationen, um das Skript zu ändern.

Über einen Zeitraum von zwei Monaten, vom 31. Januar bis zum 1. April 2021, modifizierten die Angreifer das offizielle Bash-Uploader-Skript. Die bösartige Version des Skripts kopierte nicht nur die Code-Coverage-Daten, sondern auch Umgebungsvariablen und andere sensible Informationen (wie API-Schlüssel, Anmeldeinformationen und Tokens) aus den CI/CD-Umgebungen der Kunden an einen externen Server, der von den Angreifern kontrolliert wurde.

Da viele Entwicklungsteams das Codecov-Skript direkt von der URL herunterladen und ausführen, z.B. mittels:

curl -s https://codecov.io/bash | bash

führte dies dazu, dass die kompromittierte Version des Skripts ohne weiteres Zutun der Kunden ausgeführt wurde. Dies ist ein klassisches Beispiel für die Ausnutzung von Vertrauen in externe Skripte.

Auswirkungen und Entdeckung

Die Angreifer konnten auf sensible Daten von Hunderten von Codecov-Kunden zugreifen, die das modifizierte Skript ausgeführt hatten. Dies umfasste möglicherweise Zugangsdaten zu Quellcode-Repositories, Cloud-Diensten und anderen kritischen Systemen. Die Entdeckung erfolgte, als ein Kunde von Codecov eine verdächtige Aktivität in seiner Protokollierung bemerkte.

Gelernte Lektionen

  • Sicherheit von Entwicklungstools: Tools, die tief in den Softwareentwicklungslebenszyklus integriert sind, wie Code-Coverage-Dienste, Paketmanager oder CI/CD-Plattformen, sind hochattraktive Ziele. Ihre Sicherheit muss höchste Priorität haben.
  • Secrets Management: Sensible Informationen (API-Schlüssel, Tokens) sollten niemals direkt in Umgebungsvariablen gespeichert werden, die von Build-Skripten gelesen werden können. Stattdessen sollten sichere Secrets-Management-Lösungen verwendet werden.
  • Integritätsprüfung: Skripte, die von externen Quellen heruntergeladen und ausgeführt werden, sollten stets auf ihre Integrität überprüft werden, z.B. durch Hash-Vergleiche oder GPG-Signaturen, bevor sie ausgeführt werden.
  • Least Privilege für CI/CD: CI/CD-Pipelines und die von ihnen verwendeten Tools sollten nur die absolut notwendigen Berechtigungen haben, um ihre Aufgaben zu erfüllen.

Weitere bemerkenswerte Vorfälle und Muster

Neben SolarWinds und Codecov gab es eine Reihe weiterer prominenter Supply-Chain-Angriffe, die ähnliche Muster aufweisen und die dringende Notwendigkeit einer umfassenden Verteidigungsstrategie unterstreichen.

Kaseya VSA Ransomware-Angriff

Im Juli 2021 nutzte die REvil-Ransomware-Gruppe eine Zero-Day-Schwachstelle in der Kaseya VSA-Software aus, einer Remote-Management- und Monitoring-Lösung (RMM), die von Managed Service Providern (MSPs) verwendet wird. Durch die Kompromittierung des Kaseya-Servers konnten die Angreifer Ransomware an Hunderte von MSP-Kunden und deren Endkunden verteilen. Dieser Vorfall zeigte, wie ein einzelner Angriff auf einen zentralen Dienstleister eine Kaskade von Kompromittierungen auslösen kann.

NotPetya und MeDoc

Im Jahr 2017 wurde die Ransomware NotPetya, die fälschlicherweise als Ransomware getarnt war, aber tatsächlich als Wiper-Malware diente, über eine kompromittierte Update-Funktion der ukrainischen Steuersoftware MeDoc verbreitet. Die Angreifer schleusten bösartigen Code in ein legitimes Update ein, das dann von Tausenden von Unternehmen in der Ukraine und weltweit installiert wurde. Die Malware verbreitete sich rasend schnell in Netzwerken, auch über die Ukraine hinaus, und verursachte Schäden in Milliardenhöhe.

Gemeinsame Angriffsmuster

Aus diesen und anderen Vorfällen lassen sich wiederkehrende Muster ableiten:

  • Ausnutzung von Vertrauen: Das zentrale Element ist immer die Ausnutzung des Vertrauens in Software, Updates oder Dienstleistungen von Drittanbietern.
  • Stealth und Persistenz: Angreifer agieren oft über lange Zeiträume unentdeckt, um sich tief in den Systemen zu verankern und maximale Auswirkungen zu erzielen.
  • Lateral Movement: Nach dem initialen Einbruch versuchen Angreifer, sich seitlich im Netzwerk zu bewegen, um weitere Systeme und Daten zu kompromittieren.
  • Ziel von kritischen Tools: Entwicklungstools, Überwachungssoftware, Update-Mechanismen und RMM-Lösungen sind beliebte Ziele, da sie weitreichende Zugriffsrechte besitzen.
  • Digitale Signaturen missbrauchen: Kompromittierte Build-Systeme ermöglichen es Angreifern, bösartigen Code mit legitimen digitalen Signaturen zu versehen, was die Entdeckung erschwert.

Präventionsstrategien und Resilienzaufbau

Die Bekämpfung von Supply-Chain-Angriffen erfordert einen mehrschichtigen Ansatz, der sowohl technische Maßnahmen als auch organisatorische Prozesse umfasst. Es geht darum, die Angriffsfläche zu minimieren, die Erkennung zu verbessern und die Widerstandsfähigkeit gegen solche Angriffe zu stärken.

Robuste Lieferantenbewertung

Der erste Schritt ist eine gründliche Due Diligence bei allen Lieferanten und Drittanbietern. Dies sollte beinhalten:

  • Sicherheitsaudits und -fragebögen: Regelmäßige Überprüfung der Sicherheitskontrollen und -praktiken der Lieferanten.
  • Vertragliche Vereinbarungen: Festlegung von Sicherheitsanforderungen, Meldepflichten bei Sicherheitsvorfällen und Auditrechten in Verträgen.
  • Risikobewertung: Klassifizierung von Lieferanten nach dem potenziellen Risiko, das sie für das Unternehmen darstellen.
Die Sicherheit Ihrer Software ist direkt proportional zur Sicherheit des schwächsten Glieds in Ihrer Lieferkette.

Software Supply Chain Security (SSCS) Best Practices

Innerhalb der eigenen Organisation und in Zusammenarbeit mit Lieferanten sollten folgende Praktiken etabliert werden:

  • Code-Signing und Integritätsprüfung:

    Alle Software-Artefakte und Updates sollten digital signiert sein. Kunden sollten diese Signaturen und optional auch Checksummen überprüfen, bevor sie Software installieren oder ausführen. Dies hilft, Manipulationen zu erkennen.

    # Beispiel für die Überprüfung einer GPG-Signatur
    gpg --verify signature.asc software.tar.gz
    
    # Beispiel für die Überprüfung einer SHA256-Checksumme
    sha256sum software.tar.gz
    cat software.sha256 # Vergleich mit dem erwarteten Hash
  • MFA und Least Privilege:

    Multi-Faktor-Authentifizierung (MFA) für alle kritischen Systeme und Zugänge, insbesondere für Build-Server, Code-Repositories und CI/CD-Pipelines. Das Prinzip der geringsten Rechte (Least Privilege) muss konsequent angewendet werden, um die Auswirkungen eines Kompromisses zu begrenzen.

  • Regelmäßige Audits und Penetrationstests:

    Sowohl interne als auch externe Audits der gesamten Entwicklungspipeline und der eingesetzten Tools. Penetrationstests können Schwachstellen aufdecken, bevor Angreifer sie finden.

  • SBOMs (Software Bill of Materials):

    Die Anforderung und Erstellung von Software Bill of Materials (SBOMs) für alle eingesetzten Softwareprodukte. Ein SBOM listet alle Komponenten, Bibliotheken und Abhängigkeiten einer Software auf. Dies ermöglicht eine bessere Transparenz und die schnelle Identifizierung von bekannten Schwachstellen (CVEs) in der Software.

    Beispiel (vereinfacht, basierend auf SPDX/CycloneDX):
    {
      "name": "MeineAnwendung",
      "version": "1.0.0",
      "suppliers": [
        {"name": "VendorA", "contact": "security@vendora.com"}
      ],
      "dependencies": [
        {"name": "Bibliothek-A", "version": "1.2.3", "license": "MIT", "cves": ["CVE-202X-XXXX"]},
        {"name": "Bibliothek-B", "version": "4.5.6", "license": "Apache-2.0"}
      ]
    }
  • Sicherer Software-Entwicklungslebenszyklus (SDLC):

    Implementierung von Sicherheitspraktiken in jeder Phase des SDLC, von der Anforderungserfassung über das Design, die Entwicklung, das Testen bis zur Bereitstellung und Wartung. Dazu gehören Code-Reviews, statische und dynamische Code-Analyse (SAST/DAST) und die Pflege von Abhängigkeiten.

Incident Response und Business Continuity

Trotz aller Präventionsmaßnahmen kann ein Angriff niemals vollständig ausgeschlossen werden. Daher sind robuste Incident-Response-Pläne und Business-Continuity-Strategien unerlässlich:

  • Vorbereitung: Schulung von Mitarbeitern, Etablierung von Kommunikationskanälen und Definition von Rollen und Verantwortlichkeiten im Falle eines Vorfalls.
  • Erkennung: Implementierung von Advanced Threat Detection, Verhaltensanalysen und kontinuierlichem Monitoring, um verdächtige Aktivitäten frühzeitig zu erkennen.
  • Eindämmung und Wiederherstellung: Klare Prozesse zur Isolierung kompromittierter Systeme, Entfernung von Schadcode und Wiederherstellung des Betriebs aus sicheren Backups.

Supply-Chain-Angriffe werden aufgrund ihrer Effizienz und ihres hohen Return on Investment für Angreifer weiterhin eine große Bedrohung darstellen. Die Analyse von Vorfällen wie SolarWinds und Codecov liefert wertvolle Einblicke in die Taktiken der Angreifer und die Schwachstellen, die sie ausnutzen. Durch die konsequente Anwendung von Best Practices in der Lieferantenbewertung, der Software-Lieferketten-Sicherheit und der Incident Response können Organisationen ihre Resilienz gegenüber diesen komplexen und sich ständig weiterentwickelnden Bedrohungen erheblich stärken. Es ist ein kontinuierlicher Prozess der Wachsamkeit, Anpassung und Zusammenarbeit, um die digitale Lieferkette sicher zu halten.

Benötigen Sie Cybersecurity-Beratung?

Unser Team hilft Ihnen, Ihre IT-Infrastruktur zu sichern und Bedrohungen proaktiv zu erkennen.

Kontakt aufnehmen