Secure Development im Entwicklungsprozess verankern

So schafft es Security vom Backlog in den Entwicklungsalltag

Security Gesetze wie der Cyber Resilience Act oder KRITIS haben das Thema Secure Development mittlerweile gesetzlich verankert und fordern umfangreiche Maßnahmen im Entwicklungsprozess. In den Entwicklungsabteilungen und im Business stößt das noch auf wenig Gegenliebe. „Wenn ich das alles umsetze, kann ich aufhören zu entwickeln“ sind oftmals die ersten, nicht unberechtigten Reflexe.

Secure Coding Schulungen lösen zwar ein Teil des Problems, verpuffen aber gänzlich in ihrer Wirkung, wenn sie zur falschen Zeit erfolgen.

Secure Coding ≠ Secure Development

Eine Secure Coding Schulung macht noch lange keinen Secure Development Prozess. Secure Coding erklärt, wie man in einer bestimmten Programmiersprache oder einem Framework sicheren Code schreiben kann. Secure Coding Schulungen sind meist sehr spezifisch und geben konkrete Code-Beispiele. Das ist wichtig, kommt aber erst in der Implementierungsphase zum Tragen. Die anderen Phasen und das übergreifende Konzept des „Secure Software Development Lifecycle (SSDLC)“ werden dabei i.d.R. gar nicht adressiert. Und genau hier entsteht das Problem.

Secure Development geht weit über das reine Schreiben von sicherem Code hinaus und betrifft den gesamten Softwareentwicklungslebenszyklus (SDLC, Secure Development Life Cycle). Security wird von Anfang an mitgedacht (Security by Design) und in jeden Prozessschritt integriert – vom Requirements Engineering und die Designphase über die Implementierung bis hin zur Validierung, dem Testing, Bereitstellung und Wartung. Auch nicht-technische Aspekte wie sichere Designprinzipien, Bedrohungsmodellierung, Risikobewertung etc. stehen im Fokus.

Folglich findet auch mit Secure Coding alleine kein echtes Secure Development statt.

Secure Development Training

Übrigens: Unser Cyber Lab E-Learning für Developer ist eine Secure Development Schulung, die Secure Coding Schulungen hervorragend ergänzt und in den nötigen Gesamtkontext einbettet.
Secure Development Training für Entwickler

Erst Verständnis, dann Aufgaben

Secure Development Schulungen wie das Cyber LAB E-Learning für Entwickler schaffen die richtige Basis. Nach der Schulung verstehen Product Manager, Application Owner, Software-Architekten und Entwickler, warum Secure Development elementar wichtig ist und welche Komponenten dafür benötigt werden.

Der Erfolg ist enorm und die Bereitschaft, in Sicherheit zu investieren, steigt signifikant. Allerdings muss diese Begeisterung anschließend entsprechend kanalisiert werden.

Best-Practise-Vorgehen

Folgendes Vorgehen hat sich bei unseren Kunden als erfolgsversprechend erwiesen:

Alle relevanten Personen absolvieren das Cyber LAB E-Learning für Entwickler. Damit haben alle den gleichen Kenntnisstand über den Secure Software Development Lifecycle und den Nutzen.

Anschließend setzen sich das Entwicklungsteam und weitere Stakeholder im Rahmen einer Retrospektive zusammen. Diese sind innerhalb agiler Frameworks wie SCRUM fester Bestandteil des Entwicklungszyklus, aber auch Teams, die nicht agil arbeiten, können von einer Retrospektive oder einem ähnlichen Austauschformat profitieren.

Während einer Retrospektive sollten die Erkenntnisse aus der Schulung frei diskutiert werden:

  • Was läuft bisher aus Secure Development – Sicht gut und sollte beibehalten werden?
  • Was läuft noch nicht so gut oder ist noch gar nicht vorhanden?
  • Welche Maßnahmen müssen ergriffen werden, um die Lücken Schrittweise zu schließen?

Diese wichtigen Erkenntnisse dürfen anschließend nicht in Confluence oder auf einem Whiteboard versauern, sondern sollten als konkrete Work Items mit Verantwortlichkeiten im DevOps hinterlegt werden. Wir empfehlen, die Rolle eines „Secure Development Champs“ zu etablieren. Diese Person trackt den Security Backlog und orchestriert die verschiedenen Aufgaben. Sie kann bzw. sollte zyklusweise (beispielsweise halbjährlich oder jährlich) rollieren, damit im Laufe der Zeit verschiedene Personen im Team die „Security Brille“ aufsetzen.

Ein Praxisbeispiel:

Im Rahmen der Retrospektive fällt auf, dass sowohl Threat Modeling als auch Code Reviews oft zu kurz kommen, manchmal sogar komplett unter den Tisch fallen, oder erst am Ende der Entwicklung noch schnell in die Applikation „hineingeschraubt“ werden.

