mindsquare.de durchsuchen

DevSecOps

Sie brauchen einen DevSecOps Berater und/oder möchten, dass wir Ihnen unser Angebot in diesem Umfeld vorstellen?

Lewin Böhlke
3. August 2021

Der Anspruch an Software, ständig verfügbar zu sein, führt zu Transformationen in der Softwareentwicklung und im IT-Betrieb. Agile DevOps-Methoden bringen immer kürzer werdenden Entwicklungszyklen mit sich, welche auf eine flexibel anpassbare Infrastruktur angewiesen sind. Dabei kommt das Thema Sicherheit oftmals zu kurz. DevSecOps zielt darauf ab, IT-Sicherheitsmaßnahmen direkt in den Prozess der Anwendungsentwicklung zu integrieren.

Was ist DevSecOps?

DevSecOps ist ein Kunstwort, welches sich aus den englischen Begriffen für Software-Entwicklung (Development), Cyber-Sicherheit (Security) und IT-Betrieb (Operations) zusammensetzt. Alternative Bezeichnungen sind z. B. Rugged DevOps oder SecDevOps, etc.

DevSecOps ist eine Weiterentwicklung des DevOps-Ansatzes und beschreibt einen kulturellen Wandel in der Software-Entwicklung. Ziel ist der Einsatz interdisziplinärer Teams und die konsequente Integration automatisierter Sicherheitsverfahren in alle Phasen des rasanten Entwicklungszyklus – vom Entwurf bis zur Implementierung und dem Betrieb.

DevOps vs. DevSecOps

DevOps vs. DevSecOps

Transformation des Entwicklungsprozesses

In traditionellen Softwareentwicklungsverfahren dauert es Monate oder sogar Jahre, bis neue Anwendungsversionen entwickelt und veröffentlicht werden. Unternehmen haben in diesem Fall ausreichend Zeit, den erstellten Code einer separaten Sicherheits- und Qualitätskontrolle zu unterziehen, um Probleme und Schwachstellen zu identifizieren. Standardmäßig geschieht dies erst in der Endphase der Entwicklung und wird von spezialisierten Teams durchgeführt.

Durch die Verbreitung von Methoden zur agilen Softwareentwicklung hat sich die Software-Entwicklung in den letzten Jahren jedoch grundlegend verändert. Automatisierung und moderne cloudnative Technologien wie Container und Microservices unterstützen Developer und erlauben die Aufteilung der Entwicklungsschritte in viele unabhängig voneinander ablaufende Prozesse. Zusätzlich sorgen DevOps-Strategien dafür, dass Entwicklungszyklen beschleunigt werden, wodurch die Zeit zwischen Releases verkürzt wird und neue Anwendungsversionen innerhalb von Wochen oder sogar Tagen verfügbar sind.

Eine DevOps- bzw. DevSecOps-Strategie umfasst folgende Phasen, die für kurze und fortlaufende Releasezyklen sorgen:

  • Development: Entwickler erstellen neuen Code und legen diesen im zentralen Repository ab.
  • Continuous Integration (CI): Es kommt zum Anstoßen der automatischen Build- und Testphase durch die CI-Pipeline. Automatisierte Skripte und Tools sorgen für die Zusammensetzung der Software-Komponenten und führen Funktionstests, Code-Analysen sowie Security-Tests durch.
  • Continuous Deployment (CD): Nach Abschluss der Tests wird die Anwendung verpackt und automatisch in der Produktionsumgebung bereitgestellt.
  • Monitoring: Die neue Anwendungsversion wird in der Produktionsumgebung überwacht, um sicherzustellen, dass sie einwandfrei funktioniert.
Under E-Book zum Thema: Was ist DevOps

E-Book: Was ist DevOps (development & operations)?

In diesem E-Book erfahren Sie mehr über DevOps und ob es für Ihr Unternehmen sinnvoll ist.

DevOps & DevSecOps

Aufgrund beschleunigter Entwicklungsphasen gelten bisherige Sicherheitspraktiken als veraltet: Die vorhandene Zeit vor dem nächsten Release reicht meist nicht aus, um den Code effektiv auf Fehler zu überprüfen. Dies führt dazu, dass die Entwicklung unnötig ausgebremst wird oder dass essentielle Sicherheitsmaßnahmen übergangen werden, wodurch das Gefahrenrisiko steigt.

