Schnell finden, schnell beheben: Wie entwicklerfreundliche Sicherheit aussehen sollte

Illustration: Absmeier freepik

Heutzutage steht Sicherheit fast zwangsläufig im Widerspruch zur neuen Normalität der Softwareentwicklung. Unternehmen stehen unter dem Druck, Anwendungen immer schneller zu entwickeln, um die Erwartungen ihrer Kunden zu erfüllen, Ausfallzeiten zu vermeiden und in der Zeit nach der Pandemie wettbewerbsfähig zu bleiben. Reaktive Anwendungssicherheit kann mit modernen Entwicklungsgeschwindigkeiten kaum mehr Schritt halten. Die Folgen sind mangelnde Kontrolle bei der Softwarebereitstellung, was Hackern reichlich Gelegenheit gibt, Fehler im zugrundeliegenden Code auszunutzen.

Angesichts der wachsenden Zahl von Sicherheitslücken in anfälligen Anwendungen, ist die Verantwortung für das Thema Sicherheit weitgehend auf die Entwickler übergegangen.

Ihnen fehlt es allerdings oft an einem angemessenen Umgang mit diesen Risiken. Vor allem, wenn es darum geht, wichtige Entscheidungen zu treffen, wie diese Risiken zu beheben sind. Trotzdem stößt die Einführung zusätzlicher Sicherheitstools und -prozesse nicht selten auf enormen Widerstand. Schon allein aufgrund der zu erwartenden zusätzlichen Arbeitsbelastung für das Entwicklungsteam. Unternehmen sollten sich deshalb die Frage zu stellen: Wie können wir unser Konzept für die Anwendungssicherheit stärker an der aktuellen Situation der Entwickler ausrichten?

 

Worin bestehen die Hürden auf dem Weg zu effektiver Anwendungssicherheit?

Im Laufe der Jahre konnten wir beobachten, wie sich der Bereich der Softwareentwicklung verändert hat, um agile, flexible und schnellere Verfahren nutzen zu können. Einer dieser Trends ist das Hosten und Entwickeln von Applikationen in der Cloud. Laut der SANS 2022 DevSecOps-Umfrage ist die Zahl der Unternehmen, die mindestens ein Viertel ihrer Anwendungen On-Premises betreiben, von 83 % im Jahr 2021 auf 65 % im Jahr 2022 gesunken. Für Entwicklungsteams bietet die Umstellung auf die Cloud ganz entscheidende Vorteile. Die großen Cloud-Anbieter stellen eine Reihe von Entwickler-Tools zur Verfügung, die gut in DevOps-Praktiken integriert sind und ein leichtes, kostengünstiges Mittel zur schnellen Bereitstellung von Anwendungen darstellen. Gleichzeitig wahren sie die geschäftliche Kontinuität. Zudem sind DevOps-Praktiken inzwischen so ausgereift, dass sie branchenübergreifend die Erwartungen an die Produktionszeiten von Software und deren Aktualisierungszyklen neu definiert haben. Die Verwendung von Open Source Software, der Wechsel zu serverlosen Architekturen und die zunehmende Verbreitung von Low-Code-Plattformen haben die Entwicklung von Anwendungen beschleunigt. In vielen Unternehmen sind häufige Änderungen am Quellcode üblich, die mittels Continuous Integration / Continuous Deployment (CI/CD) Pipelines in die Produktion eingehen. Laut der obigen Umfrage räumen 61 % der Unternehmen ein, dass sie Änderungen wöchentlich vornehmen, 32 % mindestens einmal täglich oder kontinuierlich.

Sicherheit zu integrieren und DevSecOps erfolgreich einzuführen ist ein komplexer Prozess. Die für Anwendungssicherheit zuständigen Abteilungen müssen eine immense Zahl von Software-Assets und -Änderungen auf mögliche Fehler und Schwachstellen hin abklopfen. Das führt vielerorts zu Überforderung. Wird ein Fehler identifiziert, kann die Behebung für die betroffenen Entwickler enorm zeitaufwändig werden. Oft fehlt es am nötigen Problemkontext und der Möglichkeit zu priorisieren. Zudem ist es nicht möglich, schwerwiegende Fehler direkt zu melden.

Automatisierung ist der Schlüssel, Entwicklungsteams dort zu unterstützen, wo sie Hilfe brauchen. Dies wiederum wirkt sich direkt darauf aus, wie Anwendungssicherheit gestaltet werden sollte, damit Entwickler nicht ausgebremst werden und die Produktivität gewährleistet bleibt. Was sollten Unternehmen vor diesem Hintergrund tun, um entwicklerfreundliche Sicherheit zu fördern und effektive DevSecOps zu implementieren?

 

DevSecOps für skalierbare Anwendungssicherheit optimieren

Für viele Unternehmen ist es nicht ganz einfach, ein gemeinsames Verantwortungskonzept für Entwicklung und Sicherheit zu entwickeln. Tatsächlich geben 44 % der Befragten an, dass die mangelnde Akzeptanz seitens der Entwickler eine der größten Herausforderungen bei der Implementierung von DevSecOps darstellt. Um diese Vorbehalte auszuräumen, sollte man richtliniengesteuerte DevSecOps implementieren. Das heißt, sicherstellen, dass Tests, Triage und Abhilfemaßnahmen in jeder Phase des SDLC (Software Development Life Cycle) gut integriert sind und man über eine Möglichkeit verfügt, Richtlinien zu implementieren, die diese Sicherheitsprozesse über das gesamte System hinweg automatisieren.

