Von Grund auf sichere Software, Teil 2 Shift Left umsetzen ist kein Hexenwerk

Von Christian Rentrop

Anbieter zum Thema

Mit dem Shift-Left-Ansatz wird die Sicherheit in der Software-Entwicklung deutlich priorisiert. Um Shift-Left-Security erfolgreich zu etablieren, müssen allerdings einige Maßnahmen ergriffen werden.

Im Zuge der Shift-Left-Strategie liegt das Augenmerk von Beginn an und durchgängig auf der Sicherheit.
Im Zuge der Shift-Left-Strategie liegt das Augenmerk von Beginn an und durchgängig auf der Sicherheit.
(Bild: TBIT / Pixabay )

Software-Entwicklung durchläuft typischerweise vier Prozesse: Design, Entwicklung, Testen sowie das Release. In aller Regel werden Sicherheitsprobleme dadurch erst sehr spät während des Testings im Entwicklungsprozess erkannt und müssen aufwändig behoben werden.

Natürlich ist Code nie perfekt, doch naturgemäß wächst die Komplexität der Behebung erkannter Probleme mit fortgeschrittener Entwicklung. Software-Unternehmen haben bei der Entdeckung von Sicherheitsproblemen mit erheblichem Aufwand zu kämpfen, möglicherweise bis hin zu einer Verschiebung des anvisierten Auslieferungsdatums.

Das muss nicht sein: Der Shift-Left-Ansatz bei der Software-Entwicklung hilft dabei, diese Schwierigkeiten von vornherein zu vermeiden – und dadurch Zeit und Kosten zu sparen.

Sicherheit „nach links“ verschieben

Auf dem Prozess-Zeitstrahl sind Sicherheits-Tests Teil des Testings und daher wie gesagt eher spät im Entwicklungsprozess eingebunden. Die Idee ist es also, diese Sicherheits-Checks bei der Shift-Left-Security möglichst weit nach links, also an den Anfang des Prozesses zu verschieben. Optimal wirkt sich hier der klassische „Security by Design“-Ansatz aus.

Viele Sicherheitslücken entstehen allerdings erst während der eigentlichen Entwicklungsphase, etwa durch Fehler im Code. Genau hier setzt die Shift-Left-Idee an: Der Code wird dabei von Grund auf sicher entwickelt und regelmäßig auf mögliche Fehler und Lücken überprüft, so dass Sicherheitsprobleme bereits bei der Entwicklung behoben werden.

Ziele definieren

Vor der Umsetzung des Shift-Left-Ansatzes steht natürlich eine klare Formulierung der Ziele: Was soll überhaupt erreicht werden? Und wann und an welchen Stellen muss der Prozess verändert werden, um maximal zuverlässigen Code bei minimalem Aufwand für die Revision zu erzielen?

Wichtig ist, dass der Shift-Left-Ansatz ganzheitlich erfolgt, also vom Design über die Entwicklung und das Management bis zum Produkt-Marketing alle an einem Strang ziehen und das Ziel „Sicherheit“ vor Auge haben. Das ist nur durch häufiges und frühes Testing sowie das Einsetzen von automatischen Prozessen möglich. Gleichzeitig sollten die Ziele dynamisch bleiben, um zum Beispiel andere Ziele erreichen zu können.

Hierarchien überprüfen

Um den energie- und kostensparenden Shift-Left-Ansatz erfolgreich zu etablieren, bedarf es einiger Maßnahmen in der Unternehmenskultur. So kann zum Beispiel ein erfolgreich umgesetztes DevOps-System samt agiler Arbeitsmethoden maßgeblich bei der Umsetzung von Shift-Left-Security helfen, da die Entwickler mehr in den Gesamtprozess eingebunden werden.

Gleichzeitig ist es wichtig, Zuständigkeiten zu verschieben: Sicherheitsfragen müssen tief in den Feedback-Prozess eingebunden werden und jeder einzelne Entwickler muss für seinen Code verantwortlich sein. Das beinhaltet natürlich auch ein Hinterfragen bestehender Hierarchien, um sowohl eine gute Kommunikation als auch ein Gefühl der Verantwortlichkeit – nicht nur beim Entwickler, sondern auch im Management – zu erzielen.

