- Definition der Sicherheit der Software-Lieferkette
- Angriffe auf Software-Lieferketten: Warum kommen sie so häufig vor?
- Das SSDF (NIST 800-218) wurde fertiggestellt und ist in Kraft
- SLSA ist ein Rahmenwerk, das Sie einhalten sollten
- Wie sichern Sie Ihre Software-Lieferkette?
- Die Validierung der Softwareintegrität ist eine Herausforderung
- Code-Sicherung während des gesamten SDLC
- Sicherheit der Software-Lieferkette erklärt
- Automatisierung der SLSA-Konformitätsbewertung
- Scribe Security – ein neuer Software-Supply-Chain-Sicherheitsstandard
- Wie kann ein Schreiber helfen?
Was ist Software-Lieferkettensicherheit?
Die Software-Lieferkette umfasst alles, was ein Produkt oder eine Anwendung während ihres gesamten Softwareentwicklungslebenszyklus (SDLC) beeinflusst oder eine Rolle darin spielt.
In den letzten Jahren werden Angriffe auf die Software-Lieferkette immer häufiger und raffinierter. In ihrem Bericht 2022 Gartner heißt es: „Rechnen Sie mit der kontinuierlichen Erweiterung der Angriffsfläche von Unternehmen und erhöhen Sie die Investitionen in Prozesse und Tools zur Erkennung und Behebung von Identitätsbedrohungen sowie zur Integrität der digitalen Lieferkette.“
Es ist wichtiger denn je, alle Komponenten, Aktivitäten und SDLC-Praktiken zu sichern, die an der Erstellung und Bereitstellung von Software beteiligt sind. Entwicklungsteams und Softwareanbieter müssen sicherstellen, dass sie nur Codekomponenten verwenden, die keine bekannten Schwachstellen aufweisen, und Wege finden, die Integrität ihres Builds zu validieren und auf unbefugte Manipulationen zu prüfen.
- Definition der Sicherheit der Software-Lieferkette
- Angriffe auf Software-Lieferketten: Warum kommen sie so häufig vor?
- Das SSDF (NIST 800-218) wurde fertiggestellt und ist in Kraft
- SLSA ist ein Rahmenwerk, das Sie einhalten sollten
- Wie sichern Sie Ihre Software-Lieferkette?
- Die Validierung der Softwareintegrität ist eine Herausforderung
- Code-Sicherung während des gesamten SDLC
- Sicherheit der Software-Lieferkette erklärt
- Automatisierung der SLSA-Konformitätsbewertung
- Scribe Security – ein neuer Software-Supply-Chain-Sicherheitsstandard
- Wie kann ein Schreiber helfen?
Definition der Sicherheit der Software-Lieferkette
Die Software-Lieferkette bezieht sich auf alles, was an der Entwicklung einer Anwendung über den gesamten Software Development Life Cycle (SDLC) beteiligt ist. Die Erstellung und Bereitstellung von Software erfordert die Sicherung der Aktivitäten, Prozesse und Komponenten ihrer Lieferkette. In diesem Zusammenhang sind viele Faktoren zu berücksichtigen, darunter benutzerdefinierter Code (interne Komponenten), Open-Source-Abhängigkeiten und Bibliotheken (Komponenten von Drittanbietern), DevOps-Tools und Infrastruktur, die den CI/CD-Prozess bilden, und schließlich Entwickler und DevOps Mannschaften.
Es liegt in der Verantwortung der Organisationen, diese Sicherheitsaktivitäten durchzuführen und den Verbrauchern den Nachweis ihrer Sicherheitsbemühungen zu erbringen.
Angriffe auf Software-Lieferketten: Warum kommen sie so häufig vor?
Moderne Software-Pipelines sind automatisierte Umgebungen, die auf einer Vielzahl von Tools für kontinuierliche Integration und kontinuierliche Bereitstellung basieren. Ein Softwareprojekt kann am Ende Tausende von Open-Source-Abhängigkeiten umfassen.
Böswillige Akteure können betrügerische Bibliotheken als legitim ausgeben, indem sie „logische Fehler“ in Open-Source-Paketmanagern ausnutzen. Beispielsweise können mit Malware infizierte Pakete ohne deren Wissen vertrauenswürdigen Betreuern zugeschrieben werden. Ein solches fehlgeleitetes Vertrauen kann zu problematischen und versteckten Schwachstellen in Ihrem Code führen. Diese Schwachstellen können Angreifern den Zugriff auf sensible Daten ermöglichen oder es ihnen ermöglichen, Malware einzuschleusen und Systeme in der gesamten Lieferkette zu steuern.
Die moderne Entwicklungsumgebung weist ihre eigenen Schwachstellen auf, und eine Vielzahl von Angriffen auf die Software-Lieferkette zielten auf die CI/CD-Pipeline ab, um irgendwann im Entwicklungsprozess bösartigen Code einzuschleusen. Auch hier ist eine Zero-Trust-Annahme der adäquate Ansatz, um Vertrauen in das finale Softwareprodukt zu gewinnen – prüfen, verifizieren und validieren Sie jeden Schritt in der internen Entwicklungskette.
Den heutigen CI/CD-Pipelines mangelt es an Transparenz und Kontrollen, um den Softwareentwicklungsprozess angemessen zu schützen. Außerdem haben sie Schwierigkeiten, Codemanipulationen zu erkennen, was diesen Angriffsvektor noch attraktiver macht.
Das SSDF (NIST 800-218) wurde fertiggestellt und ist in Kraft
Das SSDF-Framework (NIST 800-218). verlangt von Lieferanten die Implementierung von Sicherheitspraktiken, die den Software Development Life Cycle (SDLC) abdecken. Es fördert Transparenz und manipulationssichere Maßnahmen, um Sicherheitslücken und böswillige Eingriffe zu verringern.
Konkret enthält es Richtlinien für einen evidenzbasierten Ansatz zum Schutz der Software selbst vor Manipulationen.
Das SSDF besteht aus vier Hauptteilen:
01 /
Bereiten Sie die Organisation (PO) vor:
Stellen Sie sicher, dass die Mitarbeiter vorbereitet sind und Prozesse und Technologien vorhanden sind, um eine sichere Softwareentwicklung auf Organisationsebene und in einigen Fällen für einzelne Entwicklungsgruppen oder Projekte durchzuführen.
02 /
Schützen Sie die Software (PS):
Schützen Sie alle Softwarekomponenten vor unbefugtem Zugriff oder Manipulation.
03 /
Erstellen Sie gut gesicherte Software (PW):
Erstellen Sie gut gesicherte Software mit minimalen Sicherheitslücken in ihren Versionen.
04 /
Auf Schwachstellen reagieren (RV):
Identifizieren Sie verbleibende Schwachstellen in Softwareversionen, reagieren Sie angemessen auf diese Schwachstellen und verhindern Sie, dass ähnliche Schwachstellen in der Zukunft auftreten.
Sie sollten das SSDF nicht als Checkliste betrachten, sondern vielmehr als Leitfaden für die Planung und Umsetzung eines risikobasierten und evidenzbasierten Ansatzes zur Entwicklung sicherer Software.
Unternehmen müssen Maßnahmen ergreifen, um ihre Sicherheitslage zu verbessern, um die Einhaltung neuer regulatorischer Änderungen zu erleichtern.
SLSA ist ein Rahmenwerk, das Sie einhalten sollten
Ein von Google entwickeltes Framework namens SLSA (Supply-chain Levels for Software Artifacts) bietet Richtlinien zum Erreichen von vier Ebenen des Schutzes der Software-Lieferkette. Das Framework konzentriert sich auf die Integrität des Artefaktaufbaus mit der Absicht, Manipulationen zu verhindern und Artefakte zu sichern.
SLSA funktioniert folgendermaßen: Sie implementieren Checklisten mit Sicherheitskontrollen, die Sie in Ihrer Pipeline implementieren sollten, und diese Kontrollen befinden sich in Unterdomänen wie Quellcodeverwaltungssystemen, Build-Systemen und Abhängigkeiten, die Sie in Ihre Softwareprojekte einbringen.
SLSA legt vier Konformitätsstufen fest, mit dem Ziel, Stufe 4 zu erreichen, die den höchsten Sicherheitswert hätte, aber eine längere Liste von Anforderungen hätte.
Das SLSA-Framework basiert auf dem Konzept der Provenienz. Ein Dokument, das eine „Beweiskette“ darstellt, die den Ursprung und den Erstellungsprozess der Artefakte angibt. Wenn Sie die SLSA-Stufen erhöhen, müssen Sie die Beweise selbst besser schützen.
Sie sollten SLSA als Industriestandard betrachten, ein erkennbares und vereinbartes Maß an Schutz und Compliance, das Sie einhalten müssen.
Wie sichern Sie Ihre Software-Lieferkette?
Wir möchten jedoch betonen drei Hauptklassen von Sicherheitskontrollen:
1. Sichern Sie die Konfiguration Ihres Softwareentwicklungslebenszyklus
Kompromittierte Anmeldeinformationen, unzureichende Kontrolle der Berechtigungen und anfällige Build-Systeme schaffen Angriffsflächen, die sich auf den Softwarehersteller auswirken. Angreifer, die diese Schwachstellen ausnutzen, können ungesicherte Geheimnisse stehlen oder Softwareartefakte manipulieren. Eine Reihe kommerzieller und Open-Source-Lösungen dieser Klasse bieten möglicherweise Kontrollen, um Lücken in der Sicherheitslage aufzudecken und diese zu beheben.
2. Vermeiden Sie es, sich auf anfällige oder böswillige Abhängigkeiten zu verlassen
Es werden immer wieder neue Schwachstellen in Open-Source- und kommerzieller Software entdeckt. Softwarehersteller müssen dieses Risiko mindern, indem sie anfällige Open-Source-Komponenten aktualisieren, nach selbstverschuldeten Schwachstellen in ihrem proprietären Code suchen und Softwarekonsumenten über die Software-Stückliste (SBOM) und die damit verbundenen Auswirkungen informieren. Diese Verbraucher können wiederum entsprechende Maßnahmen ergreifen.
Gekaperte Open-Source-Projektkonten und als legitim getarnte Schadpakete stellen zusätzliche Risiken dar, die sich vor allem auf den geheimen Diebstahl aus Pipelines auswirken. Die Open-Source-Community und einige kommerzielle Anbieter arbeiten daran, diesem Problem durch eine verbesserte Reputation und Erkennung böswilligen Verhaltens entgegenzuwirken.
3. Validieren Sie die Integrität und den sicheren Build der Softwareartefakte
Cybersicherheit erfordert eine umfassende Verteidigung. Angriffe können unbemerkt bleiben, wenn zum Schutz herkömmliche Angriffsflächenreduzierungs-, Erkennungs- und Reputationsstrategien zum Einsatz kommen. Darüber hinaus haben nachgelagerte Softwarekonsumenten heutzutage kaum noch Einfluss auf diese Kontrollen. Sie können sich höchstens auf punktuelle Sicherheitsüberprüfungen verlassen, wie z. B. Code-Scans, die einen Schwachstellen-Snapshot liefern, von Lieferanten, die kein wirkliches Vertrauen schaffen, dass das Software-Artefakt während des Entwicklungslebenszyklus gut gesichert und geschützt ist.
Jetzt ist eine neue, aufstrebende Klasse von Kontrollen verfügbar, die kontinuierlich die Integrität und den sicheren Entwicklungsprozess jedes Software-Artefakt-Builds nachweist. Diese Bescheinigungen sind nicht seriös und können zwischen Herstellern und nachgeschalteten Verbrauchern geteilt werden, die eine Validierung suchen. Die Nichtabstreitbarkeit wird durch kryptografische Methoden erreicht und erhöht daher den Preis für jeden Angreifer, der in die Lieferkette eindringt, erheblich.
Dieser Ansatz wird von Experten auf dem Gebiet der Sicherheit der Software-Lieferkette als wesentlich erachtet. Obwohl einige Open-Source-Bausteine zur Unterstützung dieser Klasse von Kontrollen existieren, können nur wenige Anbieter eine integrierte Lösung anbieten.
Eine vollständige Software-Supply-Chain-Lösung muss Folgendes umfassen:
Das Sammeln von Beweisen und deren Unterzeichnung als Bescheinigungen aus den Softwareentwicklungs- und Build-Prozessen. Typischerweise handelt es sich bei diesen Beweisen um Datei-Hashes mit Metadaten, die zwischen relevanten Prozessschritten, Ereignissen zu sicherheitsrelevanten Schritten wie Code-Committer-Identitäten, Codeüberprüfungen, automatischen Sicherheitstests usw. verglichen werden. Es ist außerdem erforderlich, eine Bescheinigung über den Sicherheitsstatus des Build-Prozesses des Softwareherstellers zum Zeitpunkt der Erstellung des Software-Artefakts vorzulegen.
Ein sicherer Attestierungsspeicher, der Transparenz ermöglicht und Analysen wie die Validierung der Codeintegrität unterstützt.
Eine Richtlinien-Engine, die diese Attestierungen anhand einer von der Organisation definierten Richtlinie oder einer auf Standards basierenden Richtlinie misst, um die Konformität zu validieren und nachzuweisen.
Ein Hub für den Austausch vertrauensbezogener Informationen zwischen Softwareherstellern oder -konsumenten; Dies kann unternehmens- oder unternehmensintern sein).
Die Validierung der Softwareintegrität ist eine Herausforderung
Theoretisch sollte die Überprüfung der Codeintegrität einfach sein. Vergleichen Sie einfach Dateien, oder? In Wirklichkeit gibt es viel zu beachten. Zunächst einmal kompiliert jede Sprache Dateien anders. Darüber hinaus werden Dateien je nach Verwendungszweck sehr unterschiedlich verwendet. Einige sollen sich ändern, während andere gelöscht werden und wieder andere während des Kompilierungsprozesses erstellt werden.
Hinzu kommt die Tatsache, dass Unternehmen ihren proprietären Code nicht aneinander weitergeben möchten.
Code-Sicherung während des gesamten SDLC
Scribe ist bestrebt, Ihren gesamten SDLC kontinuierlich zu sichern. Mit den in verschiedenen Phasen des Entwicklungs- und Erstellungsprozesses gesammelten Beweisen nutzt Scribe digitale Signaturen, um fälschungssichere Bescheinigungen zu erstellen.
Nach der Unterzeichnung kann jedes Beweisstück später überprüft werden, um sicherzustellen, dass alle Prozesse wie geplant abgelaufen sind und keine ungeplanten Änderungen stattgefunden haben.
Scribe folgt den im SSDF dargelegten Best Practices und ermöglicht Ihnen die Anwendung gesunder Menschenverstandsrichtlinien, um Ihr Vertrauen während des gesamten Entwicklungsprozesses zu stärken. Richtlinien wie das Erfordernis signierter Commits, 2FA für Entwickler, Codeüberprüfung durch zwei Personen usw. tragen dazu bei, Vertrauen zu schaffen, dass jede Software unter Einhaltung der richtigen Sicherheitslage erstellt wurde.
Das Sammeln all dieser Beweise an einem einzigen Ort, zusammen mit einem Code-Integritätsbericht und einer Zusammenfassung aller Richtlinien und Bescheinigungen, sorgt für mehr Transparenz und Vertrauen in den Entwicklungsprozess und die am Ende erzeugten Softwareartefakte und steht im Einklang mit den geltenden SSDF-Richtlinien Grundlage der neuen Cyber-Verordnung.
Indem Sie ausgewählten Abonnenten ermöglichen, die Einhaltung der Richtlinienanforderungen und Integritätsergebnisse des Produkts anzuzeigen, erhalten Benutzer mehr Transparenz und Vertrauen in Ihre Entwicklungspipelines und das endgültige Softwareprodukt.
Das Endergebnis ist nicht nur die Erkennung von Code- oder Pipeline-Manipulationen, sondern auch die Fähigkeit, die Tests und Sicherheitsverfahren zu bestätigen, die während des Entwurfs und der Erstellung der Software durchgeführt wurden, sowie die Integrität des Quellcodes und der Open-Source-Pakete beim Bau verwendet.
Sicherheit der Software-Lieferkette erklärt
Automatisierung der SLSA-Konformitätsbewertung
Die Sicherheit dynamischer Pipelines muss kontinuierlich gemessen werden. SLSA (Supply-Chain Levels for Software Artifacts) definiert vier Schutzstufen für die Software-Lieferkette sowie Richtlinien, wie diese erreicht werden können.
Eine SLSA-Konformitätsbewertung kann automatisiert werden, um ihren Anforderungen gerecht zu werden. Aber wie sollte eine Organisation bei der Anschaffung vorgehen? Gibt es bestimmte Best Practices, die Sie befolgen sollten?
Sehen Sie sich dieses Video an, in dem wir Best Practices für die Implementierung von Automatisierung unter Verwendung von Open-Source-Tools wie Sigstore und OPA in realen Szenarien vorstellen. Sowohl konzeptionelle als auch technische Best Practices beleuchten reale Details und Herausforderungen bei der Bewertung und Automatisierung der SLSA-Compliance.
Bevor Sie Scribe verwenden | Nach der Verwendung von Scribe | |
---|---|---|
Trust Hub – Informationsaustausch |
|
|
Sicheres SDLC – Richtlinien und Compliance |
|
|
Integritäts- und Manipulationserkennung |
|
|
Sichtbarkeit |
|
|
Sicherheitslage |
|
|
Scribe Security – ein neuer Software-Supply-Chain-Sicherheitsstandard
Verfolgen Sie jedes Detail und Ereignis im Softwareentwicklungsprozess sowie die Integrität der Softwarekomponenten und Artefakte
Stellen Sie sicher, dass in keinem Teil des Softwareentwicklungsprozesses Manipulationen stattgefunden haben
Überprüfen Sie die Integrität der CI/CD-Tools, die zum Erstellen des Codes verwendet werden
Bestätigen Sie die Integrität des Entwicklungsprozesses und stellen Sie sicher, dass sicherheitsrelevante Schritte gemäß den Richtlinien der Organisation durchgeführt und nicht umgangen wurden
Indem Sie in jeder Phase des Entwicklungslebenszyklus Beweise für alles sammeln und signieren, was mit dem Code geschieht, erschweren Sie es Angreifern, Dateien, Tools oder das erwartete Verhalten Ihrer CI/CD-Pipeline zu manipulieren.