Cyberark Glossary >

Was ist DevOps?

DevOps ist ein Begriff, der eine Reihe kultureller Philosophien, Praktiken und Instrumente beschreibt, die Softwareentwicklung (Dev) und IT-Betrieb (Ops) zusammenbringen und eine schnellere Bereitstellung von Anwendungen und Dienstleistungen ermöglichen.

Mithilfe von DevOps-Methoden lassen sich in kürzeren Abständen neue Anwendungsfunktionen implementieren. Eine dynamische Cloud-Infrastruktur begegnet Nachfragespitzen mit Auto-Scaling-Prozessen, die neue Rechenressourcen (virtuelle Maschinen oder Container) in Gang setzen und je nach Bedarf mehr Instanzen einer Anwendung bereitstellen. Die Unternehmen zahlen dabei nur für die benötigte Rechenleistung.

Viele Unternehmen weltweit setzen auf agile Konzepte und DevOps-Methoden, um funktionale und administrative Silos abzubauen sowie Änderungs-, Konfigurationsmanagement- und Bereitstellungsprozesse zu automatisieren. DevOps kann letztendlich dabei helfen, die Markteinführungszeit zu verkürzen, die Produktqualität zu verbessern, Ineffizienzen zu beseitigen, die digitale Transformation zu beschleunigen und besser auf Kundenbedürfnisse einzugehen.

Was ist CI/CD?

Durch die Zusammenführung von Entwicklung und Betrieb sowie die Förderung der Zusammenarbeit zwischen den Funktionen ermöglicht DevOps kürzere Entwicklungszyklen, die besser auf die Unternehmensziele abgestimmt sind. Mit Continuous Integration (CI) führen Entwickler mehrmals täglich Code-Veränderungen in einem Repository zusammen, um sie später automatisch in Builds zu integrieren. Continuous Delivery (CD) setzt voraus, dass sich der Code immer in einem einsatzfähigen Zustand befindet, sodass er jederzeit auf Knopfdruck in die Produktion gehen kann.

Herausforderungen bei der DevOps-Sicherheit

Trotz der vielen Vorteile bringt DevOps neue Risiken und kulturelle Veränderungen mit sich, die wiederum Sicherheitsprobleme schaffen, die mit herkömmlichen Security-Management-Lösungen und -Verfahren in der Regel nicht bewältigt werden können. Diese traditionellen Ansätze sind oft zu langsam, teuer oder komplex, um eine automatisierte Softwarebereitstellung in der Cloud oder als Container zu unterstützen. Zu diesen Herausforderungen zählen:

Für DevOps verwendete privilegierte Anmeldedaten sind Zielscheibe von Cyber-Angreifern. Eines der größten Sicherheitsprobleme in DevOps-Umgebungen ist das Privileged Access Management. DevOps-Prozesse erfordern den Einsatz von privilegierten Anmeldedaten sowohl von menschlichen als auch von maschinellen Benutzern. Diese sind aber sehr umfangreich und damit äußerst anfällig für Cyber-Angriffe.

  • Menschlicher Zugriff: Bei Hochgeschwindigkeitsprozessen benötigen DevOps-Anwender privilegierten Zugriff auf sämtliche Entwicklungs- und Produktionsumgebungen.
  • Maschineller Zugriff: Bei automatisierten Prozessen benötigen Maschinen und Tools erhöhte Privilegien (oder Berechtigungen), um ohne menschliche Beteiligung auf Ressourcen zugreifen zu können. Hier einige Beispiele:
    • Automatisierungstools: Ansible, Puppet und Chef
    • CI/CD-Tools: Jenkins, Azure DevOps und Bamboo
    • Container-Management-Tools: Docker und Linux Containers (LXC)
    • Container-Orchestrierungstools: Kubernetes, Red Hat OpenShift, Pivotal, Cloud Foundry

Tier-Zero-Ressourcen wie Ansible und Jenkins haben Zugriff auf Anmeldedaten, die von vielen anderen Tools verwendet werden.