Qualitätsanalyse möglichst frühzeitig einsetzen

In diesem Zusammenhang ist es essenziell, die Qualität des geschriebenen Codes möglichst früh zu überprüfen. Die Einbindung der Qualitätsanalyse an frühen Punkten der Software-Entwicklung kann dafür ebenso hilfreich sein wie eine Mehraugen-Kontrolle des Codes, etwa durch die Bildung von Mikro-Teams aus mehreren sich gegenseitig überprüfenden Entwicklern, die Code idealerweise selbst analysieren, kontrollieren und optimieren.

Durch Nennung klarer Zuständigkeiten innerhalb dieser Teams lassen sich Code-Fehler und damit potenzielle Sicherheitslücken eliminieren, ehe sie weitergereicht oder eingepflegt werden. Wichtig dabei ist, dass alle an einem Projekt beteiligten Personen ein Auge für Qualität entwickeln und das entsprechend kommuniziert wird. Entdeckte Sicherheitsprobleme sollten an jeder Stelle des Produktionsprozesses einen Alarm auslösen können.

Test-Tools erleichtern den Schritt nach links

Die Umsetzung des großen Schritts nach links kann zusätzlich durch Tools unterstützt werden. Der Einsatz von agilen Frameworks ist dabei hilfreich für eine erfolgreiche Umsetzung. Hinzu kommen automatische Werkzeuge, die für das Testing hilfreich sind: SAST (Static Application System Testing) hilft zum Beispiel dabei, Sicherheitsprobleme direkt im Programmiercode aufzuspüren, Tools für DAST (Dynamic Application Security Testing) suchen nach Lücken in der laufenden Applikation.

Beide Elemente lassen sich auch unter dem Hut des sogenannten Interactive Application Security Testing (IAST) zusammenbringen. Zudem können Abhängigkeiten gescannt werden (Dependency Testing), was gerade bei Einbindung von Open-Source-Bibliotheken hilfreich sein kann.

Jetzt Newsletter abonnieren

Täglich die wichtigsten Infos zu Softwareentwicklung und DevOps

Mit Klick auf „Newsletter abonnieren“ erkläre ich mich mit der Verarbeitung und Nutzung meiner Daten gemäß Einwilligungserklärung (bitte aufklappen für Details) einverstanden und akzeptiere die Nutzungsbedingungen. Weitere Informationen finde ich in unserer Datenschutzerklärung.

Aufklappen für Details zu Ihrer Einwilligung

Aufwändig, aber lohnend

Mit der Zahl der eingesetzten Überwachungsmethoden und automatisierten Testings steigt naturgemäß der Aufwand während des eigentlichen Codings einer Anwendung. Dieser zusätzliche Einsatz der Shift-Left-Security-Idee zahlt sich jedoch mit zunehmender Projektdauer aus: Sicherheitsfehler werden frühzeitig entdeckt und können kostensparend eliminiert werden.

Ein weiterer Nachteil ist allerdings, dass es bei erhöhtem Testing auch zu einer erhöhten Rate von falsch-positiven Ergebnissen kommt, die ihrerseits mit der Zeit zu einer gewissen „Fehler-Müdigkeit“ der Entwickler führen kann. Hier hilft vor allem eine Priorisierung der Fehler – automatisch oder manuell – die dabei hilft, dass sich die Entwickler und Teams auf das Wesentliche konzentrieren.

Shift-Left-Security ist ein guter Schritt

Insgesamt stehen dem Shift-Left-Ansatz bei der Sicherheitsüberprüfung von Software vor allem organisatorische Fragen im Weg. Einmal erfolgreich geplant, in der Team- oder Firmenkultur verankert und mit der notwendigen Automatisierungstools unterstützt, sorgt Shift-Left-Security dafür, dass Softwareprodukte deutlich schneller, zuverlässiger und vor allem sicherer gestaltet werden können. Der erhöhte Aufwand „links“ auf dem Zeitstrahl amortisiert sich spätestens im direkten Vergleich mit dem klassischen Testing- und Security-Ansatz.

(ID:48114565)