Sicherheit der Softwarelieferkette

Google Cloud bietet eine umfassende und modulare Reihe von Funktionen und Tools für Google Cloud-Produkte, mit denen Entwickler, DevOps- und Sicherheitsteams den Sicherheitsstatus Ihrer Softwareversorgungskette verbessern können.

Softwarelieferketten

Eine Softwarelieferkette besteht aus dem gesamten Code, den Personen, den Systemen und den Prozessen, die zur Entwicklung und Bereitstellung Ihrer Software beitragen, sowohl innerhalb als auch außerhalb Ihrer Organisation. Dazu gehören:

  • Der von Ihnen erstellte Code, seine Abhängigkeiten sowie die interne und externe Software, die Sie zum Entwickeln, Erstellen, Verpacken, Installieren und Ausführen Ihrer Software verwenden.
  • Prozesse und Richtlinien für den Systemzugriff, Tests, Überprüfung, Überwachung und Feedback, Kommunikation und Genehmigung.
  • Systeme, die Sie vertrauen, um Ihre Software und ihre Abhängigkeiten zu entwickeln, zu erstellen, zu speichern und auszuführen.

Aufgrund der großen Reichweite und Komplexität von Softwarelieferketten gibt es zahlreiche Möglichkeiten, nicht autorisierte Änderungen an der Software vorzunehmen, die Sie Ihren Nutzern zur Verfügung stellen. Diese Angriffsvektoren umfassen den gesamten Softwarelebenszyklus. Einige Angriffe sind gezielt, wie der Angriff auf das Build-System von SolarWinds. Andere Bedrohungen sind indirekt oder gelangen durch Prozessschwächen oder Fahrlässigkeit in die Lieferkette.

Bei einer Bewertung der Apache Log4j-Sicherheitslücke im Dezember 2021 durch das Open Source Insights-Team von Google wurde beispielsweise festgestellt, dass es über 17.000 betroffene Pakete in Maven Central gab. Die meisten dieser Pakete hingen nicht direkt vom angreifbaren log4j-core-Paket ab, hatten aber Abhängigkeiten, die das Paket erforderten.

Entwicklungspraktiken und ‑prozesse wirken sich ebenfalls auf Softwarelieferketten aus. Prozesslücken wie fehlende Codeüberprüfungen oder Sicherheitskriterien für die Bereitstellung in der Produktion können dazu führen, dass fehlerhafter Code unbeabsichtigt in die Lieferkette gelangt. Ebenso erhöht die mangelnde Abhängigkeitsverwaltung das Risiko von Sicherheitslücken durch externe Quellen oder Softwarepakete, die Sie für die Entwicklung, Builds oder Bereitstellung verwenden.

Softwarelieferketten in Google Cloud schützen

Google Cloud bietet:

  • Produkte und Funktionen, die Best Practices für die Sicherheit bei Entwicklung, Build, Tests, Bereitstellung und Richtliniendurchsetzung beinhalten.
  • Dashboards in der Google Cloud Console mit Sicherheitsinformationen zu Quellcode, Builds, Artefakten, Bereitstellungen und Laufzeiten Dazu gehören Sicherheitslücken in Build-Artefakten, die Herkunft des Builds und Abhängigkeitslisten der Software Bill of Materials (SBOM).
  • Informationen zur Reife der Sicherheit Ihrer Softwarelieferkette anhand des Frameworks „Supply Chain Levels for Software Artifacts“ (SLSA).

Das folgende Diagramm zeigt Google Cloud-Dienste, die zusammen für den Schutz der Softwarelieferkette sorgen. Sie können einige oder alle diese Komponenten in Ihre Softwarelieferkette einbinden, um den Sicherheitsstatus zu verbessern.

Komponenten der Softwarelieferkette von Google Cloud

Entwicklungsumgebung schützen

