In this article
Angriffe auf die Software-Lieferkette
Angriffsbeispiele und wie Sie sie verhindern
Was ist ein Software-Supply-Chain-Angriff?
Moderne Software-Supply-Chains basieren größtenteils auf Ressourcen von Drittanbietern, die die Bereitstellung von Software beschleunigen und vereinfachen. In der Regel müssen Unternehmen diese Ressourcen bis zu einem gewissen Grad in ihre Systeme integrieren und externen Anbietern Zugriff auf ihre interne Infrastruktur gewähren, damit die Ressourcen ordnungsgemäß in den Systemen funktionieren können.
Wenn Angreifer eine Schwachstelle in einer dieser externen Quellen finden, kann sich das negativ auf das gesamte System auswirken. Deshalb ist Supply-Chain-Sicherheit wichtig.
Arten von Angriffen auf die Software-Lieferkette
Es gibt viele Arten von Bedrohungen für die Lieferkette. Zu den häufigsten zählen:
Softwareanbieter von Drittanbietern
Website-Baukästen
Datenspeicher von Drittanbietern
Watering-Hole-Angriffe
All diese Angriffe erfordern wenig Aufwand und versprechen große Gewinne für böswillige Akteure. Ein Angreifer muss lediglich eine dieser Websites oder einen dieser Anbieter manipulieren und erhält dann standardmäßig Zugriff auf Tausende von Nutzern. Darin liegt die wahre Gefahr der Lieferkette: Wird ein Glied am Anfang der Kette kompromittiert – etwa ein Drittanbieter oder eine Website –, sind auch alle nachgelagerten Glieder unmittelbar gefährdet. Angreifer nutzen dies oft aus, indem sie Malware verbreiten, die Geräte aus der Ferne steuern und Informationen stehlen kann, oder vertrauliche Daten direkt aus Dateien extrahieren.
Softwareanbieter von Drittanbietern
Unternehmen nutzen heute häufig Software von Drittanbietern für unterschiedliche Zwecke – direkt und über transitive Abhängigkeiten. Um Zugriff auf Hunderte oder Tausende Kunden zu erhalten, die das Produkt einsetzen, muss ein Angreifer lediglich diese Software eines Drittanbieters kompromittieren.
Website-Baukästen
Vorlagen oder Plugins eines Website-Baukastens können kompromittiert werden und so die Funktionsweise der damit erstellten Websites Angriffen aussetzen.
Datenspeicher von Drittanbietern
Unternehmen beauftragen häufig Drittanbieter mit der Verarbeitung und Speicherung ihrer Daten. Dazu gehören sensible Kundeninformationen ebenso wie Angaben zur Sicherheitslage, zu Mitarbeitenden und zu Strategien des Unternehmens.
Watering-Hole-Angriffe
Bei einem Watering-Hole-Angriff wird eine Website ins Visier genommen, die Nutzer häufig für Aufgaben besuchen, bei denen sensible Daten verarbeitet werden. Angreifer zielen dabei in der Regel auf öffentliche Websites einer bestimmten Branche, Organisation oder Personengruppe. Über diese Websites verbreiten sie Malware an Besucher, meist indem sie Nutzer von der legitimen Website auf eine gefälschte umleiten.
Beispiele für Angriffe auf die Software-Lieferkette
Help Net Security stellte fest, dass Angriffe auf die Software-Lieferkette 2021 um mehr als 300 % zunahmen. Da solche Angriffe mehrere Unternehmen und Kunden gleichzeitig betreffen können, sorgen sie oft für Schlagzeilen und werden weithin bekannt.
Hier sind einige bekannte Angriffe auf die Lieferkette, die Drittanbieter und deren Nutzer erheblich schädigten:
SolarWinds
Bei diesem Angriff Anfang 2020 fügten böswillige Akteure Schadcode in ein Update für SolarWinds Orion ein, eine Plattform zur Überwachung und Verwaltung von Infrastruktur. Nutzer von SolarWinds installierten das infizierte Update auf ihren Geräten und verschafften den Angreifern damit über eine Hintertür Zugriff auf sensible Daten zahlreicher Unternehmen und mehrerer Behörden.
Ein Jahr später war ein Angriff auf den E-Mail-Sicherheitsanbieter Mimecast Anfang 2021 eine der vielen Folgen der SolarWinds-Kompromittierung. Mimecast nutzte die Plattform SolarWinds Orion. Als Angreifer Schadcode in SolarWinds einschleusten, war auch Mimecast betroffen – ebenso wie etwa 18.000 weitere SolarWinds-Kunden.
Der Schadcode installierte automatisch Malware für die Software-Lieferkette auf den Systemen von Mimecast. Dadurch wurden sensible Daten wie von Mimecast ausgestellte Zertifikate, Verbindungsinformationen zu Kundenservern, E-Mail-Adressen und Zugangsdaten von Nutzern kompromittiert.
Dependency Confusion 2021
Im vergangenen Jahr wurde eine neue Art von Cyberangriff auf die Lieferkette entdeckt: Dependency Confusion. Entdeckt wurde sie vom Medium-Autor und Programmierer Alex Birsan. Es gelang ihm, auf interne Systeme zuzugreifen und Daten von Branchenriesen wie Yelp, Tesla, Apple und Microsoft zu exfiltrieren.
Alex führte den Angriff durch, indem er npm- oder yarn-Pakete mit denselben Namen wie private interne Pakete erstellte. Da seine gleichnamigen Pakete neuer waren als die legitimen Pakete der Unternehmen, rief das System standardmäßig die bösartigen öffentlichen Pakete ab. Alex war zwar kein Black-Hat-Hacker, doch seine Entdeckung der Schwachstelle Dependency Confusion zeigte, dass die Namenskonventionen von npm-/yarn-Paketen große interne Systeme gefährden können.
CodeCov 2021
CodeCov, ein Tool zur Codeabdeckung, erstellt maschinenlesbare Berichte und lädt sie auf einen Server hoch, während Entwickler Tests ausführen. Angreifer missbrauchten ein curl|bash-Skript, das CodeCov zum Hochladen der Berichte auf seinen Server verwendete. Dazu verschafften sie sich Zugriff auf den CDN-Bucket `private write, public read`, auf dem der Server gehostet wurde, und manipulierten anschließend das Bash-Skript. Mit dem veränderten Skript drangen sie in die CI-Pipelines der Kunden ein und stahlen Umgebungsvariablen von CodeCov-Kunden.
4 Angriffsvektoren für Cyberangriffe auf die Lieferkette
Wie diese jüngsten Angriffe auf die Lieferkette zeigen, können Angreifer über beliebige Drittanbieter oder Komponenten in die Software-Lieferkette eines Unternehmens eindringen. Deshalb kann die Lieferkette eine sehr große Angriffsfläche darstellen.
Im Allgemeinen nutzen Angreifer jedoch häufig einige bestimmte Angriffsvektoren:
Quellcode: Angreifer können proprietären Code direkt manipulieren, wie es bei SolarWinds der Fall war. Dazu müssen sie lediglich Zugangsdaten mit weitreichenden Berechtigungen erlangen, auf ein Repository zugreifen oder eine Schwachstelle im von Entwicklern geschriebenen und von einem statischen Code-Analysetool nicht erkannten Code ausnutzen.
Abhängigkeiten: Unternehmen können beliebig viele Abhängigkeiten von Drittanbietern einbinden, etwa App-Bibliotheken, Betriebssystempakete und Basis-Images. Wird eine dieser direkten oder transitiven Abhängigkeiten kompromittiert, entsteht für jedes Unternehmen, das sie nutzt, eine Schwachstelle.
Build-Tools: CI/CD-Pipelines und andere Build-Tools für die Entwicklung sind auf Automatisierung ausgelegt. Sie sollen schnelle Änderungen ermöglichen und Tests mit wenig oder ganz ohne menschliches Eingreifen ausführen. Daher kann es für Entwicklungsteams schwierig sein, ein infiziertes Build-Tool zu erkennen – wie beim CodeCov-Angriff.
Deployments: Die Angriffe auf SolarWinds und Asus haben etwas gemeinsam: In beiden Fällen wurde Schadcode im Rahmen eines Updates bereitgestellt. Um mögliche Angriffe auf die Software-Lieferkette zu verhindern, müssen Unternehmen sorgfältig sicherstellen, dass alle Deployments sicher sind – insbesondere, wenn sie automatisierte Continuous-Deployment-Verfahren (CD) einsetzen.
So verhindern Sie Angriffe auf die Software-Lieferkette
Unternehmen können Angriffe auf die Software-Lieferkette verhindern, indem sie Sicherheitsmaßnahmen in ihre Entwicklungs- und Release-Prozesse integrieren. Sicherheit ist eine gemeinsame Verantwortung aller Unternehmensbereiche und sollte in jeder Entwicklungsphase berücksichtigt werden – gemäß dem DevSecOps-Ansatz.
Software Composition Analysis
Software Composition Analysis (SCA) ist ein guter Ausgangspunkt. SCA verschafft Ihnen einen vollständigen Überblick über die Abhängigkeiten Ihrer Software, damit Sie bei Problemen mit einem Drittanbieter oder einer Komponente rechtzeitig handeln können. Bei SCA geht es darum, zu verstehen, was in Ihrer Software steckt und wo genau Komponenten von Drittanbietern eingesetzt werden. Snyk Open Source ist ein SCA-Tool, das mit branchenführender Intelligenz Ihre Anwendungen schützt.
Die Erstellung einer Software Bill of Materials (SBOM) ist für die Implementierung von SCA unerlässlich. SBOMs dokumentieren detailliert und schriftlich, welche Komponenten in welchen Anwendungen enthalten sind.
Statische Anwendungssicherheitstests
Statische Anwendungssicherheitstests (SAST) sind eine weitere wichtige Sicherheitspraxis. Sie konzentrieren sich speziell auf die Analyse des unternehmenseigenen Quellcodes und darauf, häufig ausgenutzte Schwachstellen zu erkennen, etwa potenzielle Angriffspunkte für Injection oder grundsätzlich unsicheres Design. Snyk Code ist ein SAST-Tool, das sich direkt in die meisten IDEs integrieren lässt. Es analysiert den Code während der Entwicklung und liefert konkrete Empfehlungen zur Behebung.
Scans von Container-Images
Scans von Container-Images sind unerlässlich, um Risiken in Ihren CI-Build-Agent-Images oder Anwendungs-Basis-Images zu erkennen. Mit Tools zum Container-Scanning wie Snyk Container erhalten Sie Empfehlungen für sichere Basis-Images, überwachen Container kontinuierlich auf Schwachstellen und beheben Schwachstellen in Open-Source-Abhängigkeiten, die in Basis-Images und Dockerfile-Befehlen verwendet werden.
Sicherheit nach links verschieben
Wenn Sie Entwickler dabei unterstützen und befähigen, Sicherheitstools zu verstehen und einzusetzen, verlagern Sie Sicherheit nach links. Zudem sind der Aufbau robuster Richtlinien und eines sicheren Softwareentwicklungslebenszyklus (SDLC) wichtig, um verschiedenste Risiken einschließlich Angriffen auf die Lieferkette zu mindern.
Am besten integrieren Sie Sicherheit in Ihre täglichen Entwicklungsprozesse, indem Sie Tools wie SCA, SAST und Container-Scans in jeder Entwicklungsphase einsetzen. Außerdem sollten Sie wirksame Sicherheitsrichtlinien festlegen und durchsetzen. Eine der besten Möglichkeiten dafür ist die automatisierte Implementierung von Policy as Code (PaC). So geben Sie Entwicklern Leitplanken vor, ohne dass sie manuell umfangreiche Regel- und Vorschriftenlisten im Blick behalten müssen.
So hilft Snyk Ihnen, Ihre Software-Lieferkette zu schützen
Die Lösung von Snyk für die Sicherheit der Software-Lieferkette nutzt Snyk Open Source und Snyk Container, um Abhängigkeiten und Basis-Images auf vorhandene und neue Schwachstellen zu prüfen, die Ihre Projekte betreffen. Beide Lösungen basieren auf der hochmodernen Snyk Intel Vulnerability Database, die Schwachstellen durchschnittlich 47 Tage schneller erkennt als andere verfügbare Datenbanken. Außerdem erkennt sie Malware in der Lieferkette und bösartige Pakete. Mit Snyk Advisor kann Ihr Unternehmen zudem zuverlässige Pakete und öffentliche Container-Basis-Images finden, bevor diese in der Entwicklung eingesetzt werden.
Software-Lieferkettensicherheit mit Snyk
Snyk verschafft Ihnen Einblick in Sicherheitsprobleme Ihrer Software-Lieferkette und bietet Lösungsvorschläge für eine schnelle Behebung.
Entdecken Sie unsere Ressourcen und erfahren Sie mehr über die Tools von Snyk zum Schutz Ihrer Lieferkette und den aktuellen Stand der Sicherheit in der Lieferkette.