DevSecOps – der nächste Hype nach DevOps und Containern?

Nicht zuletzt nach Spectre, Meltdown und DSGVO steht bei vielen IT-Projekten die Sicherheit im Fokus. Dabei bieten gerade DevOps-Trends und Continuous Delivery mehr Chancen, um die Sicherheit von Softwaresystemen zu verbessern.

Know-how  –  53 Kommentare
DevSecOps – der nächste Hype nach DevOps und Containern?

Bei grundlegenden Betrachtungen, die helfen sollen, im Team Security-Know-how aufzubauen, geht es zumeist darum, in einem ersten Schritt ein Problembewusstsein zu schaffen. Gerade bei agil arbeitenden Teams ist es deshalb wichtig, Kontrollpunkte zu etablieren. Das Prinzip der Automatisierung aus DevOps trägt auch hier: Es gibt viele Tools, die dabei helfen, manuelle Aufgaben zu eliminieren, zum Beispiel Schwachstellen zu scannen oder Codeanalysen durchzuführen.

Bei DevOps geht es nicht nur um Entwicklungs- und Betriebsteams. Wer die Agilität und Reaktionsfähigkeit eines DevOps-Ansatzes voll ausschöpfen will, für den muss die IT-Sicherheit eine integrierte Rolle im gesamten Lebenszyklus der Anwendungen spielen. In der Vergangenheit wurde die Rolle der Sicherheit in der Endphase der Entwicklung auf ein bestimmtes Team beschränkt. Das war nicht so problematisch, als die Entwicklungszyklen noch Monate oder gar Jahre dauerten, aber diese Tage sind vorbei. Effizientes DevOps gewährleistet schnelle und häufige Entwicklungszyklen (manchmal in Wochen oder Tagen), aber veraltete Sicherheitspraktiken können selbst die besten DevOps-Initiativen zurückwerfen.


DevSecOps – die Serie

  • Grundlegendes zur Sicherheit in der Softwareentwicklung und wie Angreifer arbeiten
  • Selbst hacken und dabei lernen
  • Mit DevOps-Prinzipien kontinuierlich sicherer werden

Kontinuierlich sicherer

Im kollaborativen Rahmen von DevOps ist Sicherheit eine gemeinsame Verantwortung, die von Anfang bis Ende integriert ist. Es ist eine Denkweise, die so wichtig ist, dass einige den Begriff "DevSecOps" geprägt haben, um die Notwendigkeit zu unterstreichen, eine Sicherheitsgrundlage in DevOps-Initiativen zu schaffen.

DevSecOps bedeutet, von Anfang an über die Sicherheit von Anwendungen und Infrastrukturen nachzudenken. Es bedeutet auch, einige Sicherheitsgatter zu automatisieren, um zu verhindern, dass sich der DevOps-Workflow verlangsamt. Die Auswahl der richtigen Tools zur kontinuierlichen Integration von Sicherheit kann helfen, Sicherheitsziele zu erreichen, aber eine effektive DevOps-Sicherheit erfordert mehr als neue Tools – sie baut auf den kulturellen Veränderungen von DevOps auf, um die Arbeit von Sicherheitsteams lieber früher als später zu integrieren.

Ob man es nun "DevOps" oder "DevSecOps" nennt, es war schon immer ideal, Sicherheit als integralen Bestandteil des gesamten Softwarelebenszyklus zu sehen. Bei DevSecOps geht es um eingebaute Sicherheit, nicht um Sicherheit, die als Polizei für Software und Daten fungiert. Wenn die Sicherheit erst am Ende der Entwicklungs-Pipeline greift, können Unternehmen, die DevOps einsetzen, zu den langen Entwicklungszyklen zurückkehren, die sie ursprünglich vermeiden wollten.

Sicherheit sollte begleiten und nicht blockieren. Lieber Leitflanken aufzeigen, als Strafzettel verteilen.