Als notwendige Antwort auf diese Problematik wurde der unternehmenskulturelle DevSecOps-Ansatz entworfen. DevSecOps stellt die Evolution des DevOps-Gedankens dar und ergänzt die kollaborative Entwicklungsorganisation um das Thema Sicherheit. Dabei werden Security-Maßnahmen direkt in den Entwicklungsablauf integriert und alle Beteiligten tragen gemeinsam die Verantwortung zur Gewährleistung von Sicherheitsstandards. Durch die Berücksichtigung des Sicherheitsaspekts im Entwicklungsprozess selbst werden agile Verfahren nicht eingeschränkt und es besteht durchgängig die Möglichkeit, schnell auf Sicherheitsrisiken zu reagieren.

Merkmale von DevSecOps

Für eine erfolgreiche Umsetzung der DevSecOps-Mentalität ist es erforderlich, bisherige Lücken zwischen Entwicklungs- und Security-Teams zu schließen. Dabei muss gewährleistet werden, dass agile Entwicklungsmethoden wie Continuous Integration, Continuous Delivery und Continuous Deployment weiterhin uneingeschränkt funktionieren, während automatisierte Sicherheitsmaßnahmen direkt in den Entwicklungsprozess integriert werden. Voraussetzung dafür ist eine verlässliche Kommunikation zwischen den Bereichen Sicherheit, Entwicklung und IT-Betrieb. Verwirklichen lässt sich dies über einen interdisziplinären Ansatz, der die Silobildung zwischen den drei Bereichen unterbindet.

Anti-Silos

Wie der DevOps-Ansatz verfolgt auch die DevSecOps-Mentalität eine Umstrukturierung der Unternehmenskultur. Hierbei spielt die Vermeidung der Silobildung eine zentrale Rolle: Erst wenn alle am Entwicklungsprozess Beteiligten gemeinsam Verantwortung für die Integration von Sicherheitsmaßnahmen übernehmen, können diese durchgängig und so früh wie möglich in die CI/CD-Pipelines eingebunden werden.

Die Vermeidung spezialisierter Teams mit individuellem Zuständigkeitsbereich zugunsten eines interdisziplinären Ansatzes stellt allerdings neue Anforderungen an die Entwickler: Sie sollen befähigt werden, Tests und anfällige Nacharbeiten selbst zu erledigen und ihre Infrastruktur eigenständig zu provisionieren und zu skalieren. Unterstützung dabei liefern verschiedene Tools, die über Schnittstellen in den Entwicklungsprozess eingebunden werden können und die Bereitstellung von Infrastruktur als Code ermöglichen.

Weiterhin besteht die Möglichkeit, einen Entwickler zum “Security Champion” zu ernennen und diesen eine erweiterte Security-Weiterbildung absolvieren zu lassen. Der Security Champion übernimmt zunächst die Hauptverantwortung für Sicherheitsaufgaben, bis der Rest des Dev-Teams angemessen geschult ist.

7 Schritte zum ersten erfolgreichen DevOps Projekt

7 Schritte zum ersten erfolgreichen DevOps Projekt

In regelmäßigen Feedbackschleifen Fehler beheben und das Risiko eines fehlerhaften Endproduktes minimieren.

Shift-Left

Neben der Silovermeidung ist die Verschiebung der Sicherheit nach links ebenfalls ein zentrales Merkmal von DevSecOps. Dieser “Shift-Left” bedeutet, dass Sicherheitsmaßnahmen früher (also Richtung “links”) in den Entwicklungszyklus eingebunden werden. Dies steht im Kontrast zu traditionellen Praktiken, bei denen QS- und Security-Checks erst am Ende durchgeführt wurden.

Der Shift-Left-Ansatz bringt eine Reihe von Vorteilen mit sich: Zunächst ist es effektiver, einfacher und kostengünstiger, Veränderungen gegen Anfang des Entwicklungszyklus umzusetzen als später, wenn der Komplexitätsgrad der Software steigt. Außerdem wird so auch das Risiko zukünftiger Fehler minimiert. Darüber hinaus sinkt durch die frühe und direkte Integration von Security-Maßnahmen der Bedarf an der Durchführung aufwendiger Inspektionen, wodurch sich die gesamte Zykluszeit reduzieren lässt.

