iX 10/2022
S. 44
Titel
Supply-Chain-Security

Angriffe auf die Softwarelieferkette

Ein systematischer Überblick über Angriffsarten auf die Softwarelieferkette hilft dabei, die eigene Bedrohungslage realistisch abzuschätzen und Gegenmaßnahmen zu planen. Beispiele zeigen, wie Angreifer im Detail vorgehen.

Von Henrik Plate und Wolfram Fischer

Alle Softwareentwicklungsprojekte stützen sich in der einen oder anderen Form auf Komponenten von Drittanbietern. Das gilt seit jeher für Low-Level-Komponenten wie Betriebssysteme oder Compiler, in jüngerer Zeit kommen aber immer mehr Tools und Komponenten hinzu, vor allem auf der Anwendungsebene. Heutige Softwareprojekte weisen im Median je nach Ökosystem zwischen sechs und zehn direkte Abhängigkeiten auf. Berücksichtigt man auch die transitiven (indirekten) Abhängigkeiten, steigt die Zahl je nach Ökosystem mehr oder weniger stark an. GitHubs Octoverse Report ermittelte dann beispielsweise im Python-Ökosystem einen Median von 19, im JavaScript-Umfeld von 683 Abhängigkeiten (siehe ix.de/zq3x).

Gemeint sind hier die in diesem Artikel so bezeichneten Anwendungsabhängigkeiten – Bibliotheken und Frameworks wie Express, Requests oder Log4J, die für den Test, zur Kompilierung oder während der Laufzeit einer Anwendung nötig sind. Direkte Abhängigkeiten sind dabei solche, die Anwendungsentwickler deklarieren und aus Paketrepositorys laden. Transitiv hingegen sind Abhängigkeiten, die von den direkt genutzten Abhängigkeiten benötigt werden. Diese wiederum haben weitere Abhängigkeiten und immer so weiter – man kann sich das Ganze als einen Abhängigkeitsbaum vorstellen, mit dem Entwicklungsprojekt als Wurzelknoten.

Kommentieren