Skip to main content

Verbessert GitOps die Anwendungssicherheit?

blog feature snyk iac cli enhancements

21. August 2023

0 Min. Lesezeit

GitOps wurde 2017 von Weaveworks entwickelt. Dabei kommen vertraute Tools zum Einsatz, um Continuous Deployment für cloudnative Anwendungen umzusetzen. Das verbessert die Developer Experience bei der Verwaltung von Kubernetes-Clustern und der Bereitstellung von Anwendungen.

Bei GitOps wird der gewünschte Zustand der Infrastruktur in der Produktionsumgebung in einem Git-Repository festgehalten. Ein automatisierter Prozess überprüft kontinuierlich den Zustand der Produktionsumgebung und vergleicht ihn mit dem im Repository definierten Zustand. In diesen Git-Repositories werden deklarative Spezifikationen gespeichert, die den Zustand von Continuous Integration und Deployment (CI/CD), Bereitstellung, Tests und mehr beschreiben. Die Versionskontrolle in GitOps übernimmt daher die Bereitstellung, ohne dass während des CD-Prozesses zwischen Tools gewechselt werden muss. Einfach ausgedrückt: Git ist die einzige verlässliche Quelle für Infrastructure as Code.

In diesem Beitrag beleuchten wir die Grundprinzipien von GitOps, wie sie die Anwendungssicherheit verbessern und wie der schnelle Bereitstellungsprozess von GitOps die Effizienz steigert.

Die vier Prinzipien von GitOps

Deklarative Beschreibung

Das Paradigma der deklarativen Beschreibung ermöglicht es Entwicklerinnen und Entwicklern, die gewünschten Anforderungen an ihre Anwendungen zu beschreiben. Das System, auf dem die Anwendung ausgeführt wird, bestimmt, wie sie bereitgestellt wird, um die festgelegten Anforderungen zu erfüllen. So können sich Entwicklerinnen und Entwickler auf ihre Anwendungen konzentrieren, statt auf die Abläufe bei der Bereitstellung.

Versionskontrolle

Mit GitOps lassen sich CD-Pipelines einfach ändern, frühere Bereitstellungsversionen wiederherstellen und Änderungen zusammenführen. Das Git-Repository verwaltet Pull Requests und andere Aktionen am Anwendungszustand. Anschließend speichert es diesen Zustand und gewährleistet Unveränderlichkeit, Versionierung und die Aufzeichnung des Versionsverlaufs. 

Automatisierte Genehmigung von Änderungen

Entwicklerinnen und Entwickler stellen Pull Requests oder Merge Requests, um Änderungen über das Git-Repository vorzunehmen. Die CI-Pipelines werden ausgeführt und die angeforderte Änderung wird zusammengeführt, wenn die deklarierten Anforderungen erfüllt sind. Nach dem Zusammenführen startet der GitOps-Workflow den Operator für die Bereitstellung – ohne Eingreifen der Entwicklerinnen und Entwickler.

Kontinuierlicher Abgleich

Software-Agenten in der GitOps-Pipeline überwachen kontinuierlich den Zustand der Infrastruktur in der Produktionsumgebung und vergleichen ihn mit dem gewünschten Zustand in der Versionskontrolle. Anschließend können sie die erforderlichen Änderungen vornehmen, um den gewünschten Zustand der Produktionsumgebung herzustellen.

Wie GitOps die Anwendungssicherheit verbessert

Diese vier Prinzipien machen GitOps zu einem wichtigen Faktor für die Anwendungssicherheit. 

Erstens sorgt die Versionierung deklarativer Spezifikationen in Git dafür, dass sich die Infrastruktur bei einem schwerwiegenden Sicherheitsvorfall unabhängig von der kompromittierten Version schnell replizieren und neu einrichten lässt. Diese Fähigkeit zur Reaktion auf Vorfälle verkürzt Ausfallzeiten. Die starke Kryptografie des Git-Versionskontrollsystems gewährleistet, dass Änderungen präzise nachverfolgt und verwaltet werden. Kryptografie wird auch zum Signieren von Änderungen eingesetzt. So lässt sich ihre Urheberschaft und Herkunft nachweisen, was den gewünschten Zustand absichert. 

Darüber hinaus schlagen die Software-Agenten im GitOps-Workflow Alarm, wenn der gewünschte und der tatsächliche Zustand voneinander abweichen. So werden kritische Schwachstellen und Sicherheitsprobleme schnell erkannt. Dank automatisierter Genehmigung von Änderungen kann das System bei Bedarf aktualisiert oder zurückgesetzt werden, was ebenfalls eine schnelle Reaktion auf Sicherheitsverletzungen ermöglicht.

Sicherheitsmaßnahmen als Code

Das GitOps-Modell verwaltet alle Vorgänge im Zyklus als Code – einschließlich der Sicherheitsmaßnahmen. Sie können Sicherheitskonfigurationen und -richtlinien als Code im Git-Repository deklarieren. Dadurch lassen sich Änderungen, die durch Schwachstellen und Fehler im Workflow verursacht werden, schnell erkennen. Das erleichtert schnellere Änderungen an der Pipeline: Bei Sicherheitsverletzungen können Sie frühzeitig reagieren und Probleme beheben, indem Sie zu einer früher bereitgestellten Sicherheitseinstellung zurückkehren oder eine neue Version bereitstellen. Mit Infrastructure as Code können Sie außerdem das Ausmaß eines drohenden Angriffs abschätzen, wenn Sie betroffene Codezeilen in ein Repository übertragen.