Automatisierung

Wenn es um die konkrete Umsetzung von DevSecOps geht, ist die Automatisierung sich wiederholender Aufgaben der Schlüssel zum Erfolg. Automatisierte Sicherheitstests während des Entwicklungsprozesses dienen dazu, Sicherheitslücken schon vor Implementierung der Software aufzudecken, damit Gefahrenpotenziale leichter ausgeschaltet werden können. Mithilfe automatischer Tests können Sicherheitsmaßnahmen außerdem an den Einsatz cloudnativer Technologien angepasst werden.

Um festzustellen, welche Prozesse wie zu automatisieren sind, sollten Unternehmen ihre gesamte Entwicklungs- und Operationsumgebung betrachten: Zu berücksichtigen sind z. B. Quellkontroll-Repositories, Container-Registries, die CI/CD-Pipeline, das API-Management, die Orchestrierung und Release-Automatisierung sowie die operative Verwaltung und Überwachung.

Konkrete Sicherheitsmaßnahmen können bspw. ein zentrales Identity- und Access-Management, integrierte Security Scans für Container oder die Isolierung von Microservices sein. Für automatische Sicherheitstests bei jedem Schritt der CI/CD-Pipeline lassen sich durch moderne Technologien wie RASP (Runtime Application Self-Protection) oder SCA (Software Composition Analysis) unterstützen. RASP sorgt für den kontinuierlichen Schutz von Anwendungen und meldet Angriffsversuche eigenständig, während Entwickler mit SCA alle Applikationen und sämtliche Inkremente analysieren können.

DevOps Checkliste

Checkliste: Mit dem mindsquare DevOps-Circle zur erfolgreichen DevOps-Einführung

Hier erfahren Sie, welche Themen/Aspekte für eine erfolgreiche DevOps Implementierung essentiell sind und worauf Sie dabei achten müssen.

Cloudnative Technologien

Cloudnative Technologien wie Microservices und Container ermöglichen die Entwicklung von Anwendungen in kleinen, inkrementellen Schritten. Container, die Software und dazugehörige Dateien, Konfigurationen oder Bibliotheken enthalten, haben die Abläufe in vielen Unternehmen stark verändert. Zum einen lassen sich mit ihnen dynamische und stärker skalierbare Infrastrukturen konstruieren; zum anderen können Container-Plattformen und -Orchestratoren eingesetzt werden, um die monolithische Applikationsentwicklung abzulösen. Bei der Orchestrierung von Containern werden bspw. auf Microservices basierende Applikationen auf Container-Plattformen wie Docker ausgeführt und mit Orchestratoren wie Kubernetes verwaltet.

Container und Microservices sind mittlerweile fester Bestandteil vieler DevOps- bzw. DevSecOps-Prozesse und müssen bei der Umsetzung von Sicherheitsmaßnahmen beachtet werden. Herkömmliche statische Sicherheitsmaßnahmen sind nicht ausreichend – stattdessen bedarf es dynamische Sicherheitspraktiken, die in jede Phase des Entwicklungszyklus integriert und an neue Umgebungen sowie containerspezifische Richtlinien anpassbar sind.

DevSecOps-Maßnahmen können bspw. dafür sorgen, dass Übertragungen zwischen den verschiedenen Services sicher und verschlüsselt ablaufen oder dass intergrierte Sicherheitsfunktionen von Container- und Orchestrierungsplattformen in Entwicklungsprozesse eingebunden werden. Zugangskontrollen und Authentifizierungsverfahren zählen ebenfalls zu integralen Aufgabenbereichen von DevSecOps.

DevSecOps Entwicklungszyklu

DevSecOps Entwicklungszyklus

Tools

Mittlerweile existieren moderne Tools, die explizit dafür geschaffen wurden, agile Entwicklungsumgebungen und CI/CD-Workflows zu optimieren. Für einen ganzheitlichen DevSecOps-Ansatz sollten in allen Phasen des Entwicklungsprozesses Werkzeuge für spezielle Sicherheitsmaßnahmen eingesetzt werden:

  • Build Phase:
    • Quellcodeanalyse
    • Automatic Security Testing (AST)
    • Analyse der Softwarezusammensetzung
    • Web Application Firewall (WAF)
  • Test Phase:
    • Dynamic Application Security Testing (DAST)
    • Interactive Application Security Testing (IAST)
    • Web Application Firewall (WAF)
  • Run Phase:
    • Web Application Firewall (WAF)
    • Dynamic Application Security Testing (DAST)
    • Bug Bounty
    • Bedrohungsanalyse