Cloud Workstations bietet vollständig verwaltete Entwicklungsumgebungen in Google Cloud. IT- und Sicherheitsadministratoren können ihre Entwicklungsumgebungen bereitstellen, skalieren, verwalten und schützen. Entwickler können auf Entwicklungsumgebungen mit einheitlichen Konfigurationen und anpassbaren Tools zugreifen.

Mit Cloud Workstations wird die Sicherheit vorverlegt, indem die Sicherheitsposition Ihrer Entwicklungsumgebungen verbessert wird. Zu den Sicherheitsfunktionen gehören VPC Service Controls, privater ein- und ausgehender Traffic, erzwungene Image-Updates und Zugriffsrichtlinien für Identity and Access Management. Cloud Workstations bietet zusätzliche Funktionen zum Schutz vor Datenverlust, wenn es mit Chrome Enterprise Premium kombiniert wird.

Softwareversorgung schützen

Die Sicherheit der Softwarebereitstellung – Build-Artefakte und Anwendungsabhängigkeiten – ist ein wichtiger Schritt zur Verbesserung der Sicherheit Ihrer Softwarelieferkette. Die weit verbreitete Verwendung von Open-Source-Software macht dieses Problem besonders schwierig.

  • Assured Open Source Software bietet Open-Source-Pakete, die von Google geprüft und getestet wurden. Diese Pakete werden mit den sicheren Pipelines von Google erstellt und regelmäßig gescannt, analysiert und auf Sicherheitslücken geprüft.

  • Artifact Registry ist ein universeller Paketmanager für alle Ihre Build-Artefakte und Abhängigkeiten. Wenn Sie alle Ihre Artefakte und Abhängigkeiten zentralisieren, haben Sie mehr Transparenz und Kontrolle über den Code in Ihrer Software-Lieferkette.

    • In Remote-Repositories werden Artefakte aus vordefinierten externen Quellen wie Docker Hub, Maven Central, dem Python Package Index (PyPI), Debian oder CentOS sowie benutzerdefinierte Quellen für unterstützte Formate gespeichert. Durch das Caching von Artefakten in Remote-Repositories wird die Downloadzeit verkürzt, die Paketverfügbarkeit verbessert und das Scannen auf Sicherheitslücken umfasst, sofern das Scannen aktiviert ist.
    • Virtuelle Repositories konsolidieren Repositories desselben Formats hinter einem einzigen Endpunkt und ermöglichen die Steuerung der Suchreihenfolge in vorgelagerten Repositories. Sie können Ihre privaten Pakete priorisieren, wodurch das Risiko von Abhängigkeitsverwirrungsangriffen verringert wird.
    • Sie können Artefakte auch schützen, indem Sie Sicherheitsfunktionen wie Zugriffssteuerung, VPC Service Controls-Dienstperimeter, Organisationsrichtlinien und andere Sicherheitsfunktionen konfigurieren. Weitere Informationen finden Sie in der Dokumentation zu Artifact Registry.
  • Mit Artifact Analysis werden Sicherheitslücken für Artefakte in Artifact Registry proaktiv erkannt.

CI/CD-Pipeline schützen

