DevSecOps

5 Tipps für sichere DevOps

16.04.2019 von Bogdan Botezatu
Die heute oft vorhandene Entkoppelung zwischen DevOps und IT-Sicherheit ist nicht länger tragbar. Unternehmen brauchen einen neuen Ansatz, um beide Aspekte eng miteinander zu verzahnen. Lesen Sie, wie das funktioniert.

Früher waren DevOps und IT-Security in verschiedene Organisationssilos aufgeteilt. Das funktioniert heute nicht mehr. Unternehmen kommen nicht umhin, die Barrieren zwischen beiden Bereichen einzureißen. Nur so lassen sich das gegenseitige Vertrauen und die gemeinsamen Interessen eines sicheren, agilen IT-Betriebs fördern. Schließlich kann niemand ernstlich ein Interesse daran haben, mit DevOps-Praktiken ein Art "Staat im Staat" innerhalb der eigenen Organisation zuzulassen, der die Informationssicherheit eines ganzen Unternehmens unterminiert.

Sicherer Code wird für Unternehmen überlebenswichtig.
Foto: Timofey_123 - shutterstock.com

Im Folgenden sind die fünf wichtigsten Aspekte aufgeführt, an denen es zu arbeiten gilt, um die Sicherheit in der DevOps-Praxis zu etablieren und damit DevOpsSec (sichere DevOps) zu erreichen.

1. Vorteile der Pipeline von Bereitstellungen nutzen

Zu den Grundlagen des DevOps-Konzepts zählen die fortlaufende Auslieferung von Verbesserungen und die damit verbundenen Automatisierungs-Tools. Dieser vernetzte Baukasten von Werkzeugen für Entwicklung, Integration, Test, Bereitstellung und Überwachung von Code über den gesamten Lebenszyklus hinweg bildet das Herzstück eines effizienten und kontinuierlichen Integrations- und Bereitstellungsprozesses. Die Forrester-Analystin Amy DeMartine sagt, dass die IT-Sicherheit eine echte Chance hat, wenn sie die Vorteile genau dieser Pipeline nutzt, um Sicherheitstools so einzusetzen, dass sie die Sicherheitsmetriken permanent verbessern.

Das betrifft zum Beispiel die Umsetzung der kontinuierlichen Pipeline, also die Integration bestimmter Einheiten von Code- oder Applikationen in Sprints. Es braucht ein Einvernehmen, dass diese Sprints so rechtzeitig abgeschlossen werden, dass die IT-Security-Verantwortlichen sie vor dem produktiven Einsatz des Codes umfassend auf Sicherheitsmängel testen können.

Die frühzeitige Integration von Sicherheits- und Qualitätsprüfungen in den Entwicklungsprozess ist eine entscheidende Maßnahme, wenn es um Best Practices für die Anwendungssicherheit geht. Hier kann das Sicherheitsteam einen großen Nutzen schaffen, indem es hilft zu planen, wo und wie Tests und Security Gates während des Gesamtprozesses eingefügt werden können, ohne das gewünschte hohe Tempo der DevOps-Softwarebereitstellung unnötig auszubremsen.

2. Software standardisieren und auf aktuell Stand halten

Heartbleed, Shellshock und DROWN sind nur einige der bekanntesten Software-Schwachstellen, die die Welt in den zurückliegenden Jahren erschüttert haben. Sie sind die perfekten Beispiele dafür, wie Komponenten von Drittanbietern in vermeintlich harmlosen Unternehmenssoftware- und Web-Assets jedes Unternehmen gefährden können.

DevOps hat die Abhängigkeit der IT-Hersteller und Entwickler von Softwarekomponenten von Drittanbietern zusätzlich beschleunigt. Denn agile Entwicklungsteams suchen immer nach Möglichkeiten, Software noch effizienter zu entwickeln, ohne das Rad neu erfinden zu müssen. Aber damit die Entwicklungsteams wirklich robuste und sichere DevOps-Muster bieten können, muss es auch einen sicheren Weg geben, diese Komponenten von dritter Seite zu integrieren. Eine gute Option hierfür ist, eine standardisierte und validierte Komponentenbibliothek zu pflegen und diese stets zu aktualisieren, sobald neue Versionen verfügbar werden. Die Anzahl der in diesen Bibliotheken vorhandenen Versionen sollte so gering wie möglich gehalten werden.

3. Werkzeuge und Prozesse standardisieren