Eine Auflistung beliebter DevSecOps-Tools für den jeweils angegebenen Aufgabenbereich:

Anomalie-erkennung

Automatisierung

Dashboards

Threat Modeling

Testing

  • Alerta
  • Contrast Assess
  • Contrast Protect
  • ElastAlert
  • CodeAI
  • Parasoft Suite
  • Red Hat Ansible
  • StackStorm
  • Veracode
  • Grafana
  • Kibana
  • IriusRisk
  • Threat Modeler
  • OWASP Threat Dragon
  • BDD-Security
  • Checkmarx CxSAST
  • Chef InSpec
  • Fortify
  • Gauntlt
  • Synopsis Suite

Vorteile & Nachteile

Vorteile

Erfolgt die Software-Entwicklung in kleinen, inkrementellen Schritten, lassen sich Sicherheitsmaßnahmen in jede Entwicklungsphase integrieren und sind stets überprüfbar. Somit wird der Code bis zur Auslieferung der Anwendung kontinuierlich analysiert, getestet und freigegeben. Werden dabei Probleme oder Risiken identifiziert, können diese umgehend behoben werden, wodurch doppelte Überprüfungen und unnötige Neuerstellungen vermieden werden.

Agile Methoden wie Continuous Integration und Continuous Deplyoment sind also mit hohen Sicherheitsstandards möglich, ohne dass sie durch Sicherheitsvorkehrungen ausgebremst werden. Möglich wird dies durch die weitestgehende Automatisierung von Abläufen. Moderne Werkzeuge für die Analyse und den Schutz von Applikationen übernehmen wiederkehrende Sicherheitsaufgaben und entlasten Entwicklungsteams, die sich somit auf höherwertige Aufgaben konzentrieren können.

Alles in allem sorgt DevSecOps als dafür, dass Agilität und Flexibilität in der Bereitstellung neuer Anwendungen steigen, ohne dass es zu Einbußen im Bereich Sicherheit kommt. Sicherheit und kurze Releasezyklen stehen nicht mehr im Widerspruch zueinander, wie es bei der traditionellen Software-Entwicklung der Fall ist.

Nachteile

So zahlreich und bedeutsam die Vorteile auch sind: Der DevSecOps-Ansatz ist besonders zu Beginn mit großen Herausforderungen verbunden. Soll die Umsetzung gelingen, sind Zeit und konsequentes Handeln erforderlich.

Prozesse und Mitarbeiter müssen gleichermaßen auf die neuen Abläufe und Anforderungen vorbereitet werden. Es bedarf eine Bestandsaufnahme bisheriger Sicherheitsmaßnahmen und der Überprüfung, ob diese weiterhin einsetzbar sind. Alternativ muss nach neuen Lösungen Ausschau gehalten werden, in die sich Mitarbeiter dann einarbeiten müssen. Generell müssen sich Entwickler zusätzliche Kompetenzen im Security-Bereich aneignen, um DevSecOps-Maßnahmen umsetzen zu können.

Darüber hinaus ist der Erfolg des Systems maßgeblich davon abhängig, dass sich Mitarbeiter auf die neue Unternehmenskultur einlassen und Bereitschaft zeigen, zusätzlich Verantwortung zu übernehmen. Werden die Werte und Vorteile von DevSecOps nicht angemessen vermittelt und es entstehen Konflikte in der Belegschaft, kann das Konzept nicht aufgehen.

Umsetzung

Die Umsetzung von DevSecOps ist mit einem unternehmensweiten Kulturwandel verbunden. Dabei ist es wichtig, dass das Management seine Mitarbeiter angemessen auf bevorstehende Veränderungen vorbereitet und deutlich kommuniziert, welche Vorteile die Verschmelzung von Entwicklung, Betrieb und Sicherheit mit sich bringt.

