Häufige Risiken in der Software-Lieferkette und wie man sie mindert

Gemäß einer Gartner-BerichtBis zum Jahr 45 hätten bis zu 2025 % der Unternehmen weltweit einen Angriff auf ihre Software-Lieferkette erlebt. Diese Art von Angriff kommt immer häufiger vor und ist aufgrund der Veränderungen in der heutigen Entwicklung von Softwareprodukten immer schwieriger zu bewältigen.

Heutzutage müssen Softwareentwickler Anwendungen nicht mehr von Grund auf neu erstellen. So viel wie 90 % einer App kann mit Codes von Drittanbietern, diskreten Bibliotheken und Open-Source-Software erstellt werden. Während dieser Ansatz der Softwareentwicklung dazu beiträgt, den Prozess der App-Erstellung zu vereinfachen und erheblich Zeit zu sparen, erhöht er auch die Bedrohungen und Sicherheitslücken, da Schadpakete über Codes und Software von Drittanbietern übermittelt werden können.

Letztendlich ist es so wird immer schwieriger um die Integrität der Software-Lieferketten aufrechtzuerhalten. Der jüngste Anstieg der Risiken in der Software-Lieferkette und die dadurch verursachten aufsehenerregenden Verstöße zeigen, wie ernst das Problem der Schwachstellen in der Lieferkette ist.

Im Einklang mit diesem Trend ist es für Unternehmen unerlässlich geworden, Maßnahmen zu ergreifen, um die Integrität und Sicherheit ihrer Software zu gewährleisten. In diesem Beitrag untersuchen wir die häufigsten Risiken in der Software-Lieferkette und die verschiedenen Möglichkeiten, wie Unternehmen diese Schwachstellen mindern und ihre Software vor Angriffen schützen können.

Die bekannten Schwachstellen in Software-Lieferketten

Software von Drittanbietern kann mehrere Bedrohungen für die Software-Lieferkette darstellen. Angreifer nutzen möglicherweise verschiedene Methoden, um Schwachstellen in Systemen auszunutzen, die von dieser Drittanbietersoftware abhängen. Zu diesen Angriffsmethoden gehören das Einschleusen von bösartigem Code in Software, Abhängigkeitsverwechslungen, Tippfehler usw.

Aufgrund der Komplexität der Softwareentwicklung und der Geschwindigkeit, mit der neue Apps auf dem heutigen hart umkämpften digitalen Markt bereitgestellt werden müssen, haben Softwareentwickler jedoch keine andere Wahl, als sich auf Tools und externe Bibliotheken von Drittanbietern zu verlassen, um Anwendungen so schnell wie möglich zu erstellen .

Folgende Ursachen können in Anwendungen entstehen:

 

  • Der von Ihnen geschriebene Code: Schlechte Sicherheitspraktiken im benutzerdefinierten Code, den Sie selbst geschrieben haben
  • Womit Sie bauen: Die zum Erstellen von Apps verwendeten Softwareentwicklungstools können kompromittiert werden, wodurch Ihre Software Sicherheitslücken ausgesetzt wird
  • Was Sie kaufen: Einige handelsübliche Software-as-a-Service (SaaS)-Anwendungen, die für die App-Entwicklung verwendet werden, können Schwachstellen enthalten
  • Was Sie verwenden: Viele Anwendungen sind auf Open-Source-Bibliotheken von Drittanbietern angewiesen, die möglicherweise als schwaches Glied in Ihrer Lieferkette dienen.

 

Angesichts der zahlreichen potenziellen Schwachstellen in jeder Software-Lieferkette müssen Unternehmen proaktiv vorbeugen und Abhilfe schaffen Schwachstellen in der Software-Lieferkette. Dazu müssen Softwareentwickler diese potenziellen Risiken oder Bedrohungen verstehen, denen ihre Softwareprojekte potenziell ausgesetzt sein können. Zu diesen Bedrohungen gehören:

Eingebettetes Schadcode-Paket

Eines der Dinge, die Angreifer bei einem Software-Supply-Chain-Angriff tun, besteht darin, die betroffenen Endpunkte mit Schadsoftware zu infizieren. Bei dieser Malware kann es sich um einen Virus, Ransomware, Trojaner oder Spyware handeln, die auf der betroffenen Software und den betroffenen Computersystemen verheerenden Schaden anrichten kann.