Sobald Angreifer in den Besitz von privilegierten Anmeldedaten gelangen, können sie uneingeschränkten Zugriff auf DevOps-Pipelines, vertrauliche Datenbanken und sogar die gesamte Cloud eines Unternehmens erhalten. Angreifer wissen das und suchen daher verstärkt nach privilegierten Anmeldedaten, einschließlich Passwörtern, Zugriffsschlüsseln, SSH-Schlüsseln und Token, sowie nach anderen Arten von Secrets wie Zertifikaten, Verschlüsselungsschlüsseln und API-Schlüsseln. Angreifer können ungesicherte Anmeldedaten in DevOps-Umgebungen ausnutzen – mit Folgen wie Cryptojacking, Datenschutzverletzungen oder Vernichtung geistigen Eigentums.

Die Entwickler konzentrieren sich auf Geschwindigkeit, nicht auf Sicherheit. DevOps-Teams, die in erster Linie schnell Code produzieren wollen, wenden oft unsichere Praktiken an, die nicht in den Zuständigkeitsbereich der Sicherheitsteams fallen. Beispiele dafür sind das Hinterlassen von eingebetteten Secrets und Anmeldedaten in Anwendungen und Konfigurationsdateien, die Verwendung von Drittanbieter-Code ohne ausreichende Prüfung, die Einführung neuer Tools ohne Bewertung potenzieller Sicherheitsprobleme oder der unzureichende Schutz von DevOps-Tools und -Infrastruktur.

Rein toolbasierte Ansätze für das Secrets-Management schaffen Sicherheitslücken. DevOps-Tools verfügen oft über integrierte Funktionen zum Schutz von Secrets. Diese Funktionen ermöglichen jedoch nicht immer die Interoperabilität oder den sicheren Austausch von Secrets zwischen Tools, Clouds und Plattformen. Oftmals nutzen DevOps-Teams die integrierten Funktionen ihrer jeweiligen Tools für die Verwaltung von Secrets. Dieser Ansatz kann aber einen angemessenen Schutz der Secrets erschweren, da sich diese nicht konsequent überwachen und verwalten lassen.

Schritte zur Einführung von DevOps-Sicherheit in Ihrem Unternehmen

Die folgenden Schritte werden oft herangezogen, um die DevOps-Sicherheit in größerem Maßstab zu gewährleisten und gleichzeitig die Risiken privilegierter Zugriffe zu senken sowie die Kultur und die Methoden von DevOps aufzugreifen:

  • Die Sicherheitsstrategie als Code instanziieren. Ein Eckpfeiler von DevOps ist das Konzept der „Infrastruktur als Code“ (gelegentlich auch als unveränderliche Infrastruktur bezeichnet), welches das traditionelle Modell der manuellen Verwaltung und Konfiguration von Servern und Software ablöst. Durch die Anwendung dieses Konzepts auf die Sicherheit – Instanziierung und Verwaltung der Sicherheitsstrategie als Code – können Unternehmen aufwändige, fehleranfällige Konfigurationsprozesse beseitigen.
  • Eine Aufgabentrennung einführen. Innerhalb eines DevOps-Teams sollten eindeutige Rollen und Verantwortlichkeiten definiert sein:
    • Entwickler sollten sich auf die Entwicklung von Anwendungen zur Optimierung der Geschäftsergebnisse konzentrieren.
    • Der Betrieb sollte sich auf die Bereitstellung einer zuverlässigen und skalierbaren Infrastruktur konzentrieren.
    • Die Sicherheit sollte sich auf den Schutz von Ressourcen und Daten sowie die Senkung von Risiken konzentrieren.

