Der Cyber Resilience Act als Chance für Entwicklungsteams
Wie Sicherheitspraktiken in den Entwicklungsprozess integriert werden können
In der schnelllebigen Welt der Softwareentwicklung stehen Agile Entwicklungsteams vor stetig wachsenden Herausforderungen. Neben direkten Kundenanforderungen gewinnen Compliance-Vorgaben immer mehr an Bedeutung. Während die Teams darauf fokussiert sind, innovative Funktionen für ihre Kunden zu entwickeln, geraten Non-Functional Requirements oft in den Hintergrund, da sie keinen direkten und offensichtlichen Nutzen für den Endbenutzer:innen bieten. Diese stellen aber oftmals gesetzliche Vorgaben dar.
Solche Compliance-Vorgaben werden zwar in Verträgen berücksichtigt, finden jedoch häufig nur schwer den Weg in die operative Umsetzung und somit in die Arbeit und agilen Prozesse des Entwicklungsteams. So ist beispielsweise seit 2018 die Datenschutz-Grundverordnung (DSGVO) anzuwenden, womit Unternehmen nicht nur Anforderungen an die Verarbeitung personenbezogener Daten erfüllen, sondern auch technische Maßnahmen ergreifen müssen, um die Datenschutzstandards einzuhalten; Aspekte, die Auswirkungen bis in die Entwicklungstätigkeit haben.
Ähnlich verhält es sich nun auch mit dem CRA der EU, der darauf abzielt, die Cybersicherheit und damit auch die Resilienz im digitalen Bereich zu verbessern. Der CRA legt dabei den Fokus auf Produkte mit digitalen Elementen, die über Hardware- oder Softwareschnittstellen mit anderen Geräten, Netzen oder Diensten verbunden werden können, wie z.B. Smartphones, Laptops, Fernseher, Kameras, Spielzeug und Haushaltsgeräte.
Kernanforderungen des CRA
Ziel ist die Gewährleistung eines hohen Niveaus der Cybersicherheit von Produkten durch die Festlegung horizontaler Cybersicherheitsanforderungen und die Berücksichtigung von „Security by Design“ während des gesamten Produktlebenszyklus, von der Planung über die Entwicklung bis hin zu Wartung und Betrieb. Die Strafen für Verstöße können bis zu 15 Millionen Euro oder bis zu 2,5 Prozent des weltweiten Gesamtumsatzes des vorangegangenen Geschäftsjahres betragen. Kernanforderungen bringt der CRA wie folgt mit:
1. Bewertung der Cybersicherheitsrisiken: Hersteller müssen umfassende Risikoanalysen durchführen, um die Cybersicherheitsrisiken ihrer Produkte zu identifizieren und zu bewerten.
2. Maßnahmen zur Risikobehebung: Identifizierte Risiken erfordern konkrete Maßnahmen zur Beseitigung und Minimierung.
3. Sicherheitsupdates und Patches: Hersteller sind dazu verpflichtet, regelmäßige Sicherheitsupdates und Patches bereitzustellen, um bekannte Schwachstellen zu beseitigen.
4. Transparenz in Bezug auf Cybersicherheitsrisiken: Hersteller müssen Informationen über die Cybersicherheitsrisiken ihrer Produkte veröffentlichen, um die Endanwender:innen zu informieren und zu sensibilisieren.
Die Implementierung dieser Compliance-Vorgaben in den Entwicklungsprozess von agilen Teams stellt eine bedeutende Herausforderung dar.
Entwicklungsteams müssen sicherstellen, dass ihre Produkte nicht nur funktional sind, sondern auch den geltenden gesetzlichen und technischen Standards entsprechen. Dabei müssen sie eine Vielzahl von Aspekten berücksichtigen, angefangen von der Datensicherheit bis hin zu Performance-Merkmalen und Vorgaben hinsichtlich Barrierefreiheit und Benutzerfreundlichkeit.
Sorgfaltspflicht bei der Integration von externen Software-Bibliotheken
Um die Cybersicherheit der Produkte zu gewährleisten, muss nun in der Softwareentwicklung eine angemessene Sorgfaltspflicht ausgeübt werden, die auch die integrierten Komponenten, wie Open-Source-Bibliotheken umfasst.
Moderne Softwaresysteme bestehen in der Regel aus einer Reihe von Komponenten und nutzen eine Vielzahl von externen Software-Bibliotheken.
Hierbei ist es entscheidend, diese einer sorgfältigen Prüfung zu unterziehen. Dies beinhaltet das Monitoring von Sicherheitsproblemen und das regelmäßige Einspielen von Updates, um potenzielle Schwachstellen zu beheben. Plattformen wie GitHub und GitLab bieten Funktionen zur Generierung von Sicherheitsberichten und automatisierten Pull-Requests für Updates. Dennoch ist es die Verantwortung der Entwicklungsteams, diese Tools aktiv zu nutzen und sicherzustellen, dass ihre Software stets auf dem neuesten Stand ist.
Ein wesentliches Element ist dabei auch die Erstellung einer Software Bill of Materials (SBOM), die die Softwarekomponenten eines Produkts mit digitalen Elementen identifiziert und dokumentiert. Die SBOM ermöglicht die Analyse von Schwachstellen, die Transparenz und Rückverfolgbarkeit der Softwarekomponenten und die Überprüfung der Konformität mit den wesentlichen Anforderungen. Sie sollte Teil der technischen Dokumentation sein und bei Nachfrage den Behörden vorgelegt werden können.
Auswirkungen auf agile Softwareentwicklungsteams
Für Softwareentwicklungsteams bedeutet der CRA eine ganzheitliche Herangehensweise und die Integration von Sicherheitspraktiken in den gesamten Entwicklungsprozess.
Die wird in der Arbeit mit agilen Softwareentwicklungsteams auf mehreren Ebenen erreicht:
1. Sicherheitsbewusstsein schaffen: Innerhalb des Entwicklungsteams ist es notwendig, Bewusstsein für Sicherheitsaspekte zu schärfen und in den Grundlagen der sicheren Softwareentwicklung zu schulen.
2. Sicherheitsanforderungen definieren: Für Produkte sollten spezifische Sicherheitsanforderungen identifiziert werden. Diese umfassen auch die Bestimmung von Bedrohungen und Schwachstellen, die für die Anwendung relevant sind.
3. Secure Coding Guidelines: Damit die Anforderungen an die sichere Softwareentwicklung in Teams berücksichtigt werden, sind Coding Guidelines zu erstellen und einzuführen.
4. Security by Design: Sicherheit ist von Anfang an in den agilen Entwicklungsprozess zu integrieren und in allen Phasen des Development Lifecycles zu berücksichtigen.
5. Automatisierte Sicherheitstests: Automatisierte Sicherheitstests, wie Penetrationstests und Schwachstellen-Scans, in der Continuous Integration/Continuous Deployment (CI/CD)-Pipeline sind im Entwicklungsprozess zu etablieren.
6. Regelmäßige Sicherheitsüberprüfungen: Das Entwicklungsteam sollte regelmäßige Sicherheitsüberprüfungen des Codes durchführen, um mögliche Schwachstellen zu identifizieren und zu beheben.
7. Sicherheitsbewertungen durchführen: Unabhängige Sicherheitsfachleute sollten Sicherheitsbewertungen in regelmäßigen Abständen durchführen, um potenzielle Schwachstellen zu entdecken.
8. Sicherheitsdokumentation: Eine umfassende Dokumentation der Sicherheitsmaßnahmen und -prüfungen sollte erstellt und auf dem neuesten Stand gehalten werden.
9. Continuous Improvements: Security Best Practice und Bedrohungen ändern sich ständig. Daher ist es wichtig, dass das Softwareentwicklungsteam kontinuierlich lernt und Maßnahmen im Prozess wie auch im technischen Tooling zur Verbesserung setzt.
Die Implementierung von Prozessen für sichere Softwareentwicklung erfordert Engagement, Schulung und ständige Anpassung, um die sich ständig weiterentwickelnden Bedrohungen zu bewältigen.
Es erfordert weiters eine enge Zusammenarbeit zwischen Entwicklungsteams, Rechts- und Compliance-Experten sowie ein kontinuierliches Engagement für Sicherheit und Datenschutz.
Schulungen, Trainings und Unterstützung für alle Rollen der agilen Entwicklungsteams können einen entscheidenden Beitrag dazu leisten, dass diese neuen Anforderungen entsprechend über den gesamten Entwicklungsprozess hinweg berücksichtigt werden. Dies sichert schlussendlich langfristig die Qualität der entwickelten Produkte und hilft, das Vertrauen der Kunden zu stärken.
Autorin:
Eva M. Silberschneider, Manager
Cyber Security & Privacy at PwC AT