Sicherheit während der App-Entwicklung – DevSecOps wird zum Industriestandard werden
Autor/Redakteur: Dr. Christian Schläger, CEO von Build38/gg
Am 13. Dezember 2020 wurde erstmals festgestellt, dass sich staatliche Hacker in einer beispiellosen Spionageaktion den Zugang zu etlichen IT-Systemen von US-Behörden verschafft hatten. Der als Solarwinds-Hack bekannte Vorfall zog weite Kreise und betraf auch staatliche Stellen außerhalb der USA, sowie unzählige private Unternehmen weltweit.
Es war eine Kaskade vermeidbarer – und im Rückblick haarsträubender – Versäumnisse, die dem wohl größten staatlich sanktionierten Spionageangriff der Geschichte den Weg geebnet hatte. Der texanische Softwareentwickler Solarwinds hatte zum Zeitpunkt des Vorfalls weder einen CISO noch einen Senior Director of Cybersecurity im Amt. Weiterhin wurde im Vorfeld der Microsoft Office 365 Account der Firma kompromittiert, was den Angreifern weitreichende Einsicht in geheime Dokumente ermöglichte.
Der Angriff war von langer Hand vorbereitet worden und nutzte Schwachstellen in der Software von Solarwinds, Microsoft sowie VMware aus, um sich unbemerkt in IT-Infrastrukturen einzunisten. Zu allem Überfluss entließ der damalige US-Präsident Trump im Jahre 2018 seinen Koordinator für Cybersicherheit. Dadurch wurde eine frühzeitige Entdeckung des Vorfalls erschwert und eine schnelle Reaktion unmöglich gemacht.
Die wichtigste Lehre des Vorfalls war, dass Cybersicherheit kein verzichtbarer Luxus ist, sondern eine zentrale Rolle bei der Softwareentwicklung spielt. Entwickler, die bei der Konzeption ihrer Softwarearchitektur nicht auf alle denkbaren Sicherheitslücken und Hintertüren achten, gefährden nicht nur den Ruf ihrer Firma, sondern im schlimmsten Fall die wirtschaftliche Existenz ihrer Kunden.
DevOps-Zyklus muss zum DevSecOps-Zyklus erweitert werden
Die bisherige Herangehensweise, eine Software schnellstmöglich zu entwickeln und erst nach abgeschlossenem DevOps-Zyklus auf etwaige Sicherheitsmängel abzuklopfen, hält den modernen Anforderungen an die IT-Sicherheit nicht mehr stand. Die einmalige Sicherheitsprüfung kurz vor dem Rollout einer Software ist ein Anachronismus, geboren aus ständigem Termindruck und einer fehlgeleiteten Kosten-Nutzen-Rechnung der – oftmals fachfremden – Entscheider. Sollte sich nämlich erst am Ende der Softwareentwicklung herausstellen, dass eine App mit kritischen Sicherheitsmängeln übersäht ist, muss im Notfall das gesamte Projekt verworfen und von Null angefangen werden.
Deutlich nachhaltiger und somit auch kosteneffizienter ist es, den verkrusteten DevOps-Zyklus aufzubrechen und ihn als DevSecOps-Zyklus von Grund auf neu zu konzipieren. Anstatt der einmaligen Sicherheitsüberprüfung am Ende, sollten Etappenchecks bereits während aller Zwischenschritte der Entwicklung stattfinden.
Jeder Abschnitt im Lebenszyklus der Systementwicklung – Planen, Erstellen, Testen sowie Bereitstellen eines Informationssystems – muss um eine abschließende Sicherheitsüberprüfung erweitert werden. Nur so können die Projektverantwortlichen garantieren, dass sich keine fatalen Fehler durch den gesamten Entwicklungsprozess hindurchziehen. Befinden sich solche Fehler nämlich im Code-Fundament, ist es extrem schwierig oder gar unmöglich diese aus dem Endprodukt zu entfernen. Das Kartenhaus der maximalen Kostenreduktion im Entwicklungsprozess fällt in dem Moment zusammen, in dem das fertige Produkt auf die digitale Müllhalde wandert. Projektverantwortliche sollten alle Phasen der Entwicklung daher mit automatisierten Sicherheitschecks versehen.