Die Gründe dafür hat das Team schon identifiziert: Zeitmangel. Das Product Management plant die Release-Zyklen oft zu knapp.

Zukünftig sollte die nötige Zeit für Threat Modeling und Code Review bereits vor einem Projekt mit eingeplant werden.

Falls die Product Manager ebenfalls das Cyber LAB E-Learning für Entwickler absolviert haben, werden sie diesem Vorschlag positiv gegenüberstehen, weil sie die unbedingte Notwendigkeit und den Nutzen verstehen. Falls nicht, kann das ein sehr zäher Prozess werden, denn Security konkurriert mit deren Primärzielen „neue Features“ und „Geschwindigkeit“.

Es ist also sehr wichtig, alle Stakeholder im Development-Prozess zu überzeugen, insbesondere auch das „Business“. Ein gemeinsames Verständnis schafft einen guten Mittelweg zwischen Business- und Security-Anforderungen. Eine Secure Coding Schulung kann das unmöglich leisten, sie hat ein völlig anderes Ziel.

Zurück zu unserem Praxisbeispiel: das Team hat in der Retrospektive festgestellt, dass im Rahmen der Software-Releases keine oder zu wenig Code Reviews durchgeführt werden. Der Product Manager ist sich glücklicherweise auch bewusst, dass für zukünftige Releases 5% mehr Zeit eingeplant werden muss, um die Reviews umzusetzen.

Nun geht es darum, die Code Reviews in die bestehenden Prozesse zu verankern. Der Security Champ könnte nun Tools für eine statische Code Analyse selbst evaluieren oder in Auftrag geben. Damit kann ein Teil der Reviews automatisiert und das Team entlastet werden. Ab einer bestimmten Risikostufe der Software werden zusätzlich manuelle Code Reviews durchgeführt. Im finalen Prozess soll zukünftig keine Software mehr produktiv gesetzt werden, ohne eine Risikoabschätzung und die entsprechenden Code Review durchgeführt zu haben.

Allein dieses Beispiel zeigt, dass die Integration von Security in den Development Prozess kein Sprint, sondern ein Marathon ist. Die Themen sind zu vielschichtig und zu komplex, als das sich das nebenbei erledigen lässt. „Implementing SSDLC“ (Secure Software Development Life Cycle) hat das Zeug zu einem Epic mit vielen User Stories, Work Items und Storypoints. Die Priorität muss gemeinsam mit dem Business geplant werden. Manche Themen wir statische Codeanalysen, Dependency Tracker oder Secure Coding Schulungen sind fast schon „Quick Wins“ und reduzieren signifikant typische Schwachstellen in Software. Andere können Monate oder Jahre in Anspruch nehmen. Aber der Weg lohnt sich: jeder Schritt in Richtung Secure Development reduziert auch schrittweise die Risiken.

Zusammenfassung

Secure Development ist mittlerweile ein „must have“, sowohl auf Grund gesetzlicher Vorschriften als auch der Bedrohungslage. Aber niemand wartet auf Security und freut sich, weder im Business noch in der Entwicklung. Deshalb ist es elementar, dass alle Beteiligten verstehen, dass Secure Development kein „Compliance Quatsch“ ist, sondern ein elementares Konzept, das zur Grundeinstellung jedes Beteiligten werden sollte. Secure Development Schulungen wie das Cyber Security LAB E-Learning für Entwickler können einen großen Beitrag für dieses Verständnis schaffen. Im Anschluss sollte die damit erzeugte positive Energie in konkrete Projekte und Work Items übersetzt werden und mit dem Business gemeinsam priorisiert werden.

Sie möchten selbst testen?

Überzeugen Sie sich vom Cyber LAB mit einem kostenfreien Demozugang.
Demozugang anfordern

Updates zu den Cyber LABs

Je mehr Security-Touchpoints Sie in den Alltag Ihrer Entwicklungsabteilungen einbringen können, desto besser. Eine Secure Development Schulung und regelmäßiger Austausch zu Security sind unverzichtbar. 

Deshalb arbeiten wir auch an neuen Cyber LAB Trainingsinhalten, die bekanntes auffrischen und neue Themen ergänzen, sowohl für Administratoren, als auch für Entwickler:

Unser neues Cyber Lab Refresher-Format verbindet das Beste aus beiden Welten: Grundlagen-Auffrischung und neuen Input.

 Inhalte der Update-Schulung Cyber LAB E-Learning für Administratoren: 

  • Cloud Security
  • Defense in Depth
  • Die Bedeutung von EDR in der Erkennung von Angriffen 
  • Backups als eiserne Versicherung
  • Active Directory Security
  • und einiges mehr

 Inhalte der Update-Schulung Cyber LAB E-Learning für Developer: 

  • Cloud Security
  • Supply Chain: Libraries
  • SSO - SAML / Oauth2
  • DevSecOps
  • Infrastructure as code 
  • und einiges mehr

Die Update-Kurse werden Anfang 2024 verfügbar sein.