IT-Lodge News

DevOps: Software-Innovationen für das Business – aber mit Sicherheit!

News vom: 12.09.2019

DevOps ist ein Set von Methoden, die dafür sorgen, dass Software-Entwicklung und Anwendungsbetrieb (Development und Operations) während des gesamten Software-Lebenszyklus‘ als ein Team zusammenarbeiten, also von der Entwicklung über den Betrieb bis hin zur Modernisierung von Lösungen.

Das vollständige Potential des DevOps-Paradigmas entfaltet sich vor allem bei Anwendungen, die in der Cloud betrieben beziehungsweise mit Cloud-Ressourcen entwickelt worden sind. Lesen Sie mehr darüber in der IDC-Studie (s.u. bei den Downloads). Dabei werden Anwendungen für die Digitale Transformation von Geschäftsprozessen und Unternehmen agil und in hoher Geschwindigkeit realisiert: So bringt ein SHE-Team für einen Kunden zum Beispiel binnen acht Monaten 48 Releases in Betrieb, früher schaffte man höchstens eines pro Monat.

Das bringt eine hohe Innovationsgeschwindigkeit, ist aber mit Risiken verbunden – die so entstehen: Entwickler nutzen Frameworks – zum Beispiel Django in der Programmiersprache Python oder Revel in der Sprache Go – und fügen Bibliotheken aus anderen Quellen hinzu. Der so entstehende Software-Code kann seinerseits Bibliotheken aufrufen, etwa vom Betriebssystem zur Performance-Optimierung. Jede Applikation existiert dadurch in einem Netz von Abhängigkeiten: Änderungen im Code wirken möglicherweise indirekt auf kritische Bibliotheken, ohne dass Entwickler oder Infrastruktur das automatisch erfahren würden.

Container kapseln Risiken

Die Lösung dieses Sicherheitsproblems sind Container, in denen alle Abhängigkeiten gebündelt und in einem portablen Format verpackt werden. Aus Infrastruktursicht ändert sich bei einem neuen Release nichts, denn der Container bleibt in seinem äußeren Eigenschaften gleich. Alle Änderungen finden im Container selbst statt, bei der Softwareentwicklung. So können mehrere Versionen einer Software existieren, ohne Konflikte zu verursachen.

Auch mit Containertechnik ergibt sich Sicherheit freilich nicht von allein – der Code muss getestet werden, die Infrastruktur stabil sein. Das heißt: Container-Sicherheit muss integraler Bestandteil der Entwicklung sein, der Sicherheitsprozess muss automatisch ablaufen, um fehlerträchtige manuelle Eingriffe möglichst überflüssig zu machen.

SHE-Partner Trend Micro, auf der IT-Lodge mit kompetenten Ansprechpartnern vertreten, hat den Container-Sicherheits-Prozess, der für DevOps unverzichtbar ist, in sechs Schritte strukturiert:

1. Schutz des Container-Host

  • Betriebssystem auf Services beschränken, die unbedingt für Container-Hosting benötigt werden
  • Einsatz von Monitoring-Werkzeugen
  • Einsatz starker Sicherheitskontrollen, etwa mithilfe von Trend Micro Deep Security

2. Schutz der Netzwerkumgebung

  • Datenverkehr in und aus dem Internet kontrollieren und vor Angriffen und bösartigen Inhalten schützen, etwa mithilfe eines Intrusion Prevention Systems (IPS) und durch Web-Filtering
  • Datenverkehr zwischen Containern durch IPS überwachen

3. Schutz des Management-Stacks

  • Schutz und Überwachung der Container-Registry
  • Scan und Validierung der Container-Konfigurationen mit Werkzeugen wie Trend Micro Deep Security Smart Check
  • Abriegelung der Kubernetes-Installation (zur Containerverwaltung) und Durchsetzung von Sicherheits- und Entwicklungsstandards mittels Richtlinien für Gruppen von Containern (Pods) und Netzwerke

4. Sicheres Fundament für den Aufbau

  • Überwachung und Auswertung aller Benachrichtigungen des Projekt-Teams über Abhängigkeiten innerhalb von Applikationen, Bei einem Patch der Software Änderungen integrieren
  • Verwendung eines Container-Image-Scanners wie Deep Security Smart Check, um Malware, bekannte Schwachstellen oder unerwünschte Informationen in Containern auszuschließen

5. Schutz der Build-Pipeline

  • Starke Kontrollen von Developer Workstations, etwa mithilfe von Trend Micro Apex One
  • Konsistente Zugangskontrollregeln für Code Repositories zugreifen, die Integration von Branches und die Produktiv-Bereitstellung von Builds
  • Schutzer der Server, auf denen diese Werkzeuge laufen, mit Lösungen wie Deep Seurity

6. Schutz der Applikation

  • Konsequente Einhaltung von Best Practices für höchste Code-Qualität
  • Einsatz von Runtime-Self-Protection-Kontrollen hilft zur Identifikation von Verbindungen zwischen Sicherheitsschwachstellen und bestimmten Code-Zeilen

Können wir Ihnen weiterhelfen? Fragen Sie uns!