Böswillige Akteure können Softwarelieferketten angreifen, indem sie die CI/CD-Pipelines manipulieren. Mit den folgenden Produkten können Sie Ihre CI/CD-Pipeline schützen:

  • Cloud Build führt Ihre Builds in der Google Cloud-Infrastruktur aus. Zu den Sicherheitsfunktionen gehören detaillierte IAM-Berechtigungen, VPC Service Controls und isolierte und sitzungsspezifische Buildumgebungen. Zu den Funktionen, die speziell für die Sicherheit der Softwarelieferkette entwickelt wurden, gehören:

    • Unterstützung für SLSA-Level 3-Builds für Container-Images
    • Möglichkeit, eine authentifizierte und nicht fälschbare Build-Herkunft für containerisierte Anwendungen zu generieren.
    • Sicherheitsinformationen für erstellte Anwendungen. Dazu zählen:

      • Die SLSA-Build-Ebene, die die Reifestufe Ihres Software-Build-Prozesses gemäß der SLSA-Spezifikation angibt.
      • Sicherheitslücken in Build-Artefakten
      • Build-Herkunft, eine Sammlung überprüfbarer Metadaten zu einem Build. Sie enthalten Details wie die Digests der erstellten Images, die Quell-Speicherorte, die Build-Toolchain, die Build-Schritte und die Build-Dauer.

    Eine Anleitung zum Ansehen von Sicherheitsstatistiken für erstellte Anwendungen finden Sie unter Anwendung erstellen und Sicherheitsstatistiken ansehen.

  • Cloud Deploy automatisiert die Bereitstellung Ihrer Anwendungen in einer Reihe von Zielumgebungen in einer definierten Reihenfolge. Sie unterstützt die Continuous Delivery direkt in die Google Kubernetes Engine, GKE Enterprise und Cloud Run mit Genehmigungen und Rollbacks per Klick, Unternehmenssicherheit und ‑prüfung sowie integrierten Bereitstellungsmesswerten. Außerdem werden Sicherheitsinformationen für bereitgestellte Anwendungen angezeigt.

Anwendungen in der Produktion schützen

Google Kubernetes Engine (GKE) und Cloud Run tragen dazu bei, den Sicherheitsstatus Ihrer Laufzeitumgebungen zu verbessern. Beide bieten Sicherheitsfunktionen, die Ihre Anwendungen zur Laufzeit schützen.

  • GKE kann den Sicherheitsstatus Ihrer Container bewerten und Ihnen aktive Empfehlungen zu Clustereinstellungen, Arbeitslastkonfiguration und Sicherheitslücken geben. GKE enthält ein Sicherheitsstatus-Dashboard mit fundierten, umsetzbaren Empfehlungen zur Verbesserung des Sicherheitsstatus. Eine Anleitung zum Aufrufen von Sicherheitserkenntnissen im GKE-Dashboard für den Sicherheitsstatus finden Sie unter In GKE bereitstellen und Sicherheitserkenntnisse ansehen.

  • Cloud Run enthält einen Sicherheitsbereich mit Informationen zur Sicherheit der Softwarelieferkette, z. B. Compliance-Informationen auf SLSA-Buildebene, Build-Herkunftsinformationen und Sicherheitslücken in laufenden Diensten. Eine Anleitung zum Aufrufen von Sicherheitserkenntnissen im Bereich „Sicherheitserkenntnisse“ von Cloud Run finden Sie unter In Cloud Run bereitstellen und Sicherheitserkenntnisse ansehen.

Vertrauenskette durch Richtlinien aufbauen

Die Binärautorisierung hilft dabei, eine Vertrauenskette in Ihrer Softwarelieferkette einzurichten, aufrechtzuerhalten und zu überprüfen. Dazu werden Attestierungen erfasst, also digitale Dokumente, die Images zertifizieren.

Eine Attestierung gibt an, dass durch das erfolgreiche Ausführen eines bestimmten, erforderlichen Prozesses das zugehörige Image erstellt wurde. Basierend auf diesen gesammelten Attestierungen hilft die Binärautorisierung, vertrauenswürdige Richtlinien zu definieren, zu überprüfen und durchzusetzen. So wird sichergestellt, dass das Image nur bereitgestellt wird, wenn die Attestierungen den Richtlinien Ihrer Organisation entsprechen. Sie können die Binärautorisierung so konfigurieren, dass Sie benachrichtigt werden, wenn Richtlinienverstöße erkannt werden.

Attestierungen können beispielsweise angeben, dass ein Bild

Sie können die Binärautorisierung mit GKE und Cloud Run verwenden.

Preise

Für jeden Google Cloud-Dienst gelten eigene Preise. Weitere Informationen finden Sie in der Preisdokumentation für die gewünschten Dienste.

Nächste Schritte