Sicherheitsrisiken in der Softwarelieferkette managen

Illustration: Absmeier, Merio

Bei der modernen Softwareentwicklung verlassen Teams sich auf eine Mischung aus proprietärem und Open-Source-Code, Kommunikations-APIs, Protokollen und Geschäftslogik. Die Aufgabenstellung ist komplex, und der Druck, den Code möglichst schnell zu liefern, wächst stetig. Das führt oftmals dazu, dass Entwickler darauf verzichten, eine genaue Bestandsaufnahme aller Komponenten in der Softwarelieferkette durchzuführen.

 

Dies birgt schwerwiegende Risiken, was wir gerade in jüngster Zeit leidvoll beobachten konnten. Wer nicht genau weiß, aus welchen Komponenten sich eine Software zusammensetzt, riskiert deutlich mehr, als nur die Produktionszeit zu verlangsamen.

SolarWinds und Log4Shell haben wahrscheinlich auch dem letzten Zweifler vor Augen geführt, dass Fehler in der Softwarelieferkette sich auf die Bilanz eines Unternehmens verheerend auswirken können. Sowohl in finanzieller Hinsicht als auch was den potenziell ramponierten Ruf anbelangt. Wenn man die Risiken innerhalb der Lieferkette managen will, kommt man um ein vollständige Auflistung sämtlicher Komponenten einer Software nicht herum.

Man kann sich zurecht fragen, warum Cyberkriminelle zuletzt derart leichtes Spiel bei Angriffen hatten, und was Firmen tun sollten, um nicht selbst ins Visier zu geraten.

 

SolarWinds und Log4Shell: Wieso sind Angriffe auf die Software-Lieferkette so attraktiv?

Angriffe auf die Softwarelieferkette sind natürlich nichts Neues. Sicherheitsexperten bereiten sie schon geraume Zeit Kopfzerbrechen. Die breite Diskussionen über das Risikomanagement ist aber erst durch die jüngsten Angriffe in den Vordergrund gerückt.

Die Begründung, warum solche Angriffe für Cyberkriminelle so attraktiv geworden sind, ist simpel: Es lassen sich sehr viele Firmen auf einmal treffen, und die Ausbeute entspricht durchaus der Größe der Trefferfläche. Beide, SolarWinds und Log4Shell, sind perfekte Beispiele für die massiven Auswirkungen auf die nachgelagerten Unternehmen.

Im Zuge der digitalen Transformation und von Remote Working waren und sind Firmen gezwungen, ihre Systeme zu öffnen, um die Produktivität nicht zu beeinträchtigen. Damit hat sich die Angriffsfläche drastisch verändert. In der Cloud befinden sich mehr Assets und Daten denn je, die alle potenziell kompromittiert werden können. Parallel dazu haben sich Vorgehensweise, Tools und Technologien der Angreifer weiter professionalisiert – insbesondere, was das Ausnutzen von Schwachstellen anbelangt.

 

Was Unternehmen über die Komponenten in ihrer Softwarelieferkette wissen sollten

Zu einer Softwarelieferkette zählt alles: von der Idee zu einer Anwendung bis zum Kunden, der sie nutzt. Firmen sollten genau wissen, was in der Software steckt, die sie verwenden. Sich darüber ausreichend Transparenz zu verschaffen, ist für sichere Geschäftsprozesse kaum hoch genug zu bewerten. Auch für die Softwarelieferkette gilt, dass sie nur so stark ist wie ihr schwächstes Glied.

In praktisch jeder heute verwendeten Applikation kommen Fremdkomponenten zum Einsatz. Dabei handelt es sich häufig um Open-Source-Softwarekomponenten. Die Sicherheit dieser Komponenten hat direkten Einfluss auf die Sicherheit der gesamten Anwendung. Tools zur Software Composition Analysis (SCA) unterstützen Entwicklerteams dabei, den Überblick zu behalten und Risiken besser zu managen, auch was Lizenzabhängigkeiten betrifft.

Risikomanagement innerhalb der Softwarelieferkette heißt aber auch, Sicherheit bereits bei der Auswahl der Komponenten zu berücksichtigen. Wenn Entwickler neue Funktionen erstellen, wählen sie aus einem reichhaltigen Angebot. Schon im Entwicklungsprozess selbst sollten daher Sicherheitsvorkehrungen dafür sorgen, dass nicht nur die Funktionalität eine Rolle spielt, sondern auch die potenziell damit verbundenen Risiken.

Zudem: Woher kommen diese Komponenten? Entwicklern stehen etliche Technologien zur Verfügung, mit denen sie Komponenten problemlos abrufen können, wie z.B. npm oder Maven. Aber sind diese tatsächlich vertrauenswürdig? Was passiert, wenn das Komponenten-Repository kompromittiert wurde? Woher wissen Sie, dass Sie das bekommen, was Sie bestellt haben? Ein umfassender Sicherheitsprozess sollte diese Fragen adressieren.

 

Das Risiko innerhalb der Lieferkette senken, nur wie? 

Ein entscheidender erster Schritt für das Risikomanagement der Softwarelieferkette ist es, ein Verständnis dafür zu entwickeln, wie Open-Source-Komponenten verwendet werden. Die überwältigende Mehrheit von Softwareanwendungen ist ein Konglomerat aus Hunderten, wenn nicht Tausenden von Open-Source-Softwarekomponenten, zusammengehalten von einem Stückchen Code. Mit anderen Worten: Entwickler greifen sich große Teile der Funktionalität aus Open-Source-Komponenten, und implementieren diese mittels ihres eigenen Codes in eine spezifische Anwendung.

Wenn Firmen ein klares Bild ihrer gesamten Softwarelieferkette haben, sind sie auch in der Lage, geeignete Prozesse und Tools an der richtigen Stelle einzusetzen, um das Risiko insgesamt zu senken. So lässt sich beispielsweise eine Software Composition Analysis (SCA) Lösung-verwenden, um eine Software Bill of Materials (Software-Stückliste (SBOM)) zu erstellen. Eine gute SCA-Lösung meldet bekannte Schwachstellen im Zusammenhang mit den verwendeten Komponenten, und man bekommt schnell einen Überblick, welche Komponenten Sicherheitsschwachstellen sein könnten. Dazu gehört auch, dass Sie erkennen, welche Lizenzen mit welchen Komponenten verbunden sind, und ob diese mit der Art und Weise kompatibel sind, in der Sie eine Software verkaufen und bereitstellen wollen.

Nachdem Sie ein grundlegendes Verständnis der Softwarelieferkette entwickelt haben, sollten Sie nun die gesamte Oberfläche abdecken. Integrieren Sie für Erstanbietercode Static Application Security Testing (SAST). Wenn das gewählte SCA-Tool über Funktionen zur Binäranalyse verfügt, können Sie es dazu nutzen, die Zusammensetzung der Container-Images zu verstehen, die Sie für die Bereitstellung verwenden. Jede Infrastructure-as-Code lässt sich ebenfalls über ein SAST-Tool scannen.

 

Die Lieferkette reicht bis zu dem Punkt, an dem der Benutzer mit der Anwendung interagiert. Wenn man das mit der Software-Lieferkette verbundene Risiko senken will, muss man sich über Umfang und Ausmaß im Klaren sein.

Mike McGuire, Security Solutions Manager, Synopsys Software Integrity Group