zurück zur Übersicht

DevOps meets Security

Mit der zunehmenden Verbreitung agiler Softwareentwicklungsmethoden wie Scrum oder Extreme Programming werden auch die Anforderungen an die Bereitstellung der benötigten Infrastruktur in Sachen Geschwindigkeit und Agilität immer größer. DevOps ist hier das oft verwendete Buzz Word und für viele das Allheilmittel für die diversen Herausforderungen, die die damit einhergehenden Konzepte Continuous Delivery und Continuous Integration mit sich bringen. DevOps als Vorgehensmodell zielt darauf ab, Entwicklung (Development) und Betrieb (Operations) mit Aspekten der Qualitätssicherung zu integrieren. Leider wird es oft als grundlegende Verschlankung von Prozessen und Wegfall von Beschränkungen missverstanden. Dabei ist DevOps eher als ganzheitliche Philosophie zu sehen, um schneller Changes an produktiven Systemen durchführen zu können und zwar ausdrücklich nicht zu Lasten der Informationssicherheit.

DevOps Toolchain im Überblick

Doch was sind eigentlich die Kernthemen, wenn es darum geht DevOps sicher zu leben?
Den Großteil seiner Agilität zieht der DevOps-Ansatz aus der Toolchain, die ihm zugrunde liegt.

  • Code – Entwicklung und Code-Review mit Continuous-Integration-Tools
  • Build – Tools zur Versionskontrolle und zum Zusammenfügen von Code (Repositories)
  • Test – Statische und dynamische Code-Analysen und Tests
  • Package – Package Manager zum Ausliefern von binären Formaten (z.B.Docker Images)
  • Release – Change Management und Freigabe von Releases
  • Configure – Configuration und System Management Tools (Infrastructure als Code-Werkzeuge)
  • Monitor – Monitoring von Applikationen

Diese Toolchain sicher aufzubauen ist einer der Grundpfeiler für den nachhaltigen Erfolg des DevOps-Ansatzes. Mit der Beachtung folgender Grundsätze kommt man diesem Ziel ein gutes Stück näher.

1. Identity & Access Management (IAM)

Wenn Benutzer weitreichende Berechtigungen haben, ist es unverzichtbar stets nachvollziehen zu können, wer wann was getan hat. Werden nicht-personalisierte Accounts benutzt, ist dies nicht möglich. Deshalb sollten Super-User-Accounts wie root oder Administrator nicht im Normalbetrieb benutzt werden. Zugehörige Credentials gehören sicher verwahrt und ihre Verwendung dem absoluten Notfall vorbehalten. Zugegebenermaßen ist das keine sonderlich neue Erkenntnis. Es macht trotzdem Sinn, sich zu vergegenwärtigen, dass dies auch im agilen Umfeld uneingeschränkt gültig ist.

Passwörter können schnell verloren gehen, denn in agilen Teams ist die Fluktuation oft hoch. Deshalb ist es sinnvoll gerade in diesem Umfeld rigoros auf Multifaktorauthentisierung (MFA oder 2FA) zu setzen, wo immer dies möglich ist.

Je umfangreicher die Berechtigungen, desto mehr Disziplin ist bei der Erstellung von Benutzerrollen erforderlich. Auch im DevOps-Umfeld braucht niemand alle Rechte zur selben Zeit. Rollen und Berechtigungen sollten regelmäßig auditiert und kontinuierlich überwacht werden.

Eine strikte Rollentrennung sollte zwischen DevOps und DevSecOps eingehalten werden. Während sich DevOps um die Applikationen und die damit verbundenen Infrastrukturthemen kümmern, liegt das Konnektivitätsmamagement via Network Access Control (NAC) und Software Defined Network (SDN), Authentisierung, Autorisierung, Crypto Management, Zonierung der Infrastruktur und das Security Monitoring in den Händen der DevSecOps.

2. Securing the human!

