In this article
Konfigurationsdrift erkennen und verhindern
Schritte zur erfolgreichen Erkennung und Vermeidung von Konfigurationsdrift
Konfigurationsdrift im gesamten Unternehmen erkennen
Unabhängig davon, wie Ihr Unternehmen seine Infrastruktur verwaltet – automatisiert, manuell, On-Premises, cloudbasiert oder in einer Kombination daraus: Kleine tägliche Änderungen sind unvermeidlich. Ihre Systeme wurden für die Nutzung und Anpassung an interne wie externe Anforderungen entwickelt. Deshalb verändern sie sich im Laufe der Zeit.
Wenn mehrere Entwickler und Teams spontan und ohne Einhaltung der richtigen Protokolle mit dieser Infrastruktur arbeiten, können sich diese kleinen Änderungen schnell summieren. So entstehen Abweichungen zwischen der aktuellen Systemkonfiguration und dem Sollzustand. Auf diese Weise kommt es zu Konfigurationsdrift: Änderungen werden unsachgemäß umgesetzt und führen mit der Zeit zu Problemen in Ihrer Infrastruktur.
Was ist Konfigurationsdrift?
Konfigurationsdrift entsteht, wenn Änderungen an der Infrastruktur eines Unternehmens nicht dokumentiert oder nicht ordnungsgemäß umgesetzt werden. Dadurch können sie die strukturelle Integrität der Infrastruktur beeinträchtigen. Die Änderungen, die zu einer Drift führen, sind nicht grundsätzlich schlecht. Da sie das System jedoch immer weiter vom vorgesehenen Ausgangszustand entfernen, können sie unbehandelt zu Problemen mit der Sicherheit, Compliance oder Performance führen.
Konfigurationsdrift kann bei jeder Art von Infrastruktur auftreten. Unternehmen mit Infrastructure-as-Code- (IaC-)Umgebungen stehen bei der Behebung und proaktiven Vermeidung von Drift jedoch vor besonderen Herausforderungen. Einige Ursachen werden standardmäßig eingedämmt, da IaC Maßnahmen wie die Versionskontrolle bietet. Dadurch ist es weniger wahrscheinlich, dass eine undokumentierte Änderung bereitgestellt wird. Das hohe Tempo automatisierter Cloud-Bereitstellungen kann jedoch weiterhin zu Problemen führen. Konfigurationsdrift in DevOps-, CI/CD- und anderen automatisierten Entwicklungsumgebungen kann sich besonders schnell summieren, da Änderungen in rascher Folge erfolgen.
Letztlich entsteht Drift in IaC, wenn der aktuelle Zustand der Infrastruktur nicht mit der codierten IaC-Konfiguration übereinstimmt. Entwickler arbeiten dann mit einer veralteten Version der Infrastruktur, während auf dem Live-System eine abweichende Version läuft.
Welche Ursachen hat Konfigurationsdrift?
Konfigurationsdrift kann durch verschiedene Änderungen an der Struktur Ihres Systems entstehen. Zu den häufigsten Ursachen zählen:
Manuelle Systemänderungen. Wenn jemand Ressourcen manuell und außerhalb Ihres etablierten IaC-Systems wie Terraform oder CloudFormation erstellt oder ändert, werden diese Änderungen nicht in die codierte Konfiguration übernommen.
Authentifizierte Anwendung. Das bedeutet, dass Microservices für automatisierte Aktionen – etwa das Lesen eines Skripts oder das Schreiben in einen Bucket – aufgrund eines Fehlers nicht wie vorgesehen funktionieren. Solche Automatisierungsfehler können zu Drift führen.
Verborgene oder unbemerkte Änderungen in IaC. Unbekannte Änderungen führen dazu, dass IaC-Umgebungen nicht mehr synchron sind. Es entsteht eine Lücke zwischen der Arbeitsgrundlage der Entwickler und dem tatsächlichen Zustand des Systems.
Patches und Upgrades. Um neue Patches oder Upgrades bereitzustellen, müssen Entwickler zahlreiche große oder kleine Änderungen am System vornehmen. Jede dieser Änderungen kann Drift verursachen.
Was passiert, wenn Drift nicht verwaltet wird?
Konfigurationsdrift kann für Teams schwerwiegende Probleme verursachen, insbesondere wenn sie IaC nutzen. Denn wenn der aktuelle Zustand der Infrastruktur nicht mit der codierten IaC-Konfiguration übereinstimmt, arbeiten Entwickler mit einer veralteten Version der Infrastruktur, während auf dem Live-System eine abweichende Version läuft. Je größer die Lücke zwischen dem Wissen der Entwickler über das System und dem tatsächlichen System wird, desto stärker leiden dessen Sicherheitsstatus, Leistung und Compliance.
Sicherheitsrisiken
Wird Drift nicht behoben, kann sie schwerwiegende Sicherheitsprobleme verursachen und Ihre Systeme Angreifern aussetzen. Spontane, undokumentierte Änderungen am System können unerkannte Hintertüren schaffen. In vielen Fällen besteht das tatsächliche Risiko darin, dass Änderungen am System unbekannt bleiben und Schwachstellen dadurch nicht behoben werden. So war beispielsweise der Twilio-Datenschutzvorfall von 2020 auf Konfigurationsdrift bei einem S3-Bucket zurückzuführen. Ein Entwickler behob ein früheres Problem, versetzte dabei jedoch die Bucket-Konfiguration in einen unsicheren Zustand. Da die Drift nicht erkannt und die Konfiguration nicht in ihren ursprünglichen sicheren Zustand zurückgesetzt wurde, blieb sie jahrelang unentdeckt. Schließlich nutzten Angreifer sie aus, um personenbezogene Daten von Nutzern abzugreifen.
Leistungsprobleme
Konfigurationsdrift führt nicht nur zu Sicherheitslücken, sondern kann auch Leistungsprobleme und Ausfallzeiten verursachen. Wenn der aktuelle Zustand Ihrer Infrastruktur nicht mit dem IaC-Code übereinstimmt, kann diese Abweichung zu überdimensionierten Workloads sowie zu nicht optimierten Ressourcen und Prozessen führen. All diese kleinen Inkonsistenzen können sich summieren und zahlreiche Leistungsprobleme verursachen.
Verstöße gegen Compliance-Vorgaben
IaC sollte als aktuelle Dokumentation Ihres Systems dienen. Wenn Konfigurationsdrift die Genauigkeit des codierten IaC beeinträchtigt, werden kleine Änderungen möglicherweise nicht angemessen durch Ihre Sicherheitsrichtlinien berücksichtigt. Angenommen, ein Entwickler öffnet einen Port, ohne die Änderung in IaC abzubilden. Selbst wenn diese Änderung harmlos ist, weicht der aktuelle Zustand Ihres Systems dadurch von dem in IaC und den zugehörigen Sicherheitsrichtlinien definierten Zustand ab. Bei einem Audit würde dies als Compliance-Verstoß gelten.
Konfigurationsdrift erkennen
Maßnahmen zur Verwaltung von Konfigurationsdrift können Ihrem Team helfen, Abweichungen zu erkennen und zu beheben, bevor sie grundlegende Probleme verursachen. Es gibt verschiedene Tools, mit denen Sie Ihre Infrastruktur überprüfen, Drift erkennen und konkrete nächste Schritte zu ihrer Behebung erhalten können.
Verwaltete und nicht verwaltete Ressourcen
Wenn Ihr Team Tools zur Erkennung von Konfigurationsdrift prüft, sollten Sie beachten, dass sich manche Lösungen auf verwaltete Ressourcen spezialisieren, während andere für nicht verwaltete Ressourcen gedacht sind. Um Drift bei verwalteten Ressourcen wie Terraform-Ressourcen zu erkennen, benötigt Ihr Team eine Lösung, die Ihre erfassten Assets regelmäßig auf Anzeichen von Drift überprüft.
Für nicht verwaltete Ressourcen hingegen benötigt Ihr Team ein Tool, das alle Assets erfasst, die derzeit nicht dokumentiert und deshalb nicht regelmäßig auf Drift überprüft werden. Nachdem Sie nicht verwaltete Ressourcen identifiziert haben, müssen Sie sie unter IaC-Verwaltung stellen.
Tools zur Verwaltung von Konfigurationsdrift
Terraform plan. Dies ist ein einfacher Befehl, der in Ihrer Terraform-Instanz ausgeführt werden kann. Er erkennt Drift in Ihren verwalteten Ressourcen und erläutert die undokumentierte Änderung sowie einen Plan zur Behebung der Drift. Über die Befehlszeile lassen sich jedoch nur Änderungen an verwalteten Ressourcen erfassen, nicht an nicht verwalteten.
Snyk IaC. Unser Tool zur Verwaltung von Konfigurationsdrift soll Teams dabei helfen, Drift schnell und einfach zu erkennen. Es kann nicht verwaltete Ressourcen unter die Kontrolle von Terraform stellen und so die IaC-Abdeckung Ihrer Clouds erhöhen. Unsere Lösung fördert die Zusammenarbeit zwischen Entwicklung und Sicherheit durch benutzerfreundliche Berichte.
CloudQuery. Mit diesem Open-Source-Tool zur Erfassung von Cloud-Assets lassen sich Cloud-Ressourcen schnell auflisten, nicht verwaltete Ressourcen erkennen und mehrere Zustandsdateien überprüfen. Das Tool ist zwar hilfreich für die Visualisierung Ihrer Cloud-Assets, hat aber einige Nachteile bei der Behebung von Drift. CloudQuery kann bei der Suche nach Drift in S3-Buckets ungenau sein, unterstützt die Speicherung von Backend-Zustandsdateien nur eingeschränkt, erfordert eine SQL-Datenbank und unterstützt nicht alle Terraform-Ressourcen.
Driftctl. Diese Open-Source-Ressource – von Snyk gepflegt – kann Drift erkennen, nachverfolgen und melden. Sie ist vielseitig und kann Drift bei nicht verwalteten Ressourcen erkennen sowie mehrere Zustandsdateien überprüfen, weist aber auch einige Lücken auf. So unterstützt sie beispielsweise nicht alle Terraform-Ressourcen. Außerdem berichten einige Nutzer von Problemen durch API-Drosselungsfehler und langen Wartezeiten bei Scans im Deep-Modus.
Konfigurationsdrift ist unvermeidlich, wenn sich Systeme weiterentwickeln und im Laufe der Zeit verändern. Wenn Ihr Unternehmen Drift jedoch erkennt und behebt, sobald sie auftritt, verursacht sie später im Entwicklungsprozess keine Probleme. So sparen Sie Zeit und Ressourcen. Wir haben Snyk IaC entwickelt, damit Unternehmen Drift verwalten und verhindern können. Wenn Sie die Lösung in Aktion erleben möchten, kontaktieren Sie uns noch heute für eine Demo.
Sichern Sie Ihre Infrastruktur an der Quelle
Snyk automatisiert die IaC-Sicherheit und Compliance in Workflows und erkennt abweichende sowie fehlende Ressourcen.