Die Interaktionen zwischen den einzelnen Gruppen können in einer schriftlichen Sicherheitsstrategie festgehalten werden. Beispielsweise legen die Entwickler in der Sicherheitsstrategie fest, welche Privilegien ihre Anwendung oder ihr Dienst erfordert. Das Sicherheitsteam überprüft und genehmigt dann die Sicherheitsstrategie, wobei der Betrieb dafür sorgt, dass die Bereitstellung der Anwendung nach Plan verläuft.

  • Sicherheit zum Bestandteil der CI/CD-Praktiken machen. Allzu oft wird die Sicherheit im DevOps-Prozess nachrangig behandelt und, wenn überhaupt, erst spät berücksichtigt. Die möglicherweise umfangreichen Änderungen, die zur Behebung von Schwachstellen in letzter Minute erforderlich sind, haben dann ein verzögertes Release zur Folge. Vorausschauende Unternehmen nutzen moderne Tools zur Planung und Verwaltung von Arbeitsabläufen wie Kanban, um Abläufe zu modellieren, die Entwicklung zu beschleunigen und Ineffizienzen auszuräumen. Darüber hinaus zerlegen die Sicherheitsteams Anwendungen immer häufiger in Mikrodienste, um Sicherheitsprüfungen und Änderungen zu vereinfachen.
  • Einen proaktiven Sicherheitsansatz verfolgen. Während des gesamten Anwendungslebenszyklus sollten solide Sicherheitspraktiken vorhanden sein, um Schwachstellen zu reduzieren, die Sicherheitslage zu verbessern und Risiken zu mindern. Nachfolgend werden einige Best Practices für DevOps-Sicherheit beschrieben:
    • Sicherheitsanforderungen und potenzielle Schwachstellen ganzheitlich betrachten, da Angreifer für ihre Mission unter Umständen nur eine Schwachstelle ausnutzen müssen.
    • Die Konzentration von Privilegien in Build-Automatisierungstools verringern und dafür sorgen, dass Code-Repositorys keine Secrets preisgeben.
    • Von maschinellen und menschlichen Benutzern verwendete Secrets (Passwörter, Zertifikate, API-Schlüssel, Token und SSH-Schlüssel) in einem sicheren, hochverfügbaren Vault außerhalb des Quellcodes und nicht auf Entwickler-Laptops oder in für Benutzer zugänglichen Speichersystemen aufbewahren. Secrets regelmäßig rotieren, um die Gefahr zu minimieren.
    • Das Least-Privilege-Prinzip anwenden, um sicherzustellen, dass maschinelle und menschliche Benutzer nur auf absolut notwendige Ressourcen zugreifen können.
    • Eine Baseline für normale Nutzungsmuster festlegen, um Anomalien zu erkennen und böswillige Benutzer rückverfolgbar zu machen, damit diese keine Anmeldedaten stehlen können.
    • Verantwortung schaffen, indem die Verwendung von Anmeldedaten dokumentiert wird. Bei menschlichen Benutzern können zum Beispiel Tasteneingaben protokolliert oder die Session als Video aufgezeichnet werden.
    • Jedem Rechner eine eigene, eindeutige Identität zuweisen, um seinen Zugriff auf Secrets prüfen und überwachen zu können.
    • Vulnerability-Scans und Penetrationstests durchführen, um die Cybersicherheit insgesamt zu verbessern.
    • Entwickler über Sicherheitsbedrohungen und Best Practices informieren.
    • Eine enge Zusammenarbeit und Kooperation zwischen den Sicherheits- und Entwicklungsteams fördern.
  • Sicherheitsprozesse automatisieren. Durch Automatisierung wird bei DevOps das Lebenszyklusmanagement von Anwendungen beschleunigt und menschliche Latenz beseitigt. In ähnlicher Weise sollte auch bei der DevOps-Sicherheit Automatisierung zum Einsatz kommen, um menschliche Interaktion und manuelle Eingriffe zu minimieren. Beispielsweise können Unternehmen durch die automatische Rotation von Secrets (Passwörter, Schlüssel, Zertifikate) verhindern, dass Angreifer über einen längeren Zeitraum Zugriff auf DevOps-Tools, Zugriffsschlüssel oder Systeme erhalten. Automatisierte Sicherheitsverfahren können zudem reaktiv eingesetzt werden, wenn ein Verstoß festgestellt wird. So lassen sich zum Beispiel privilegierte Sessions automatisch beenden und die Anmeldedaten automatisch rotieren, sobald eine Sicherheitsverletzung erkannt wird.

Erfahren Sie mehr über DevOps-Sicherheit

IN KONTAKT BLEIBEN

IN KONTAKT BLEIBEN!

Bleiben Sie immer auf dem Laufenden: aktuelle Security Best Practices, Events und Webinare.