Mit DevSecOps das Security Problem in DevOps lösen

von Oktober 11, 2017

Die Kluft zwischen Entwicklung und IT-Betrieb zu überbrücken ist eine gute Sache – so weit sind wir uns vermutlich alle einig. Und auch die Benefits liegen auf der Hand: Schnellere Time-to-Market, höhere Reaktionsfähigkeit, insgesamt mehr Flexibilität für die IT. Dennoch stimmen die Ergebnisse einer kürzlich veröffentlichten Studie bedenklich (DevSecOps Global Skills Survey). Die rasante Übernahme von DevOps-Praktiken kann tatsächlich zu Problemen für die Security führen.

Schnelligkeit auf Kosten von Security?

In der Welt der Entwickler dreht sich alles um die Geschwindigkeit. Genau das verspricht DevOps: schnelle und agile Entwicklung, die sich extrem an den Geschäftsprozessen orientiert und optimal auch alle „Betroffenen“ – IT-Betrieb ebenso wie Anwender – ins Boot holt. Gartner ergänzt dazu noch die Nutzung von Automatisierungstools, die auf einer immer dynamischeren und programmierbaren Infrastruktur aufbauen.

Doch der Fokus auf Flexibilität und Schnelligkeit birgt Risiken. Unternehmen und Teams drängen Apps und Codes schnellstmöglich durch den Entwicklungsprozess – doch was sind die Kosten für solch eine Ungeduld?

Mit der heißen Nadel gestrickte Apps können leicht Angriffspunkte für Hacker werden – und dann fliegen wieder Apps wegen Sicherheitslücken aus dem App-Store. Application-Security stellt die größte Cyberbedrohung dar – verantwortlich für 90% der Sicherheitsvorfälle, so das US-Department of Homeland Security.

Kurz: Wer heute nicht das „Sec“ in seine DevOps einbaut, denkt zu kurz.

Wie Sie DevSecOps im Unternehmen verankern – ein Wegweiser

Agilität gestaltet sich in jedem Unternehmen anders. Dennoch gibt es ein paar grundlegende Maßnahmen, die dabei helfen, DevSecOps im Unternehmen zu verankern.

1. Security-Spezialisten zum Teil des DevOps Teams machen

Traditionellerweise wird das Security-Testing in relativ ausgereiften Applikationen durchgeführt. Für DevOps ist das zu langsam und beeinträchtigt den gesamten Entwicklungsprozess. Da der Code kontinuierlich in einem Dev-Shop freigegeben wird, muss die Sicherheitskomponente ebenso beständig arbeiten. Die DevOps-Entwickler benötigen ein sofortiges und genaues Feedback zu ihrem erstellten Code.

Developer sind keine Security-Spezialisten. Für viele ist die Einführung agiler Methoden eine extreme Veränderung – fehlendes Training gilt als einer der Gründe, warum manche DevOps-Ansätze scheitern. Umso größer ist die Notwendigkeit, auch den DevSecOps-Ansatz zu schulen. Fehlgeschlagene DevOps-Bemühungen führen zu Sicherheitsrisiken in der Infrastruktur.

Doch Unternehmen sind hier oft allein gelassen: gibt es schon für DevOps ein limitiertes Trainingsangebot, so gilt das noch viel mehr für DevSecOps. Erst langsam füllt sich die Lücke – mit Webinaren und Guidelines, weniger mit längeren standardisierten Kursangeboten.

Das heißt, die bestehenden Security-Teams müssen intensiver einbezogen werden: Sie müssen nicht nur ihr Wissen beisteuern, sondern auch Regeln für den Prozess erstellen, die nicht nur technologische Rahmenbedingungen, sondern auch gesetzliche und regulatorische Compliance-Anforderungen sowie das Risikomanagement erfüllen.

Hilfreich ist auch ein Assessment der Risiken:

  • Wie würde sich eine Sicherheitslücke im Entwicklungsprozess für welchen Bereich, für welche Applikation auswirken?
  • Wo muss man ansetzen, wo liegen die Prioritäten?

Auch dies wäre eine klassische Aufgabe von Security-Spezialisten. Gibt es davon zu wenige, sollten sie „Champions“ innerhalb der Entwickler-Teams ausbilden.

2. DevSecOps braucht automatisierte Dauer-Tests

Automatisiert man die Security-Tests – etwa durch Scripting, statische und dynamische Analysen und durch die Integration von Testing in die bestehenden Tools und Prozesse – so hat man die Chance, Fehler schon früh zu entdecken. Mit Continuous Testing werden nicht nur Funktionalitäten geprüft, sondern Sicherheitsprüfungen als Test-Sonderformen integriert – die Anforderungen an sicherheitsrelevante Code-Tests sind einzigartig und extrem dynamisch.

Das heißt, Sicherheitstests müssen automatisiert innerhalb einer DevOps-Toolchain ablaufen. Sobald die Entwickler ihren Code freigeben, führt ein automatisierter Prozess unterschiedliche Tests aus und setzt den Code in verschiedene Umgebungen ein. Dieser Vorgang verwendet eigenständig Skripts mit privilegierten Identitäts- und Zugriffsberechtigungen. Man braucht aber vor allem eine umfassende API, um die Softwaretests anzustoßen, zu kontrollieren und die Ergebnisse wieder in die Entwicklung einzuspielen.

Konkret können beim Testing Software Composition Analysis (SCA) verwendet werden, die Quellcode, Module, Frameworks und Bibliotheken analysieren.

Aber Vorsicht: zu viele False Positives können frustrieren und die Entwickler in Versuchung bringen, Work-arounds zu suchen – vor allem, wenn ein Security-Alarm im Test geschäftskritische Funktionen oder einen wichtigen Patch zu spät in die Produktion wandern ließe.

3. Orchestrierung und etablierte Prozesse

Wer es schafft, Security-Tests zu einem etablierten Prozess zu machen, hat schon fast gewonnen. Regelmäßige Überprüfungen von Code, Security-Trainings und Benchmarks helfen hier weiter. Sind die Reaktionsmechanismen und Vorgehenweisen einmal etabliert – Richtlinien zur regelmäßigen Code-Optimierung, Threat-modeling und feste Eskalationsstufen – wird Security zur gewohnten Routine.

Unternehmen brauchen also nicht nur eine offene Kultur, sondern auch die richtige Technologie und tragfähige Prozesse mit Kriterien für die Erfolgsmessung (KPIs), um mit DevSecOps erfolgreich zu sein.

Schnelligkeit muss also nicht auf Kosten der Sicherheit gehen. Je mehr Software erfolgskritisch wird für Unternehmen, also je weiter eine Organisation in ihrer digitalen Transformation voranschreitet und zur Software Factory wird, desto wichtiger wird die Qualität der Applikationen – und Qualität heißt eben auch Sicherheit.

Ziel muss es immer sein, das beste Produkt mit möglichst wenigen Problemen bei Funktionalität und Security in kürzester Zeit bereitzustellen.

DevSecOps wird wohl auch in Zukunft einer der spannendsten Bereiche in der Entwicklung bleiben. Ich bleibe am Thema und  bin neugierig, wie sich der Bereich DevSecOps – gerade in Deutschland – weiterentwickeln wird.