Angreifer wählen häufig Ziele aus, deren Systeme über eine hohe Autorisierung auf Benutzergeräten verfügen. Ein bemerkenswertes Beispiel für einen solchen Angriff ist der Cyberangriff von 2021 Kaseya, ein Entwickler von IT-Lösungen, zu dessen Kunden Managed Service Provider und Unternehmenskunden gehörten.

Eine der wichtigsten IT-Lösungen von Kaseya ist VSA, ein einheitliches Fernüberwachungs- und Verwaltungstool. Der VSA-Server war auf Kundengeräten sehr vertrauenswürdig und durch die Infiltration konnten die Angreifer die Authentifizierungskontrollen auf verbundenen Clients umgehen. Auf diese Weise konnten sie ungehindert schädliche Payloads hochladen. Der Kaseya-Angriff ähnelt dem SolarWinds-Sicherheitsfiasko, wo Angreifer in der Lage waren, bösartige Updates an Tausende von Kunden weiterzuleiten, wodurch diese zusätzlichen Sicherheitslücken ausgesetzt wurden.

Exfiltration sensibler Daten

Jeder Angriff mit dem Ziel des Datendiebstahls kann als Datenexfiltrationsangriff eingestuft werden. Von Datenexfiltration spricht man, wenn ein böswilliger Akteur eine unbefugte Übertragung sensibler Daten von einem Zielsystem an einen anderen Standort durchführt. Ein bemerkenswertes Beispiel für einen Datenexfiltrationsangriff, der infolge eines Angriffs auf die Lieferkette stattfand, war der November 2013 Angriff auf Target, eines der größten Einzelhandelsunternehmen in den Vereinigten Staaten.

Die Angreifer drangen mit Zugangsdaten, die sie von einem Drittanbieter gestohlen hatten, in die Systeme von Target ein. Dieser Angriff verschaffte ihnen unbefugten Zugriff auf die Kundendienstdatenbank von Target und ermöglichte es ihnen, Namen, Telefonnummern, E-Mail-Adressen, Zahlungskarteninformationen und andere sensible Daten von Kunden zu erfassen. Die Zahlungskarteninformationen von 41 Millionen Zielkunden wurden auf die Server des Angreifers exfiltriert, während die Kontaktinformationen von mehr als 60 Millionen Kunden offengelegt wurden.

Remote-Codeausführung

Remote Code Execution (auch Arbitrary Code Execution genannt) ist eine Art Cyberangriff, bei dem sich ein Angreifer Zugriff verschafft, um den Betrieb eines Geräts oder Computers aus der Ferne zu steuern. Typischerweise fügt der Angreifer bösartigen Code in eine Datei, einen String oder ein ganzes Paket ein, das das Opfer auf seinen Systemen ausführen möchte. Dadurch kann der Angreifer einen groß angelegten Angriff starten, der eine ganze Webanwendung oder einen gesamten Webserver gefährden kann. Typosquatting und Abhängigkeitsverwirrung sind zwei häufige Arten, wie Remote-Codeausführungsangriffe bei Angriffen auf die Software-Lieferkette auftreten können:

Tippfehler

Um diese Art von Angriff auszuführen, erstellen die böswilligen Akteure normalerweise ein kompromittiertes Paket, das mit den Abhängigkeiten identisch ist, die Sie installieren möchten. Normalerweise hat das Schadpaket eine etwas andere Schreibweise. Die Absicht besteht darin, einen möglichen Tippfehler eines Installationsbefehls auszunutzen. Das Schadpaket funktioniert normalerweise genauso wie die Abhängigkeit, die der Ingenieur installieren wollte, führt aber gleichzeitig auch einen darin eingebetteten Schadcode aus.

Abhängigkeitsverwirrung

Abhängigkeitsverwirrung ist ein weiterer Ansatz, den Angreifer nutzen, um bei einem Software-Supply-Chain-Angriff eine Remote-Codeausführung zu starten. Bei dieser Art von Angriff erstellen die böswilligen Akteure ein Paket in einer externen Bibliothek mit demselben Namen wie ein internes Abhängigkeitspaket. Da beide Abhängigkeiten denselben Namen haben, installiert der Paketmanager möglicherweise stattdessen den Schadcode. Dadurch kann der Angreifer in die CI/CD-Umgebung (Continuous Integration/Continuous Deployment) der zu entwickelnden Softwareanwendung eindringen.