Der interdisziplinäre Ansatz ist durch interne Abstimmungen und Feedback geprägt und erfordert von allen beteiligten Teams eine enge und transparente Zusammenarbeit. Zusätzlich müssen Entwickler und Ingenieure ein Bewusstsein für die neue Verantwortung entwickeln, welche sie zukünftig tragen werden. Dafür bieten sich spezielle Schulungen, Trainingsprogramme oder Teambildungsmaßnahmen an.

Bereits im Voraus sollte ein Dialog gefördert werden, bei dem alle Beteiligten ihre Anforderungen, Wünsche und Kritik frei zum Ausdruck bringen können. So kann gemeinsam ein System aufgebaut werden, welches auf die Integration der neuen Technologien und Protokolle abzielt, während Workflows auf angesprochene Bedürfnisse ausgerichtet werden können.

Haben Sie weitere Fragen zu DevSecOps, die an dieser Stelle nicht behandelt wurden? Möchten Sie Ihre Entwicklungsprozesse um den Einsatz automatisierter Tools oder cloudnativer Technologien ergänzen? Oder suchen Sie Unterstützung für die erfolgreiche Umsetzung der DevSecOps-Kultur in Ihrem Unternehmen? Unsere Berater stehen Ihnen bei allen Anliegen zum Thema DevOps und DevSecOps gerne zur Seite. Kontaktieren Sie uns für einen unverbindlichen Ersttermin.

Lewin Böhlke

Websession: DevSecOps

Sie möchten Ihre Softwareentwicklung effizienter und sicherer gestalten, wissen aber nicht genau wie? Stellen Sie uns Ihre Fragen in unserer kostenlosen Websession.

FAQ

Was bedeutet DevSecOps?

DevSecOps stellt eine Weiterentwicklung der DevOps-Unternehmenskultur dar und zielt auf die Verschmelzung von Development (Entwicklung), Security (Sicherheit) und Betrieb (Operations) im Software-Entwicklungsprozess ab. Interdisziplinäre Teams verfolgen einen ganzheitlichen Ansatz zur Bereitstellung von Anwendungen, bei dem agile Methoden, ein stabiler Betrieb und umfassende Sicherheitsmaßnahmen gefördert werden.

Was zeichnet DevSecOps-Prozesse aus?

Zentrale Merkmale von DevSecOps sind die Vermeidung von Wissenssilos durch interdisziplinäre Teams, die Verlagerung von Security-Maßnahmen nach links (also früher in den Entwicklungsprozess), die Automatisierung von Tests und Sicherheitsvorkehrungen und der Einsatz cloudnativer Technologien wie Container und Microservices.

Welche Vorteile bringt DevSecOps?

DevSecOps ermöglicht die schnelle und sichere Bereistellung neuer Software, indem Sicherheitsmaßnahmen in alle Phasen des Entwicklungsprozesses integriert werden. Dadurch werden Gefahren frühzeitig erkannt und können effizient beseitigt werden. Folglich lassen sich hohe Sicherheitsstandards auch bei agilen CI/CD-Entwicklungsmethoden einhalten.

Verwandte Know-Hows

Continuous Integration (zu Deutsch kontinuierliche Integration oder fortlaufende Integration) ist ein Konzept der agilen Software-Entwicklung und grundlegender Bestandteil des DevOps-Ansatzes. Continuous Integration beschreibt den Prozess fortlaufender Zusammenführungen von Code-Komponenten zu […]
Das Problem-Management nach ITIL sorgt dafür, dass Störungen frühzeitig erkannt und eliminiert werden. Die Hauptziele dieses ITIL-Prozesses sind die Vermeidung von Incidents und die Minimierung der Auswirkungen von Incidents, die […]
Agile Softwareentwicklung bezeichnet eine Reihe von Ansätzen zur iterativen und unbürokratischen Anwendungsentwicklung. Dabei wird ein hohes Maß an Transparenz und Flexibilität angestrebt, sodass Prozesse möglichst einfach und beweglich (also agil) […]

Passende Angebote zum Thema

DevOps und agile ABAP-Entwicklung sind Themen, die schon seit einiger Zeit diskutiert werden. Die Philosophien versprechen viele Vorteile wie schnellere Release-Zyklen, höhere Robustheit der Applikationen, geringere Fehlerzahlen und flexiblere Entwicklung. […]
Kontakt aufnehmen
Ansprechpartner
Laura Feldkamp mindsquare Kundenservice
Laura Feldkamp Kundenservice