Im idealen Entwicklungszyklus wird Software häufig aktualisiert, um neuen Anforderungen mit monatlichen, wöchentlichen oder teils sogar täglichen Releases schnell gerecht zu werden. Klassische Cyber-Security-Konzepte greifen dabei zu kurz: Neue Releases werden verzögert oder gar nicht auf Schwachstellen geprüft. In diesem Artikel erfahren Sie, wie Sie Ihre CI/CD-Pipeline mit modernen Cyber-Security-Lösungen verzahnen können, um Ihre Applikationen kontinuierlich, effizient und effektiv gegen Cyber-Attacken zu wappnen.
Grenzen traditioneller Test-Konzepte bei CI/CD-Pipelines
Der traditionelle Shift-Left-Test-Ansatz, bei dem Security-Tests zu einem möglichst frühen Zeitpunkt in der Software-Entwicklung durchgeführt werden, funktioniert bei streng linearem Vorgehen: Entwurf, Erstellung, Test, Ausführung. Die CI/CD-Pipeline hat diese Zeitachse in einen kontinuierlichen Zyklus verwandelt, in dem die Entwickler mit jeder neuen Codeversion den Code neu entwerfen, neu aufbauen, testen und bereitstellen. Die Geschwindigkeit nimmt dabei rasant zu: In einer globalen GitLab-Umfrage gaben 57 % der Entwickler an, dass sie ihren Code doppelt so schnell wie früher freigeben. 19 % sagen sogar, dass er 10-mal so schnell freigegeben wird.
Doch Veränderungen bergen auch Risiken: Die neueste Version einer Anwendung könnte neuen Code mit ungeprüften Sicherheitsschwachstellen enthalten, die Cyber-Angreifer ausnutzen können, um die Anwendung als Sprungbrett für einen Cyber-Angriff zu nutzen. Dem Verizon Data Breach Investigations Report zufolge dauert es im Durchschnitt 49 Tage, bis Unternehmen Sicherheitslücken in ihren Webanwendungen schließen.
Application Security beim Einsatz von CI/CD-Pipelines erfordert daher eine neue Herangehensweise, bei der Schwachstellen kontinuierlich aufgespürt und behoben werden. Es handelt sich dabei nicht um eine einmalige Aktion, sondern erfordert von den Entwicklern, ihre Anwendungen kontinuierlich zu testen und zu verbessern, um Sicherheitslücken konsequent zu vermeiden. Dabei empfehlen wir einen dreiteiligen Ansatz:
- Schulung der Entwickler, um Sicherheitslücken zu erkennen und sichereren Code zu schreiben
- Bedrohungsmodellierung (Threat Modelling) zur Eingrenzung der wahrscheinlichsten Risiken
- Kontinuierliche Tests von Anwendungen, um Schwachstellen zu erkennen und zu beheben
Trainieren Sie Ihre Developer für mehr Application Security
Um Anwendungen „secure by Design“ zu gestalten, muss sichergestellt werden, dass die Sicherheit mit jeder einzelnen Funktion verwoben ist. Denn das Verhalten von Angreifern hat sich verändert: Bei 25 % aller Cyber-Angriffe standen laut Data Breach Investigations Report bereits im Jahr 2022 Webanwendungen im Fokus. 86 % dieser Angriffe basierten auf gestohlenen Anmeldeinformationen, die Angreifer häufig gegen Webserver verwenden, auf denen sensible Daten gespeichert sind. In den meisten Fällen ist ein Angriff auf eine Webanwendung nur ein Schritt in einer größeren Angriffskette.
Für Entwickler ist das Beheben von Schwachstellen in bereits veröffentlichtem Code eine zeitraubende Angelegenheit. Wenn Sicherheitslücken erst spät im Software-Entwicklungszyklus entdeckt werden, bedeutet das Umschreiben grundlegender Komponenten oft, dass der gesamte darauf aufbauende Code neu geschrieben werden muss. Es gibt drei mögliche Optionen, wie Entwickler diese Situation vermeiden können:
- Implementierung einer DevSecOps-Methodik
- Threat Modelling mit einem Cybersicherheits-Berater
- Lernen, wie Angreifer zu denken, um proaktiv sichere Codes zu schreiben
DevSecOps macht Sicherheit zu einem standardmäßigen und notwendigen Teil des Softwareentwicklungsprozesses. Code-Reviews können mit einer Vielzahl von Open-Source-Skripten und -Tools automatisiert werden, um Schwachstellen aufzudecken. Die Implementierung einer DevSecOps-Methodik fördert die Zusammenarbeit zwischen Entwicklern und Sicherheitsteams, damit die Entwickler Schwachstellen in ihrem Code schnell erkennen und beheben können. Das führt zu sichereren Anwendungen ohne Verzögerungen bei der Entwicklung.
Beim Threat Modelling werden potenzielle Schwachstellen in Anwendungen aufgezeigt. Ziel ist es, Angriffsarten vorherzusagen, die Hacker mit hoher Wahrscheinlichkeit nutzen, um proaktiv Schutzmaßnahmen ergreifen zu können. In der Regel werden zunächst die Sicherheitsanforderungen für die Anwendung definiert und dann ein Anwendungsdiagramm erstellt, mit dessen Hilfe die Systemkomponenten, Datenflüsse und Sicherheitsgrenzen visualisiert werden. Der nächste Schritt besteht darin, potenzielle Sicherheitslücken zu identifizieren, die Angreifer ausnutzen könnten, bevor schließlich Abhilfemaßnahmen ergriffen werden. Je nachdem, zu welchem Zeitpunkt im Software Development Cycle sie eingeführt wird, kann die Bedrohungsmodellierung den Entwurf Ihrer Anwendung beeinflussen und potenzielle Risiken minimieren.
Darüber hinaus können Entwickler lernen, wie ein Angreifer zu denken, um Codes zu schreiben, die von vornherein sicher sind. Quellen wie die OWASP Top 10 listen die Schwachstellen in Webanwendungen auf, auf die Angreifer am häufigsten abzielen. Wenn Entwickler verstehen, wie Angreifer Schwachstellen erkennen und ausnutzen, können sie Anwendungscode schreiben, der bis in die Grundfesten sicher ist.
Obwohl das Thema Sicherheit einen immer größeren Teil ihrer täglichen Arbeit ausmacht, sind Developer nicht darin geschult, Sicherheitslücken zu erkennen und standardmäßig sicheren Code zu schreiben. Deshalb empfehlen wir regelmäßige Trainings bei erfahrenen Experten, damit Ihre Entwickler immer auf den neuesten Stand sind zu bewährten Verfahren, Tools und Techniken für die sichere Anwendungsentwicklung. Sie spielen eine wichtige Rolle bei der Verringerung des Risikos von Cyberangriffen für Ihr Unternehmen.
Penetration Tests liefern zeitpunktbasierte Ergebnisse
Der Einsatz von Penetration Tests zur Identifikation von Sicherheitslücken in Anwendungen ist zwar effektiv, erfolgt aber oft erst spät im Software-Entwicklungszyklus, wenn die Behebung von Schwachstellen im Code schwierig und zeitaufwändig ist.
Sie liefern eine Momentaufnahme der Schwachstellen zu einem einzigen Zeitpunkt. Sobald neuer Code bereitgestellt wird, sind die Ergebnisse nicht mehr aktuell beziehungsweise unvollständig, wenn durch neue Releases neue Sicherheitslücken auftreten.
Außerdem sind Penetration Tests nur schwer auf große Anwendungsbestände zu übertragen und zu teuer, um sie bei häufig neuen Code Releases immer wieder durchzuführen.
Kontinuierliche Tests für Application Security in CI/CD Pipelines
Claranet Continuous Security Testing bietet eine Lösung für dieses Problem. Das neue Konzept kombiniert automatisierte Scans, die rund um die Uhr laufen, mit gezielten manuellen Penetration Tests, so dass Sie Schwachstellen erkennen und beheben können, sobald sie entstehen. Zunächst werden alle Ergebnisse überprüft und ausgewertet. Anschließend führen erfahrene Penetration Tester weitere manuelle Tests durch, um komplexe Schwachstellen aufzudecken, die von automatischen Scannern nicht erkannt werden können.
Continuous Security Testing liefert Entwicklern und Sicherheitsteams schnelles, aber detailliertes Feedback zu Schwachstellen in Anwendungen, Web-Assets, APIs und externer Infrastruktur. So können Entwickler und Sicherheitsteams Schwachstellen erkennen und beheben, bevor der Code die Produktionsumgebung erreicht, selbst bei einer schnellen CI/CD-Pipeline. Durch häufige Tests mit kurzen Schwachstellen-Logs werden Schwachstellenmanagement und Application Security händelbar. Darüber hinaus umfasst der Service kostenlose Re-Tests der betroffenen Anwendungen, um sicherzustellen, dass die von den Entwicklern vorgenommenen Korrekturen erfolgreich waren.
Mit Continuous Security Testing können Unternehmen:
- Sicherheitslücken schneller erkennen und schließen,
- Zeitfenster für potenzielle Angriffe minimieren,
- und das Risiko von Cyber-Attacken effektiv und effizient reduzieren.
Integrierter Ansatz für Application Security „by Design“
Die Bedeutung von Application Security nimmt stetig zu. Je mehr Entwickler Sicherheit in ihr Daily Business integrieren und ihre Schlüsselrolle bei der Vermeidung von Cyber-Attacken begreifen, desto schneller verbessert sich die Resilienz von Unternehmen gegen Cyber-Attacken. Sicherheit wird dann zur Selbstverständlichkeit statt zur lästigen Hausaufgabe. Vorerst bleibt der Bedarf an speziellen Developer-Schulungen jedoch bestehen.
Aber auch auf Team- und Management-Ebene gilt es, Application Security und die dafür erforderlichen Veränderungen im Software-Entwicklungszyklus beharrlich und iterativ zu verfolgen. So schließen Sie eine Lücke, die von Cyber-Kriminellen immer häufiger ausgenutzt wird und verbessern das Sicherheitsniveau Ihrer Organisation.
Wenn Sie mehr darüber erfahren möchten, wie Entwicklerschulungen, Threat Modelling und Continuous Security Testing die Sicherheit Ihrer Webanwendungen verbessern können, nehmen Sie Kontakt mit uns auf.