Wie können die Risiken in der Software-Lieferkette gemindert werden?

In den letzten Jahren haben sich Angriffe auf die Softwarelieferkette zu einer der größten Cyberbedrohungen für Unternehmen auf der ganzen Welt entwickelt. Die Eindämmung der Risiken solcher Angriffe ist zu einem wichtigen Bestandteil der Cybersicherheit und des Risikomanagements in jedem Unternehmen geworden, insbesondere in solchen, die auf die eine oder andere Software von Drittanbietern angewiesen sind. Anstatt Plattformen von Drittanbietern und öffentlichen Repositories blind zu vertrauen, ist es besser, Vorsichtsmaßnahmen zu treffen und die notwendigen Kontrollen darüber durchzuführen, was in Ihr System importiert wird. Beim Erstellen Ihres Risikomanagementplans für die Software-Lieferkette können Sie die Risiken von Angriffen auf die Software-Lieferkette auf folgende Weise mindern:

 

Prüfen Sie Ihre Software

Was die Bekämpfung von Angriffen auf die Lieferkette so schwierig macht, ist, dass das Risiko über Ihre eigenen Systeme hinausgeht. Um das Risiko dieser Angriffe zu mindern, müssen Sie mehr tun, als nur Ihren eigenen Perimeter zu schützen. Stattdessen muss Ihre Strategie stärker darauf ausgerichtet sein, sicherzustellen, dass die mit Ihrem verbundenen externen Softwaresysteme genauso sicher sind.

Dies ist jedoch oft schwierig zu erreichen, insbesondere wenn Sie nicht einmal über ausreichende Informationen über die externen Systeme verfügen, mit denen Sie verbunden sind, oder über die in Ihrer Anwendung verwendeten Codeabhängigkeiten. Der erste Schritt zur Minderung des Risikos eines Supply-Chain-Angriffs besteht darin, eine umfassende Prüfung Ihrer Software-Lieferkette durchzuführen.

Erst kürzlich, nach dem SolarWinds-Angriff im Jahr 2020, von dem mehrere US-Regierungsbehörden betroffen waren, Die US-Bundesregierung hat Software-Audits gesetzlich vorgeschrieben für jedes Unternehmen, das Software an eine US-Regierungsbehörde verkauft. Das Gleiche sollten Sie auch für alle Ihre Systeme tun. Nur wenn Sie eine klare Aufzeichnung aller Ihrer Softwareabhängigkeiten führen, können Sie feststellen, ob Ihr System dem Risiko von Angriffen auf die Lieferkette ausgesetzt ist.

Neben der sofortigen Prüfung Ihrer Softwareabhängigkeiten müssen Sie auch Ihr System bei jeder neuen Version Ihrer Software erneut prüfen. Möglicherweise müssen Sie auch über die manuelle Prüfung hinausgehen und eine gründlichere Prüfung durchführen, mit der alle Arten von Abhängigkeiten, auch vorübergehende, identifiziert werden können.

Automatisierte Prüfung

Neben der manuellen Prüfung Ihrer Systeme müssen Sie Ihre Prüfung möglicherweise auch auf Autopilot stellen. Automatisierung spielt eine Schlüsselrolle bei der Erkennung von Schwachstellen in jedem Teil Ihrer Software. Automatisierte Scans helfen dabei, Schwachstellen in Ihrem Softwarecode schnell zu erkennen, sodass diese behoben werden können, bevor der Code in die Produktion übertragen wird. Der Einsatz von Code von Drittanbietern in der Softwareentwicklung wird weiter zunehmen und böswillige Akteure werden diese Systeme kontinuierlich als schwaches Glied für Angriffe auf Software in der Wertschöpfungskette ins Visier nehmen. Die einzige Möglichkeit, sie zu stoppen, besteht darin, die Sicherheit Ihres Systems durch kontinuierliche Überprüfungen stets im Auge zu behalten.

Bereiten Sie eine Software-Stückliste vor

