Sicherheit der Softwarelieferkette

Moderne Frameworks und Ansätze der Softwareentwicklung konzentrieren sich auf die Geschwindigkeit und Zuverlässigkeit der Softwarebereitstellung sowie auf eine gemeinsame Verantwortung unter den Software-Stakeholdern.

Neben der DevOps-Praxis der Linksverschiebung in Bezug auf die Sicherheit tragen viele weitere DevOps-Praktiken zur Bereitstellung von sichererer Software bei. Eine stärkere Zusammenarbeit zwischen Stakeholdern, Sichtbarkeit der Arbeit, reproduzierbare Builds, automatisierte Tests und inkrementelle Änderungen sind allesamt Praktiken, die die Softwaresicherheit unterstützen können. Laut dem Bericht Accelerate State of DevOps 2022 ist die Wahrscheinlichkeit höher, dass in einer vertrauenswürdigen Kultur die Softwarelieferkette verbessert wird, und dass CI/CD bei der Implementierung von Sicherheitspraktiken hilft.

In modernen Entwicklungs-Frameworks mangelt es jedoch an Anleitungen, die Unternehmen dabei helfen, Bedrohungen für ihre Software zu verstehen, ihre Fähigkeit, Bedrohungen zu erkennen und darauf zu reagieren, zu bewerten und Abhilfemaßnahmen umzusetzen. Außerdem konzentrieren sie sich tendenziell speziell auf den Code und die Prozesse innerhalb einer Organisation und vernachlässigen externe Faktoren, die sich auf die Integrität von Anwendungen auswirken können. Beispielsweise wirkt sich ein Angriff, der ein Open-Source-Softwarepaket kompromittiert, auf jeden Code aus, der direkt oder indirekt von diesem Paket abhängig ist. Angriffe wie diese haben seit 2020 stark zugenommen.

Softwarelieferketten

Eine Softwarelieferkette umfasst den gesamten Code, die Personen, Systeme und Prozesse, die zur Entwicklung und Bereitstellung Ihrer Software innerhalb und außerhalb Ihres Unternehmens beitragen. Dazu gehören:

  • Von Ihnen erstellter Code, dessen Abhängigkeiten und die interne und externe Software, die Sie zum Entwickeln, Erstellen, Verpacken, Installieren und Ausführen Ihrer Software verwenden.
  • Prozesse und Richtlinien für Systemzugriff, Tests, Überprüfung, Monitoring und Feedback, Kommunikation und Genehmigung.
  • Systeme, denen Sie vertrauen, um Ihre Software und deren Abhängigkeiten zu entwickeln, zu erstellen, zu speichern und auszuführen.

Angesichts der großen Reichweite und Komplexität der Softwarelieferkette gibt es zahlreiche Möglichkeiten, nicht autorisierte Änderungen an der Software vorzunehmen, die Sie Ihren Nutzern zur Verfügung stellen. Diese Angriffsvektoren erstrecken sich über den gesamten Softwarelebenszyklus. Während einige Angriffe abgezielt werden, z. B. der Angriff auf das Build-System SolarWinds, sind andere Bedrohungen indirekt oder treten durch Schwächen im Prozess oder Vernachlässigung in die Lieferkette ein.

In einem Blogpost zur Sicherheitslücke bei der Remote-Ausführung in Apache log4j vom Dezember 2021 hat das Google Open Source Insights-Team festgestellt, dass in Maven Central mehr als 17.000 betroffene Pakete vorhanden waren. Die meisten der betroffenen Pakete hängten nicht direkt vom anfälligen Paket log4j-core ab, hatten aber Abhängigkeiten, die es erforderten.

Prozesslücken wie eine fehlende Codeüberprüfung oder Sicherheitskriterien für die Bereitstellung in der Produktion können dazu führen, dass ungültiger Code unbeabsichtigt in die Lieferkette gelangt. Ebenso kann schädlicher Code in Ihre Software gelangen, wenn Sie mit Quellcode außerhalb Ihres vertrauenswürdigen Versionsverwaltungssystems erstellen oder Anwendungen von Systemen außerhalb Ihres vertrauenswürdigen Build-Systems und Artefakt-Repositorys verpacken und bereitstellen.

Laut dem Bericht State of the Software Supply Chain 2021 haben sowohl der Einsatz von Open-Source-Software als auch Angriffe auf Softwarelieferketten zwischen 2020 und 2021 stark zugenommen:

  • Die Angriffe auf die Softwarelieferkette sind 2021 im Vergleich zum Vorjahr um 650% gestiegen.
  • Verfügbarkeit und Nachfrage nach Open-Source-Paketen steigen weiter: 2021 stieg die Anzahl der Downloads von Open-Source-Komponenten im Jahresvergleich um 73 %.
  • Sicherheitslücken treten bei den beliebtesten Open-Source-Projekten am häufigsten auf.

Zum Schutz der Integrität Ihrer Software ist es wichtig, Ihren Sicherheitsstatus zu kennen und zu verstehen, wie gut Ihr Unternehmen darauf vorbereitet ist, Bedrohungen zu erkennen, darauf zu reagieren und zu beheben.

Compliance-Anforderungen und Rahmenbedingungen für Prüfungen

Zunehmende Bedenken in Bezug auf die Sicherheit der Lieferkette haben dazu geführt, dass neue staatliche Vorschriften zur Sicherheit der Lieferkette geschaffen wurden, wie z. B.:

Es werden neue Frameworks entwickelt, mit denen Organisationen ihren Sicherheitsstatus bewerten und mehr über die Minderung von Bedrohungen erfahren können.

Diese Frameworks basieren auf etablierten Softwaresicherheitspraktiken und strukturieren sie in einem Format, mit dem Sie Sicherheitsbedrohungen identifizieren können, die Sie bekämpfen müssen, und welche Maßnahmen Sie ergreifen können, um Bedrohungen zu mindern.

Softwarelieferkette in Google Cloud schützen

Software Delivery Shield bietet eine vollständig verwaltete Sicherheitslösung für die Softwarelieferkette in Google Cloud. Sie beinhaltet Best Practices, einschließlich Praktiken in Frameworks wie SLSA und NIST SSDF. Sie übernehmen die Komponenten der Lösung nach und nach basierend auf Ihren Prioritäten und Anforderungen.

Nächste Schritte