Überblick
Bei der Sicherheit in der Softwarelieferkette werden Best Practices aus dem Risikomanagement und der Cybersicherheit kombiniert, um die Softwarelieferkette vor potenziellen Schwachstellen zu schützen. Die Softwarelieferkette besteht aus den Elementen und Personen, die im Softwareentwicklungs-Lifecycle (Software Development Lifecycle, SDLC) mit Ihrem Code in Berührung kommen, und zwar von der Anwendungsentwicklung über die CI/CD-Pipeline bis hin zum Deployment.
Die Lieferkette umfasst Netzwerke mit Informationen über die Software, etwa die Komponenten (wie Infrastruktur, Hardware, Betriebssysteme und Cloud Services) sowie die Personen, die die Software entwickelt haben. Außerdem zählen die Quellen, aus denen sie stammt, dazu, beispielsweise Registries und GitHub-Repositories, Codebases oder andere Open Source-Projekte. Diese Informationen beinhalten aber auch Schwachstellen, die sich negativ auf die Softwaresicherheit auswirken können – und genau hier kommt die Sicherheit der Softwarelieferkette ins Spiel.
Warum ist Sicherheit in der Softwarelieferkette so wichtig?
Der Großteil der aktuellen Software wird nicht komplett neu geschrieben, sondern besteht in der Regel aus einer Kombination von Softwareartefakten, die Open Source-Software enthalten. Diese Softwareartefakte sind jedoch anfällig für Schwachstellen. Entwicklungsteams haben zudem weniger Kontrolle über den Quellcode von Drittanbietern oder über Änderungen, die im Laufe der Zeit an Softwareartefakten vorgenommen werden. Dabei ist zu beachten, dass nicht gepatchte Software anfälliger für Sicherheitsprobleme ist. Da Software für die Ausführung des täglichen Geschäftsbetriebs unerlässlich ist, gehört die Sicherheit in der Lieferkette zu den zentralen Aufgaben von Unternehmen und Sicherheitsteams.
Das Softwareunternehmen SolarWinds wurde 2020 Opfer eines Hacker-Angriffs, bei dem schädlicher Code über seine IT-Monitoring- und -Management-Software Orion eingeschleust wurde, eine Plattform, die von großen Unternehmen und Regierungsbehörden genutzt wird. Durch den Angriff auf die Lieferkette wurden nicht nur SolarWinds, sondern auch die Kunden des Unternehmens infiltriert. Log4j ist eine häufig verwendete Open Source-Software, die aber gleichzeitig leicht ausnutzbare Schwachstellen umfasst und so unzählige Nutzende und Organisationen anfällig für Datenpannen und Angriffe gemacht hat. Im Jahr 2021 untermauerte der Präsident der Vereinigten Staaten die Bedeutung von Softwarelieferketten und Sicherheit mit 2 Präsidentenverfügungen: Lieferketten und Cybersicherheit.
Red Hat Ressourcen
Welche Sicherheitsrisiken gibt es in der Softwarelieferkette?
Ein Risiko für eine Komponente der Softwarelieferkette stellt ein potenzielles Risiko für sämtliche Softwareartefakte dar, die auf dieser Komponente der Softwarelieferkette basieren. Bei Hacking-Angriffen kann durch eine Hintertür Malware oder anderer bösartiger Code eingeschleust werden, um Komponenten und die damit verbundenen Lieferketten zu gefährden. Die Zahl der Angriffe auf die Softwarelieferkette, die meist von profitorientierten und nationalstaatlichen Akteuren ausgeführt werden, nimmt zu und kann drastische Auswirkungen sowohl auf die digitale als auch auf die physische Welt haben. In der Regel geht es dabei um einen der folgenden 4 Risikotypen:
- Schwachstellen: Fehler im Softwarecode, die ausgenutzt werden können und zu einer Datenpanne führen. Führen Sie Patches und Updates für Ihre Softwareartefakte durch, um dieses Risiko zu minimieren.
- Lizenzierung: Ein rechtliches Risiko, das Sie dazu verpflichten könnte, daraus resultierende Softwareartefakte als Open Source zur Verfügung zu stellen und Patentrechte außer Kraft zu setzen. Wenden Sie sich dazu an juristische Fachleute auf diesem Gebiet.
- Abhängigkeiten von Drittanbietern: Abhängigkeiten von einer externen Organisation als Teil der Softwarelieferkette, die oft schwer zu erkennen sind. Analysieren Sie den gesamten Drittanbietercode und sprechen Sie mit Ihren Anbietern darüber, wie sie Sie schützen.
- Prozesse und Richtlinien: Werden zum Problem, wenn sie nicht vorhanden sind. Erstellen Sie Richtlinien für Ihre Entwicklungsteams und Prozesse (oder Playbooks) für den Fall, dass Sie auf eine Schwachstelle reagieren müssen.
Zu den häufigen Angriffsvektoren gehören die Übernahme von Updates, die Untergrabung der Codesignierung und die Manipulation von Open Source-Code.
DevSecOps und Softwaresicherheit
Bei DevSecOps handelt es sich um einen Ansatz für Unternehmenskultur, Automatisierung und Softwaredesign, bei dem Sicherheit als gemeinsame Verantwortung im gesamten IT-Lifecycle integriert ist. DevSecOps bedeutet, dass die Sicherheit der Anwendungen und der Infrastruktur von Anfang an beachtet werden muss. Es bedeutet ebenfalls, dass einige Sicherheits-Gates automatisiert werden müssen, damit die DevOps-Workflows nicht zu langsam werden. Wenn Sie die richtigen Tools zur kontinuierlichen Integration von Sicherheitsfunktionen verwenden und sich auf eine IDE (Integrated Development Environment) mit Sicherheits-Features einigen, können diese Ziele leichter erreicht werden.
Red Hat Advanced Cluster Security for Kubernetes integriert Sicherheitsprüfungen in die Softwarelieferkette und Entwicklungs-Workflows, um Sicherheitsprobleme mit hohen Risiken erkennen und einfacher beheben zu können. Die Lösung automatisiert außerdem die Sicherheit in DevOps, indem Entwicklungsteams in bereits vorhandenen Workflows ein Sicherheitskontext zur Verfügung gestellt wird.
Sicherheit in der Softwarelieferkette und Anwendungssicherheit im Vergleich
Die Softwarelieferkette umfasst sämtliche Elemente und Personen, die mit Ihrem Code in Berührung kommen. Die Anwendungssicherheit hingegen schützt den Code selbst vor Angriffen und Schwachstellen. Wie die Sicherheit der Softwarelieferkette sollte auch die Anwendungssicherheit in jeder Entwicklungsphase berücksichtigt werden.
Anwendungssicherheit beginnt bereits im Softwareentwicklungs-Lifecycle und erstreckt sich über den gesamten Anwendungs-Lifecycle. Ziel ist, unbefugte Zugriffe auf Ihr System zu verhindern und vertrauliche Daten zu schützen. Eine verstärkte Integrität Ihrer Lieferkette kann wiederum die Anwendungssicherheit erhöhen. Das Härten von Konfigurationen, das Minimieren von Angriffsflächen, das Einschränken von Berechtigungen, das Signieren von Software und das Verteilen von Builds auf verschiedene Bereiche Ihres Systems sind Möglichkeiten, manipulative Angriffe auf Ihre Anwendungen zu verhindern.
Bedrohungsabwehr in der Softwarelieferkette
Die Sicherheit der Softwarelieferkette ist wichtig für Ihre Organisation, Ihre Kunden und die Unternehmen, die auf Open Source-Beiträge angewiesen sind. Natürlich möchte kein Unternehmen Opfer einer Sicherheitsverletzung werden. Gleichzeitig möchte aber auch niemand für Sicherheitsverletzungen in anderen Unternehmen verantwortlich sein. Es ist daher entscheidend, dass Sie Schutzmaßnahmen für Ihre Softwarelieferkette implementieren.
Im Folgenden finden Sie einige Best Practices, die Sicherheitsteams berücksichtigen sollten:
- Erteilen von Zugriff nach dem Least Privilege-Prinzip auf Ressourcen in der gesamten Lieferkette (etwa Entwicklungstools, Quellcode-Repositories und andere Softwaresysteme), Multi-Faktor-Authentifizierung und Verwendung starker Passwörter
- Durchführen regelmäßiger Sicherheitstrainings für Mitarbeitende
- Härten der Sicherheit für angeschlossene Geräte und sensible Daten
- Kenntnisse über Lieferanten und Geschäftspartner, beginnend mit der ersten Ebene Durchführen von Risikobewertungen zur Beurteilung des Cybersicherheitsstatus der einzelnen Anbieter und der öffentlichen Richtlinien zu Schwachstellen
- Regelmäßiges Scannen und Patchen anfälliger Systeme
Entwicklungsteams sollten auch sichere Programmierpraktiken, die Verwendung von Sperrdateien und andere sicherheitsorientierte Maßnahmen in Betracht ziehen:
- Validieren der Prüfsummen
- Einbeziehen von Herstellerabhängigkeiten in die Versionskontrolle
- Veröffentlichen und Nutzen der Software Bill of Materials (SBOM)
- Einsatz der Supply Chain Levels for Software Artifacts (SLSA), die Folgendes umfassen:
- Möglichkeit, Ihre Softwareartefakte digital zu signieren, um ihre Herkunft zu authentifizieren
- Nutzung der Automatisierung für Ihre Prozesse und Richtlinien
- Scannen der Software mit automatischen Sicherheitstools wie Software Composition Analysis (SCA), Static Application Security Testing (SAST) und Dynamic Application Security Testing (DAST)
Warum Red Hat?
Red Hat weiß, wie wichtig es ist, Softwarekomponenten und -abhängigkeiten schon früh im Softwareentwicklungs-Lifecycle zu sichern, und nutzt DevSecOps-Praktiken, um die Integration von Sicherheit während der verschiedenen Phasen zu automatisieren. Red Hat kümmert sich um die Upstream-Lieferkette und stellt Ihnen ein Produkt zur Verfügung, auf das sich Ihr Unternehmen rund um die Uhr verlassen kann. Red Hat und seine Partner verfügen über Fachwissen, ein umfassendes DevSecOps-Partnernetzwerk und die Fähigkeit, Unternehmen beim Implementieren von Sicherheitsmaßnahmen in die Softwarelieferkette während des gesamten Softwareentwicklungs-Lifecycles zu unterstützen.
Der offizielle Red Hat Blog
Lernen Sie mehr über unser Ökosystem von Kunden, Partnern und Communities und erfahren Sie das Neueste zu Themen wie Automatisierung, Hybrid Cloud, KI und mehr.