Von DevOps zu DevSecOps Agile Entwicklung erfordert agile Sicherheitsprozesse

Autor / Redakteur: Hauke Moritz * / Stephan Augsten

Agile Softwareentwicklung und DevOps stehen für einen regelmäßigen Austausch zwischen IT-Teams und Fachbereichen sowie deren gemeinsame Verantwortung. Doch nur wer Sicherheitsexperten in die Prozesskette mit einbindet, kann die entstehenden Services sicher betreiben.

Anbieter zum Thema

Sichere Anwendungen lassen sich gewährleisten, indem Security-Spezialisten in Development- und -Deployment-Prozesse mit eingebunden werden.
Sichere Anwendungen lassen sich gewährleisten, indem Security-Spezialisten in Development- und -Deployment-Prozesse mit eingebunden werden.
(Bild gemeinfrei: Hack Capital / Unsplash)

IT-Sicherheit lässt sich in viele Bereiche des DevOps Lifecycle integrieren.
IT-Sicherheit lässt sich in viele Bereiche des DevOps Lifecycle integrieren.
(Bild: Computacenter)

Längst sind in Unternehmen agile Software-Entwicklungsmethoden verankert, die Infrastrukturen schnell bereitstellen und es ermöglichen, Applikationen flexibel zu verändern. Die agile Anwendungsentwicklung ist ein kontinuierlicher Prozess, der stetig neue, verbesserte Software-Releases bereitstellt und die folgenden Phasen umfasst: Plan, Build, Continuous Integration, Deployment und Operations sowie Continuous Feedback.

IT-Experten arbeiten dabei abteilungsübergreifend in DevOps-unterstützenden Organisations-Modellen zusammen. Dies wirkt sich sowohl auf die Zusammenarbeit in IT-Projekten als auch auf die Security-Anforderungen aus. Deshalb wird DevOps vermehrt um IT-Security-Aspekte erweitert und mündet in einer DevSecOps-Strategie.

Um DevOps-Prozesse in DevSecOps-Prozesse zu verwandeln, wird die Security-Abteilung in die permanenten Arbeitsprozesse integriert. So kann sie dafür sorgen, dass die Sicherheitsanforderungen berücksichtigt und gegebenenfalls gemeinsam mit den Developern neue Lösungen entwickelt werden. Typischerweise werden in diesem Zusammenhang Container-Technologien verwendet und Continuous-Integration- und -Deployment-Pipelines (CI/CD-Pipelines) aufgebaut.

Security ab dem ersten Entwicklungsschritt

Threat Modeling sorgt dafür, dass Gefahren schon vor Beginn des Entwicklungsprozesses erkannt und entsprechende Gegenmaßnahmen vorgeschlagen werden. Dazu lassen sich die Sicherheitsexperten die Anwendung genau erläutern.

Anhand von Datenflussdiagrammen und Infrastrukturbildern analysieren sie, wo potenzielle Angriffsvektoren liegen und wo Schwachstellen ausgenutzt werden könnten. Threat Modeling erfordert ein umfassendes Know-how über Infrastrukturen, Plattformen und Angriffstechniken und sollte nur von erfahren Experten durchgeführt werden.

Ein Plattform-Security-Blueprint sichert in der Planungsphase die zugrunde liegende CI/CD-Pipeline ab. Die Sicherheitsvorgaben dafür basieren auf unternehmensindividuellen Sicherheitsanforderungen und sind meist generisch. Auf Basis von Best Practices werden die Sicherheitsansprüche erfragt und Vorschläge gemacht, wie sich eine Plattform entsprechend absichern lässt.

Die daraus resultierenden Vorgaben nennt man Guardrails. Da diese „Leitplanken“ historisch bedingt für Container-Plattformen meist nicht existieren, müssen sie erst noch entwickelt werden. Handbooks übersetzen die Guardrails in konkrete Handlungsanweisungen und geben den Entwicklern vor, welche Sicherheitsanforderungen zu berücksichtigen sind, und grenzen die Verantwortlichkeiten ab.

Security ist Enabler

In der Build-Phase sorgen Sicherheitsexperten dafür, dass sich die Entwickler auf ihren Themenbereich fokussieren können. Dabei steht die Implementierung automatisierter Sicherheitslösungen im Vordergrund, dank derer Developer sicher auf ihrer Plattform arbeiten können.

Ein wirksames Mittel ist die Einführung von „Nano-Segmentation“, die dafür sorgt, dass Container nur mit den Services „kommunizieren“, mit denen dies erlaubt ist. Angreifer können dann keine Querverbindungen aufbauen. Wer sich nicht zutraut, eine entsprechende Development-Plattform zu erstellen und den Workload von Containern abzusichern, kann sich an einen IT-Dienstleister wie Computacenter wenden.

Sicherheitsprüfung per Knopfdruck

Die Continuous-Integration-Phase umfasst Embedded-CI/CD-Scanning, Secrets Management und Software Signing.

  • Das eingebettete CI/CD-Scanning prüft Container und Quellcode auf vorhandene Software-Schwachstellen und alarmiert bei einem Fund. In weiteren Ausbaustufen lässt sich der Einsatz eines unsicheren Containers komplett unterbinden.
  • Secrets Management bezieht sich auf die Bereitstellung der Anwendung, ohne dass Passwörter im Klartext in Containern, Playbooks oder Source Code enthalten sind. Bei komplexeren Ansätzen fallen auch digitale Schlüssel sowie APIs und Token unter das Secrets Management.
  • Mit Software-Signaturen lässt sich die Unveränderlichkeit eines Containers gewährleisten. Dazu werden Hash-Werte über einen Container gebildet, die Signatur sollte sich während der Laufzeit nicht ändern. Verändert sich der Wert, ist schnell erkennbar, dass etwas nicht stimmt. Ursache kann eine Attacke sein, aber auch eine schlechte Programmierung oder eine Malware. Traditionelle Sicherheitsabteilungen wollen oftmals einen Virenscanner auf der ausführenden Einheit verankern, um solche Ursachen zu erkennen. Der Virenscanner hat jedoch immer Einfluss auf die Performance der Anwendung. Durch Software Signing lässt sich auf einen solchen Scanner verzichten.