DevSecOps betont die Notwendigkeit, Sicherheitsteams zu Beginn der DevOps-Initiativen einzuladen, um Informationssicherheit einzubauen und einen Plan für die Sicherheitsautomatisierung festzulegen. Es unterstreicht auch die Notwendigkeit, Entwicklern bei ihrer Arbeit bei der Sicherheit zu helfen. Dieser Prozess, bei dem Sicherheitsteams transparent Feedback und Erkenntnisse über bekannte Bedrohungen
austauschen, hilft dem gegenseitigen Verständnis. Es ist möglich, dass das auch neue Sicherheitsschulungen für Entwickler umfassen kann, da sie nicht immer ein Schwerpunkt in der traditionellen Anwendungsentwicklung sind.

Wie sieht die eingebaute Sicherheit aus?

Eine gute DevSecOps-Strategie besteht zunächst darin, die Risikotoleranz zu bestimmen und eine Risiko-Nutzen-Analyse durchzuführen. Wie viele Sicherheitskontrollen sind innerhalb einer bestimmten App erforderlich? Wie wichtig ist die schnelle Markteinführung verschiedener Apps? Die Automatisierung wiederholter Aufgaben ist der Schlüssel zu DevSecOps, da das Durchführen manueller Sicherheitschecks in der Pipeline zeitaufwendig sein kann.

Darüber hinaus ist es nötig, die engere Zusammenarbeit zwischen isolierten Teams zu fördern. Alle diese Initiativen beginnen auf der menschlichen Ebene – mit den Besonderheiten der Zusammenarbeit in Unternehmen. Diese sollten zurücktreten und die gesamte Entwicklungs- und Betriebsumgebung berücksichtigen. Dazu gehören Versionskontroll-Repositorys, Container-Registrys, Continuous-Integration- und Continuous-Deployment-Pipeline (CI/CD), API-Management (Application Programming Interface), Orchestrierung und Release-Automatisierung sowie die operative Verwaltung und Überwachung. Neue
Automatisierungstechniken haben Unternehmen geholfen, agilere Entwicklungspraktiken einzuführen, und sie haben dazu beigetragen, neue Sicherheitsmaßnahmen voranzutreiben.

Aber die Automatisierung ist nicht das Einzige in der IT-Landschaft, das sich in den letzten Jahren verändert hat: Cloud-Techniken wie Container und Microservices sind heute ein wichtiger Bestandteil der meisten DevOps-Initiativen, und die Sicherheit von DevOps muss sich anpassen, um ihren Anforderungen nachzukommen. Cloud-native Techniken eignen sich nicht für statische Sicherheitsrichtlinien und Checklisten. Vielmehr muss die Sicherheit in jeder Phase des Lebenszyklus von Apps und Infrastrukturen kontinuierlich und integriert sein:

  • Standardisierung und Automatisierung (Provisioning, Rollout, Patching)
  • zentrales Identity- und Access Management
  • integrierte Security-Scanner für Container
  • automatisches Security-Testing innerhalb der CI-Pipeline
  • Isolierung von Microservices
  • Verschlüsselung auf der Transportebene
  • Prüfung auf bekannte Schwachstellen

Der Einsatz von Tools ersetzt – wie in anderen Bereichen – nicht das Auseinandersetzen mit den Hintergründen. Wichtig ist eher, dass man sich mit den Hintergründen beschäftigt und Schritt für Schritt vorgeht. Dieses Vorgehensmodell passt auch gut zum agilen Mindset, zunehmend besser zu werden. Warum also nicht auch bei der Sicherheit? Es ist mit vertretbarem Aufwand möglich, im Rahmen von Continuous Delivery Continuous Security umzusetzen. An nahezu allen Stellen lassen sich Sicherheitsaspekte berücksichtigen. So können User-Stories für die Härtung geschrieben oder auch in fachlichen Anforderungen sicherheitsrelevante Punkte berücksichtigt werden. Es ist generell gerade in größeren Projekten ratsam, die Rolle des Security-Champions zu besetzen und gegebenenfalls einen oder mehrere Security-Sprints einzuplanen. Für das methodische Grundgerüst gibt es also verschiedene Punkte, die es zu beachten gilt:

  • Erstellen von Security Guidelines
  • Berücksichtigen von Sicherheit beim Erstellen von User Stories
  • Codescans durchführen
  • Peer-Reviews durch einen Security-Champion durchführen
  • Penetrationstests einplanen

Ganz essenziell wird dabei der Aufbau von Security-Know-how im Team. Zunächst gilt es jedoch, ein Problembewusstsein zu schaffen.