Die Software-Stückliste (SBOM) ist zu einer der wichtigsten Methoden geworden, um die Sicherheit Ihrer Software zu gewährleisten und Risiken in der Lieferkette zu mindern. Bei diesem Dokument handelt es sich um formale, maschinenlesbare Metadaten, die den gesamten Inhalt eines Softwarepakets identifizieren sollen. Darüber hinaus werden weitere wichtige Informationen wie die Lizenzdaten und Urheberrechte aller Komponenten aufgeführt, die bei der Erstellung eines Softwareprodukts verwendet werden.

Das Konzept der Erstellung einer Stückliste ist nicht völlig neu. Historisch gesehen hat es seinen Ursprung in der Welt der Fertigung. Hier erhält jedes hergestellte Produkt eine Stückliste, die als Inventar aller im Herstellungsprozess dieses Produkts enthaltenen Artikel dient.

Bild auf SBOM

 

Das gleiche Prinzip kann auf das Risikomanagement der Software-Lieferkette angewendet werden. Die SBOM beschreibt den Teil Ihrer Anwendung, den Sie von Grund auf erstellt haben, und listet gleichzeitig alle Teile auf, die Sie von Drittanbietern bezogen haben. Wenn eine Schwachstelle entdeckt wird, können Sie auf diese Weise deren Quelle leicht zurückverfolgen.

SBOMs sollen von verschiedenen Organisationen gemeinsam genutzt werden, die eine Softwarekomponente nutzen. Dies sorgt für Transparenz über alle Komponenten, die jeder in der Software-Lieferkette verwendet. Da Ihnen die Sicherheit Ihrer Software am Herzen liegt, müssen Sie SBOMs zur Priorität machen. Bevor Sie eine Komponente zu Ihrem Softwareprodukt hinzufügen, wäre es hilfreich, eine Stückliste vom Anbieter anzufordern. Dadurch wird es einfacher, auf Herausforderungen und Sicherheitslücken zu reagieren.

Entwickeln Sie ein Risikomanagement-Framework

Um die Risiken von Angriffen auf die Software-Lieferkette zu mindern, ist es immer besser, einen proaktiven Ansatz zu verfolgen, als zu warten, bis ein Angriff erfolgt. Indem Sie im Vorfeld die möglichen Angriffsszenarien skizzieren, können Sie Ihre Bereitschaft ermitteln, diese in Zukunft zu bekämpfen.

Im Rahmen Ihrer Risikomanagementbemühungen für die Software-Lieferkette müssen Sie eine Möglichkeit entwickeln, die Wahrscheinlichkeit einzuschätzen, dass ein Angreifer Ihr System kompromittiert. Auf diese Weise können Sie die Präventionsstrategien bestimmen, die Sie zur Begrenzung dieser Risiken anwenden müssen, sowie den Notfallplan, den Sie zur Bewältigung des Risikos erstellen müssen.

Ein weiterer wesentlicher Bestandteil Ihres Risikomanagementrahmens besteht darin, alle Mitarbeiter Ihres Unternehmens darin zu schulen, wie sie auf Angriffe in der Lieferkette reagieren sollen. Dadurch wird jeder in die Lage versetzt, solche Angriffe wachsam zu antizipieren und angemessen zu reagieren, wenn sie tatsächlich auftreten.

Zusammenfassung

Angriffe auf die Software-Lieferkette werden Unternehmen weiterhin verschiedenen Arten von Risiken aussetzen. Daher können Ingenieure nicht mehr davon ausgehen, dass die Drittanbieterpakete, die sie zum Erstellen, Bereitstellen und Warten ihrer Softwareanwendungen verwenden, sicher sind und ordnungsgemäß gewartet werden. Tatsächlich liegt der Hauptgrund dafür, dass Angriffe auf die Software-Lieferkette häufiger vorkommen als zuvor, zum Teil in der zunehmenden Abhängigkeit von Codes Dritter bei der Entwicklung von Software-Apps. Um diese Risiken zu mindern, müssen Sie eine Bestandsaufnahme Ihrer Software-Lieferkette durchführen und Maßnahmen ergreifen, um die Auswirkungen dieser Bedrohungen auf Ihr System zu minimieren und so schwerwiegende Verstöße und die damit verbundenen Folgen zu verhindern.