Schwachstellen aktiv erkennen

Zudem wird die Sicherheitsüberprüfung für den Source Code in die Pipeline integriert, so dass Entwickler nur noch auf ein Knöpfchen drücken müssen. Auf den sich ständig ändernden Source-Code müssen sich auch die Security-Tools einstellen. Entweder wird der Code umgeschrieben oder eine Maßnahme vorgeschaltet, die die Ausnutzung dieser Schwachstelle verhindert.

Neben der statischen und dynamischen Code-Analyse sind Tools notwendig, die bereits in der Testphase einer Anwendung Ausschau nach Sicherheitslücken halten und interaktiver mit den Entwicklern zusammenarbeiten. Ein solches interaktives Codescanning informiert Entwickler direkt über eine Schwachstelle und macht Lösungsvorschläge.

Interaktiver Lösungsansatz

Mit dem Interactive Application Security Testing arbeiten Entwickler gezielt an den Schwachstellen, die für ihren Bereich wichtig sind. Auch wenn der Test vollumfänglich sein muss, wird hier besonders darauf geachtet, dass die Prüfsoftware nicht nach Standardmethode vorgeht und zu viele Informationen auswirft.

Entwickler erhalten lediglich Alarmierungen zu Schwachstellen, die wirklich ausgenutzt werden können; das Prüfen auf False-positives entfällt. In der Operations-Phase lässt sich auch ein Runtime-Protection-Schutz einsetzen. Dieser erkennt aktiv, wenn ein Angreifer eine Schwachstelle ausnutzt und blockt diesen einfach ab.

Security Monitoring in skalierenden Umgebungen

Die hochskalierbaren Infrastrukturen machen es zudem erforderlich, DDoS-Attacken zuverlässig zu erkennen und abzufangen. Gleichzeitig muss gewährleistet sein, dass die Infrastruktur bei legitimen Anfragen skalierbar ist. Möglich ist dies mit einer DDoS-Protection in Form einer Application Firewall oder durch eine enge Zusammenarbeit mit einem vorgeschalteten Provider.

Das Security Monitoring übernimmt das Cyber Defence Center oder das Security Operations Center. Auch das Log-Management spielt in dieser Phase eine wichtige Rolle. Dabei werden die Log-Daten, die in einer Umgebung entstehen, in einem einheitlichen Tool zusammengeführt, korreliert und Security-Verstöße aufgedeckt. Anhand der Log-Daten wird analysiert, welche Verhaltensweisen legitim oder anomal sind. Entsprechend werden Incident-Response-Maßnahmen eingeleitet und die Sicherheit der Plattform gewährleistet.

Aktuelle Bedrohungslage ermitteln

In die Phase Continuous Feedback fallen der nachgelagerte Vulnerability-Management-Prozess (VM), Audit & Compliance, Risk Management und Penetration Testing. Um das Risiko eines Angriffs oder Ausfalls zu verringern, werden die Schwachstelleninformationen aus allen Bereichen – von der Infrastruktur über die Container-Plattform bis hin zur Anwendungsentwicklung – zusammengeführt. So lässt sich ableiten, wie die aktuelle Bedrohungslage für einen Service ist und wie sich dieser nachbessern lässt.

Hinsichtlich Audit & Compliance wird überprüft, ob die Guardrails und Maßnahmen aus dem Threat Modelling eingehalten werden oder ob sich die Bedrohungslage verändert hat und die Sicherheitsmaßnahmen nachzubessern sind. Dies unterstützen auch die Penetration Tests, die sich sowohl manuell als auch automatisiert durchführen lassen. Das Risk Management übernimmt eine adäquate Adressierung der erkannten Risiken.

Komplexe Security-Anforderungen bewältigen

Hauke Moritz
Hauke Moritz
(Bild: Bernd Arnold)

Oftmals sind die Security- und die Betriebsabteilungen mit diesen neuen, sehr umfassenden Anforderungen durch agile Entwicklungsmethoden wie DevOps überfordert. Die große Herausforderung liegt darin, alle notwendigen Maßnahmen zu vereinen. IT-Dienstleister unterstützen Unternehmen dabei, die richtigen Lösungen auszuwählen, so dass Entwickler sich auf ihre Arbeit konzentrieren können und ihre agile Umgebung trotzdem sicher ist.

* Hauke Moritz ist Lead Consultant im Bereich Secure Information beim IT-Dienstleister Computacenter. In dieser Rolle verantwortet er IT-Security-Projekte im Finanzsektor sowie die strategische Entwicklung des Cloud-Security-Portfolios von Computacenter. Der gelernte IT-Systemelektroniker ist seit 15 Jahren in der IT-Branche tätig, davon zehn Jahre mit einem reinen Security-Fokus. Seit 2015 unterstützt er Computacenter in der Region Mitte und seit 2017 ist er für das Cloud-Security-Portfolio international aktiv.

(ID:46160256)