Eigentlich ein alter Hut, aber oft ein stiefmütterlich behandeltes Kind der Informationssicherheit – Awareness. Doch gerade im DevOps-Umfeld ist es unverzichtbar, Awareness zu schaffen. Mitarbeiter die einen ganzen Applikations-Stack managen, müssen wissen wie sie dies sicher tun können. Entsprechende Trainings und ständige Weiterbildung sind definitiv keine Punkte für die Budget-Streichliste. Wichtig hierbei ist vor allem das Bewusstsein zu schaffen, dass Geschwindigkeit nie höher priorisiert werden darf als Sicherheit!

3. Security Automation

Dass Automatisierung einer, wenn nicht der entscheidende Faktor für eine erfolgreiche Umsetzung des DevOps-Ansatzes bleibt, ist unbestritten. Vergessen wird in der Praxis jedoch häufig, dass dies nicht nur auf die DevOps-Toolchain und die Infrastruktur, die die Applikationen trägt, beschränkt ist. Es gilt dasselbe für die Belange der Informationssicherheit. „Fail fast!“ muss die Maxime lauten, nicht nur bei funktionalen Tests, sondern gerade auch beim Test auf Sicherheitslücken im Code oder auf Schwachstellen in der Infrastruktur. Entsprechende Lösungen sind verfügbar und lassen sich hervorragend in die DevOps-Toolchain integrieren.

4. Endpoint Protection

Entwickler brauchen durchgehend Zugang zur Infrastruktur wenn Continous Integration umgesetzt werden soll. Das bedeutet in der Praxis aber auch, dass es keine geschützten Entwicklungsumgebungen im Sinne gekapselter Netzwerkzonen gibt. Der Laptop des Entwicklers selbst muss als solche besonders zu schützende Umgebung gelten, denn auf ihm werden alle Credentials (Zertifikate, Token etc.), die für den Zugriff benötigt werden, gespeichert. Zugriffsschutz durch 2-Faktorauthentisierung (2FA), Datenträgerverschlüsselung, ein solides Patchmanagement, Schutz vor Schadsoftware und die Möglichkeit verdächtiges Verhalten auf dem Endpoint zur erkennen und zu untersuchen gehören zur Grundausstattung um Workstations effektiv zu schützen.

5. Security Monitoring

Operatives Logging zur Fehlersuche und Verfügbarkeitsüberwachung, sowie Aufzeichnung von Metriken zur Kapazitätsplanung und zur Messung des Kundenfeedbacks sind gang und gäbe. Die Umsetzung eines durchgehenden Security Monitorings wird dagegen oft vernachlässigt. Es bildet jedoch die unersetzliche Grundlage für die Erkennung von potentiell schadhaftem Verhalten und ermöglicht dessen zeitnahe und effiziente Analyse. Kein Security Monitoring heißt keine Incident Detection und damit auch keine effektive Incident Response! Zu beachten hierbei ist, dass das Security Monitoring durchgängig erfolgt – Endpoint, DevOps-Toolchain, Cloud-Infrastruktur und öffentliche Repositories. Man sollte zum Beispiel wissen, wenn jemand aus Versehen die Credentials für den AWS-Account in ein öffentliches Repository commited, sonst freuen sich am Ende Bitcoin Miner über günstige Compute Capacity, die andere bezahlen müssen. Moderne Threat-Intelligence-Lösungen können hierbei unterstützen und das Monitoring mit Informationen anreichern, die zum Beispiel auch aus öffentlichen Repositories gewonnen werden.

Doch was helfen Alarme, wenn sie keiner bearbeitet? Gerade Unternehmen, für die der DevOps-Ansatz, agile Softwareentwicklung und die Nutzung von Cloud-Infrastrukturen Neuland sind, vergessen oft das bestehende Security Monitoring auf diese Bereiche auszudehnen. Oft gibt es ein SOC, welches die On-Premise-Infrastruktur überwacht, eine Integration der Cloud-Plattform hat aber nicht stattgefunden. Dabei gibt es auch hierfür inzwischen praxiserprobte Lösungen. Mehr dazu demnächst in einem eigenen Artikel zu diesem Thema.

 


Bild: ©iT-CUBE SYSTEMS AG 2017

Schreibe einen Kommentar