Sicherheitsmaßnahmen frühzeitig integrieren

Wie können Entwicklerinnen und Entwickler sowie Cybersicherheitsexpertinnen und -experten Sicherheitsmaßnahmen frühzeitig integrieren? Wenn Sie Sicherheit als Code umsetzen, können Sie ihr Priorität einräumen und sie früher in die Pipeline integrieren. So lassen sich Änderungen an den erforderlichen Zuständen erkennen, die später zu Sicherheitsproblemen führen könnten. Außerdem können Sie Sicherheitsrichtlinien erstellen und überprüfen, bevor sie im Git-Versionskontrollsystem durchgesetzt werden – das beschleunigt die Entwicklung.

Wie GitOps Compliance als Code ermöglicht

Compliance-Richtlinien helfen Entwicklungsteams dabei, sichere Software von hoher Qualität zu erstellen. Bei der Umsetzung von Richtlinien als Code müssen diese in Textdateien festgelegt werden. Für Compliance-Richtlinien bedeutet das, sie deklarativ zu kodifizieren, um sie zu verwalten und durchzusetzen. Die Durchsetzung von Richtlinien in großem Umfang wird dadurch erleichtert, dass sie nicht manuell auf mehrere Systemversionen angewendet werden müssen. Außerdem wird die Automatisierung von Richtlinientests mit CI/CD-Tools vereinfacht.

Schnellere Änderungen

GitOps ermöglicht es grundsätzlich, Änderungen effizient durch automatisierte Pipelines zu leiten und so schnell auf Vorfälle in der Produktionsumgebung zu reagieren. Mit seiner CI/CD schafft GitOps eine Abstraktionsebene über der Infrastruktur. Änderungen am Systemzustand werden erst übernommen, nachdem sie anhand von Sicherheitsrichtlinien und Konfigurationen geprüft wurden. Dadurch bleiben das zugrunde liegende System und seine Komponenten vor Anwendungen und menschlichen Nutzenden verborgen. 

Darüber hinaus findet die gesamte Infrastrukturverwaltung auf einer einzigen Plattform statt, sodass Änderungen sicher nachverfolgt und protokolliert werden. Das vereinfacht Audits, bei denen der tatsächliche Systemzustand mit dem definierten Sollzustand verglichen wird. Der Git-Commit-Verlauf liefert einen zuverlässigen Prüfpfad mit Protokolleinträgen zu Konfigurationsänderungen – einschließlich der Angaben, wer wann welche Änderungen vorgenommen hat. Außerdem können Sie weitere Tools in den automatisierten CI/CD-Workflow integrieren, um zusätzliche Protokolle zu erstellen.

Sichern Sie Ihre CI/CD-Pipeline mit GitOps

GitOps ist nicht nur der nächste große Trend. Es ermöglicht sichere, zuverlässige und schnelle Abläufe. 

In diesem Artikel haben wir die vier Prinzipien behandelt, mit denen GitOps die Anwendungssicherheit verbessert. Das deklarative Paradigma definiert den gewünschten Zustand und ermöglicht bei Notfällen ein Rollback. Software-Agenten in der CI/CD-Pipeline überwachen das System kontinuierlich auf Änderungen und gleichen seinen Zustand stets mit dem in den Deklarationsdateien festgelegten Sollzustand ab. Zudem verfolgt die leistungsstarke Kryptografie von Git Änderungen am Anwendungscode und an der Konfiguration präzise. 

Außerdem haben wir erläutert, wie GitOps Sicherheit und Richtlinien als Code stärkt. Mit GitOps können Sie Sicherheits- und Compliance-Richtlinien als Code in Textdateien deklarieren – ähnlich wie Konfigurationen als Code. Dadurch lassen sich neue Änderungen in der CI/CD-Pipeline einfach umsetzen und validieren. Da Richtlinien bei der Bereitstellung neuer Versionen automatisch angewendet werden, erfolgt die Bereitstellung außerdem schnell. Schließlich bietet GitOps eine Abstraktionsebene, die Nutzende und Maschinen vom zugrunde liegenden System abschirmt und zugleich ein leistungsfähiges Audit-System für Protokolle bereitstellt.

GitOps bietet erhebliche Vorteile für die Automatisierung der Sicherheit in Konfigurations- und CI/CD-Prozessen.

Weiterlesen

blog feature snyk container custom base recommendations
Blog

Evo Agentic AppSec: Sicherheit, die mit der KI-Entwicklung Schritt hält

KI-gestützte Entwicklung ist schneller als herkömmliche Sicherheitsabläufe. Snyks Agentic AppSec setzt Sicherheitsagenten ein, um Schwachstellen kontinuierlich zu finden, zu beheben und zu überprüfen – während Menschen die Maßstäbe festlegen.

blog feature ai violet
Blog

VulnBump: Können KI-Agenten anfällige Abhängigkeiten beheben, ohne den Build zu beschädigen?

VulnBump testet KI-Agenten anhand von 307 realen Upgrades von Abhängigkeiten. Eine Behebung zählt nur, wenn die Sicherheitslücke geschlossen ist und Build und Tests weiterhin erfolgreich sind.

Blog

Frontier-Modelle fanden die Schwachstellen. Nur der Angreifer fand die Angriffsketten.

Die statische Analyse fand die Schwachstellen, doch erst Live-Angriffstests bewiesen, wie sie sich zu Angriffen verketten lassen. Ein Vergleich von Evo COS, Claude Security und Claude Code Security.