Gorodenkoff - stock.adobe.com
Diese Fähigkeiten benötigt ein DevSecOps-Spezialist
Ein DevSecOps-Profi benötigt nicht nur Wissen in den Bereichen Security und DevOps. Er sollte auch kommunikationsfreudig und diplomatisch sein, um bessere Ergebnisse zu erzielen.
Wenn Sie ein guter DevSecOps-Spezialist werden wollen, dann benötigen Sie ausgeprägte Kenntnisse und umfangreiche praktische Erfahrungen. Ein DevSecOps-Profi braucht ein tiefgehendes Verständnis darüber, wie IT-Sicherheit sich auf jede einzelne Phase der Entwicklung eines Produkts oder eines Dienstes auswirkt. Genauso wichtig ist aber auch die Fähigkeit, in einem Team zu arbeiten. Desweiteren benötigt er eine hohe Kommunikationsbereitschaft.
Es handelt sich also sicher nicht um eine Aufgabe für Menschen, die lieber ungestört für sich alleine vor sich hin arbeiten. Um Probleme zu identifizieren und um für mehr Sicherheit im DevOps-Prozess zu sorgen, muss ein DevSecOps-Spezialist häufig intensiv mit Kollegen zusammenarbeiten, die ihm skeptisch gegenüber eingestellt sind, oder die nur wenige Informationen über seine Rolle haben.
Um sich aber Respekt und Kooperationsbereitschaft zu erarbeiten, benötigt er umfassende Kenntnisse der DevOps-Vorgänge und -Prinzipien. Diese Kenntnisse gehen weit über das hinaus, was ein IT-Security-Spezialist normalerweise über sie wissen muss.
Der ideale DevSecOps-Spezialist kennt jede einzelne DevOps-Stufe im gesamten Lebenszyklus eines Softwareprojekts und ist vollumfänglich daran beteiligt, sei es beim ursprünglich geplanten Design, bei der Entwicklung, dem Rollout oder bei der später notwendigen Wartung. In einer CI/CD-Umgebung (Continuous Integration, Continuous Delivery) bedeutet, dass auch zuverlässig unter hohem Druck und knappen Zielvorgaben arbeiten zu können.
Empfehlenswerte Kenntnisse für DevSecOps-Fachleute
Dazu kommt, dass ein DevSecOps-Spezialist auch umfangreiche Kenntnisse über häufig in Unternehmen verwendete Programmiersprachen wie PHP, Java, JavaScript, Ruby und Python haben muss, um reibungslos mit seinen DevOps-Kollegen zusammenarbeiten zu können.
Darüber hinaus sollte er sich mit CI/CD-Tools wie Jenkins, GitLab CI/CD, CircleCI, Puppet, Chef und Spinnaker auskennen und natürlich auch Bescheid über Docker und Kubernetes wissen. Abhängig von seinen Aufgaben sollte er sich außerdem mit den gängigen größeren Public-Cloud-Anbietern beschäftigt haben, jeweils abhängig von den in seinem Unternehmen benötigten Tools und Diensten.
Um für mehr Sicherheit im DevSecOps-Modell sorgen zu können, sollte er zudem über aktuelle Kenntnisse in den Bereichen Threat Modeling, Risk Assessment, Code Reviews und bewährten Best Practices sowie den neuesten Entwicklungen in der Cybersicherheit und gegenwärtigen Bedrohungen verfügen.
Daneben haben DevSecOps-Spezialisten eine weitere wichtige Aufgabe: Sie wählen die am besten passenden automatisierten Tools für Application-Security-Tests aus und setzen sie selbst auch ein. Es ist zudem ihre Aufgabe, andere Nutzer über die Anwendung der verfügbaren Sicherheitsfunktionen aufzuklären und ihnen bei Fragen zur Seite zu stehen.
Zertifikate sind durchaus empfehlenswert
Die meisten Softwareprojekte sind mittlerweile ein komplexer Mix aus verschiedenen eng miteinander interagierenden Teilen, seien sie menschlicher Natur oder durch Maschinen ausgelöst. Und ja, Wissen und Fähigkeiten können auch noch im Job erlernt werden.
Eine solide Ausbildung auf Basis von anerkannten Zertifikaten sorgt aber dafür, dass ein grundlegendes Verständnis der DevOps-Prinzipien und -Methoden von Anfang an vorhanden ist.
Es ist deshalb empfehlenswert, sich eine anerkannte Qualifikation oder ein DevOps-Zertifikat zu holen, um sich auch gegenüber der Konkurrenz behaupten zu können. Herausragende Beispiele sind die Zertifizierung der DevOps Foundation, das DevSecOps Engineering Certificate des DevOps Institute oder die Ausbildung zum Certified DevSecOps Professional von Practical DevOps.
Weitere relevante Trainings sind der Certified Ethical Hacker, der Certified Secure Software Lifecycle Professional, der GIAC Mobile Device Security Analyst (Global Information Assurance Certification) und natürlich ISO 27001. Cloud-Provider wie Microsoft, AWS (Amazon Web Services) und Cisco bieten ebenfalls nützliche Zertifikate an. Darüber hinaus bietet auch das SANS Institute Kurse im sicheren Entwickeln für .NET, Java und die Java Enterprise Edition an. Die Teilnehmer lernen hier, wie sie Anwendungen sicherer entwickeln und wie sich sicherheitsrelevante Bugs schneller erkennen lassen, die von anderen Programmierern in gemeinsame Projekte eingebracht wurden.
Geduld und diplomatische Fähigkeiten sind hilfreich
In einem Unternehmen, das sich für einen Wechsel von DevOps zu DevSecOps entschieden hat, muss ein DevSecOps-Spezialist in der Regel zunächst die potentiell skeptischen Programmierer davon überzeugen, dass die erweiterten Sicherheitsanforderungen sie nicht bei ihrer Arbeit behindern.
Dabei sind umfangreiche diplomatische Fähigkeiten gefordert, um den Kollegen klarzumachen, dass zusätzliche Security Code Reviews nun ein unverzichtbarer Bestandteil des Entwicklungsprozesses sind. Es wird meist auch viel Geduld und Ausdauer benötigt, um zu verdeutlichen, wie die diversen Checks und Reviews dafür sorgen können, dass sich die Gesamtergebnisse der einzelnen Entwickler verbessern.
Das kann durchaus eine erhebliche Herausforderung sein und einiges an Frustrationstoleranz erfordern. Das liegt unter anderem auch daran, dass die meisten Programmierer ihren Code so schnell wie möglich und ohne Umwege zum Laufen bringen wollen.
Wenn sie aber erst einmal die Vorteile verstanden haben, die sich für sie selbst durch das frühzeitige Finden von sicherheitsrelevanten Bugs oder Designschwächen ergeben, wird der Übergang zu einem modernen DevSecOps-Modell leichter. Hilfreich sind hier vor allem konkrete Messergebnisse und harte Fakten, die zeigen wie viele Probleme bereits entdeckt und behoben werden konnten, bevor der Code abgegeben wurde. Diese Werte sind ein gut geeignetes Mittel, um zu demonstrieren, wie sich durch die hinzugefügten Sicherheitsmaßnahmen die Produktivität des gesamten Teams verbessern lässt.
Wenn die Entwickler und die für den operativen Betrieb zuständigen Mitarbeiter die Sicherheitsauswirkungen jeder einzelnen Entscheidung in ihre Abläufe und Überlegungen integriert haben, dann erst können Sie zufrieden sein. Viele Programmierer stellen sich aber gerne der Herausforderung, sicheren Code zu produzieren. Den meisten bereitet das genauso viel Freude wie das Entwickeln neuer Features.