Ein guter Ausgangspunkt ist das Einbeziehen kontinuierlicher Tests, die eine ganzheitliche Sicht auf potenzielle Probleme liefern. Die unterschiedlichen Tools zum Testen der Anwendungssicherheit legen verschiedene Arten von Schwachstellen zu unterschiedlichen Zeitpunkten im SDLC offen. Dazu zählen statische Tests der Anwendungssicherheit (SAST) und die Software Composition Analysis (SCA) zur Bewertung von Problemen bei der Erstellung, interaktive Anwendungssicherheitstests (IAST) und dynamische (DAST) als Teil der Laufzeitprüfungen. Alle diese Testmethoden tragen dazu bei, kostspielige Korrekturen nach der Fertigstellung zu vermeiden.

Ein IAST-Tool kann zum Beispiel auch wichtige Anwendungskomponenten wie APIs und Microservices überprüfen. Dies ist besonders wichtig, wenn wir über die Absicherung von Cloud-nativen Anwendungen sprechen, bei denen alle vorhandenen Funktionen, APIs und Protokolle zu potenziellen Angriffspunkten werden können. Die Implementierung von kontinuierlichen Prüfungen kann allerdings dazu führen, dass Sicherheits- und Entwicklungsteams etliche Tools zur Überwachung und Verwaltung einsetzen müssen.

An dieser Stelle kommen ASOC-Lösungen (Application Security Orchestration and Correlation) ins Spiel. Sie vereinfachen und ergänzen zwei wichtige Aspekte von DevSecOps-Initiativen: die zentrale Steuerung verschiedener Sicherheitstest-Tools und die Bereitstellung einer einzigen Datenquelle für die Analyse von Sicherheitsrisiken. Eine ASOC-Lösung soll die Prozesse innerhalb der Anwendungssicherheit optimieren. Das Besondere ist eine Funktion zur

zur Definition und Durchsetzung von Sicherheitsrichtlinien als Programmcode. Die Möglichkeit, Richtlinien zu erstellen, die kritische Software-Assets oder Programmänderungen klassifizieren, geeignete Sicherheitstools auswählen und Zeitpläne für die Problembehebung zu erstellen – all das sind wichtige Komponenten für eine automatisierte Erkennung, Triage und Reaktion. Sicherheitsrichtlinien lassen sich für verschiedene Tools, Teams und Workloads verwenden. Dies erlaubt es, Sicherheitsmaßnahmen in einem Unternehmen zu standardisieren und gleichzeitig mit der Flexibilität der Entwickler Schritt zu halten. Durch die Kodifizierung dieser Parameter bei Prüfung und Eskalation können Sicherheitsteams universelle Richtlinien festlegen. Diese lassen sich auf unterschiedliche Quellcodes anwenden und Sicherheitstests sich besser in die Arbeitsabläufe der Entwickler integrieren.

Darüber hinaus bieten ASOC-Lösungen die Möglichkeit, die Ergebnisse automatischer und manueller Sicherheitsprüfungen zu erfassen, zu normalisieren sowie den Risikolevel zu bestimmen. Sie fungieren als zentrales Repository für diese Sicherheitsdaten: Sicherheitsbefunde werden über verschiedene Tools hinweg korreliert, Duplikate entfernt und wichtige Erkenntnisse je nach ihrem Risikopotenzial eingestuft. Durch die Synchronisierung mit Ticket-Systemen gelangen die Informationen zu risikoreichen Problemen direkt an die Entwickler. Das senkt den Grad der Komplexität und verbessert die Abhilfemaßnahmen.

Eine ASOC-Lösung verschafft Ihnen einen Überblick über den Softwarebestand, zeigt Ihnen, welche Sicherheitsmaßnahmen am wirkungsvollsten sind und wie effektiv das bestehende Programm zur Applikationssicherheit tatsächlich ist. Testabläufe zu automatisieren, wichtige Erkenntnisse zu priorisieren und Fehler unmittelbar an die Verantwortlichen weiterzuleiten wirkt sich direkt positiv auf die Produktivität der Entwickler aus und verringert die Gefahr von Überlastung.

Zusammen mit einer kontinuierlichen Überprüfung sind dies die Voraussetzungen, Applikationssicherheit auf Dauer zu gewährleisten.

 

Fazit

Das Thema Anwendungssicherheit ist hinreichend komplex. Angesichts des Datenvolumens, der Vielzahl der Prozesse und Veränderungen ist es nachvollziehbar, dass Sicherheits- und Entwicklungsteams gleichermaßen überfordert sind. Die Anwendung der beschriebenen Methoden für richtliniengesteuerte DevSecOps schafft einen Rahmen für Verantwortlichkeit, Transparenz und Effizienz – und damit eine Anwendungssicherheit, die für alle funktioniert.

Natasha Gupta, Senior Security Solutions Manager Synopsys