Häufig wuchern die DevOps-Prozesse in verschiedenen Bereichen einer Organisation organisch wie in einem vernachlässigtem Garten. Hier besteht die Gefahr, dass die Sicherheitsbemühungen zufällig oder punktuell bleiben und nur in unregelmäßigen Abständen weiter verfolgt werden. Jede Abteilung beginnt, die Dinge auf ihre Weise zu handhaben und wählt ihre individuellen Testwerkzeuge und -methoden aus.

Dann passiert, dass die Beteiligten unterschiedliche Sprachen sprechen und die Kommunikation ins Stocken gerät. Es ist zwar durchaus so, dass verschiedene Teams gelegentlich unterschiedliche Toolsets verwenden müssen, da sie mit verschiedenen Cloud-Infrastrukturen, Entwicklungssprachen und Plattformen arbeiten. Doch wann immer möglich, sollten Organisationen an dieser Stelle eine Standardisierung anstreben.

4. Überwachen mit automatisierten Audit-Protokollen

Entgegen vieler Befürchtungen von Sicherheitsspezialisten bedeuten DevOps nicht zwangsläufig, dass damit eine Wild-West-Mentalität Einzug hält. Es gibt Möglichkeiten, eine Aufgabentrennung (Separation of Duties) einzuführen und so den Überblick zu behalten, wer was anfasst. Die Beteiligten müssen dafür nur die Möglichkeiten der automatisierten Systeme nutzen, mit deren Hilfe sich die kontinuierliche Delivery Pipeline steuern lässt.

Auch wenn in vielen Fällen die alten Methoden zur Einführung von Sicherheitsfreigaben leider auf der Strecke geblieben sind, darf man einen Vorteil all dieser neueren Tools nicht übersehen: Sie generieren Audit-Trails. Solche Trails können automatisierte Sicherheitswarnungen innerhalb der produktiven Umgebung enthalten. Mit ihnen erkennt man, wenn es zu Einbrüchen und Sicherheitsvorfällen kommt. Außerdem könnten die Teams beispielsweise sensible Systeme für Sicherheitsfreigaben priorisieren. Darüber hinaus wird es dem System überlassen, den Code automatisch auszurollen. Das bedeutet, dass nur die Tools die exakten IT-Ressourcen zuweisen können.

Diese Trails können vom IT-Sicherheitsteam genutzt werden, um Anomalien zu erkennen oder um zu verstehen, wo möglicherweise etwas schief läuft. Die Anomalie-Erkennung kann aussagekräftige Informationen darüber liefern, ob Außenstehende oder Mitarbeiter an Systeme Hand anlegen, die sie besser unberührt lassen sollten.

5. Den Entwicklern die IT-Sicherheit schmackhaft machen

Security-Spezialisten sollten weniger nach sanften Wegen suchen, Entwicklern mitzuteilen, wie sie sicherer entwickeln sollten, und mehr nach effizienten Wegen, Entwickler bei ihrer komplizierten Arbeit mit hohem Zeitdruck zu unterstützen.

Zum Video: 5 Tipps für sichere DevOps

Für einen Sicherheitsexperten ist es einfach, eine schlechte Sicherheitspraxis zu erkennen. Die Versuchung ist groß, Mankos sofort auf eine Art und Weise zu benennen, die Egos verletzt. Das bringt ein Unternehmen aber nicht weiter. Als Security-Verantwortlicher sollte man sich stattdessen ganz bewusst für den Zuckerbrotansatz entscheiden, bei dem sicherer Code und robustes Design Lob und Anerkennung finden. Auch hier kann Technologie helfen, indem man sicherstellt, dass die Sicherheits-Tools so abgestimmt sind, dass sie gesicherte Komponenten zur Wiederverwendung bereitstellen und alles automatisieren, was für sie automatisiert werden kann.

Fazit: DevOpsSec sind erreichbar

Das DevOps-Konzept für eine schlagkräftige und leistungsfähige Unternehmens-IT verdient volle Unterstützung von Seiten der IT-Sicherheit. Sie wird diese jedoch kaum von heute auf morgen erhalten. Es hilft, sich den Ansatz, dass die verschiedenen IT-Organisationen produktiv zusammenarbeiten, als eine Art Migrationsprojekt vorzustellen: Von DevOps zu DevOpsSec - eine organisatorische Weiterentwicklung für eine sichere und agile IT.