Die Herausforderung
Als das Helvetia-Team auf dem Weg in die Cloud begann, sich von einem selbst betriebenen Entwicklungs-Stack zu lösen, musste es sich erneut auf Sicherheitsanforderungen konzentrieren und sich einen Überblick über die Risiken verschaffen, denen es durch den Betrieb selbst entwickelter Software auf einer Cloud-Infrastruktur ausgesetzt war. Die Anwendungssicherheit wurde manuell verwaltet; dazu gehörten OWASP-Prüfungen von Abhängigkeiten und externe Sicherheitsprüfungen. Da es in der Umgebung jedoch viele neue Anwendungen gab, war der Prozess zu langsam. Bei der Softwareentwicklung richtete das Team Middleware ein und benötigte ein Tool, das alle Abhängigkeiten abdeckte. Es wollte von einem „Schutz“-Ansatz mit spät angesetzten Sicherheitstests zu einer früheren „Erkennung“ im SDLC wechseln – die Sicherheit also nach links verlagern. Dafür war ein Tool erforderlich, das automatisiert Berichte erstellt. Außerdem wollte die Rechtsabteilung eine Lösung, die Transparenz über die Lizenznutzung in der Software bietet. Die Anforderungen an eine Plattform zur Erkennung umfassten:
Automatisierte Berichte zu:
Schwachstellen in verwendeten Abhängigkeiten
Lebenszyklusmanagement
Lizenznutzung
Integration in den Entwicklungszyklus
Native Unterstützung für:
Scannen von Container-Images
Scannen von Code-Abhängigkeiten
Informationen zur Behebung
Integration mit Kubernetes / Openshift
Scannen von Abhängigkeiten in ihren wichtigsten Programmiersprachen
Einhaltung von ISMS und ISO 27001
Die Lösung
Um Helvetias Laufzeit- und Entwicklungsumgebungen auf eine Cloud-Infrastruktur zu migrieren, wollte das Team einen Überblick über alle auf der Plattform laufenden Anwendungen erhalten und deren Zustand überprüfen. Nach der Bewertung von mehr als 20 Anbietern anhand ihrer Kriterien wurde klar, dass ausgereifte Plattformen wie AWS, Openshift und Snyk nötig waren, um die Helvetia-Container-Plattform aufzubauen und weiterzuentwickeln.
Snyk erfüllte die Anforderungen am besten, insbesondere in Bezug auf Lebenszyklus- und Lizenzmanagement. Außerdem erkannte das Helvetia-Team, dass Snyk wichtige Abhängigkeiten und Technologien wie Java/Maven, Typescript/NPM, Python und .NET unterstützte. Für Entwicklerinnen und Entwickler sollte das Tool einfach über eine CLI und als Integration in ihre IDE IntelliJ nutzbar sein. Wichtig war auch die Bitbucket-Server-Integration, um Repositories direkt in Bitbucket zu scannen. Letztlich war die Integration in den gesamten CI/CD-Prozess entscheidend, um jeden Build zu testen und das Team zu informieren, wenn interne Anforderungen verletzt wurden.
Darüber hinaus ermöglichte das Preismodell von Snyk Helvetia, mit einer kleinen Nutzerzahl zu starten und die Nutzung im Laufe der Zeit auszubauen. Das war wichtig, weil es den schrittweisen Wechsel in die Cloud unterstützte: Wenn Helvetia wuchs, konnte Snyk mitwachsen.
Die Wirkung
Seit der Einführung von Snyk kann das Team Lebenszyklusprobleme in selbst entwickelter Software automatisch erkennen und mithilfe der Snyk-Berichte bestimmte Abhängigkeiten überprüfen. Außerdem kann es verwendete Abhängigkeiten in seinem Lebenszyklusmanagement-Tool LeanIX auf einer höheren Abstraktionsebene erfassen. So kann es die Nutzung von Abhängigkeiten nachverfolgen und Probleme durch das Erreichen des Supportendes erkennen.
Der CTO verlangt, dass vor einem Audit ein Sicherheitstest durchgeführt wird. Dabei können zwar viele Ergebnisse zutage treten, ihre Verwaltung nimmt jedoch Zeit in Anspruch. Die naheliegenden Probleme werden jetzt mit Snyk abgedeckt, sodass das Team Penetrationstests und Audits für kritische Anwendungen priorisieren kann.
Das Helvetia-Team hat nun Transparenz über den Zustand seiner Anwendungen, und die Entwicklungsteams verfügen über Tools, mit denen sie die in ihren Anwendungen verwendeten Drittanbieterkomponenten besser bewerten können. Dadurch ist ein kontinuierlicher Sicherheitsansatz möglich geworden. In Björns Worten:
„Wir müssen während der Entwicklung eine Qualitätssicherung gewährleisten – dabei hat uns Snyk geholfen. Ohne ein Tool wie Snyk wären wir nicht so weit gekommen.“
Integration von Red Hat OpenShift mit Snyk
Das Team nutzt derzeit die Snyk-Container-/OpenShift-Integration, um laufende Container-Workloads zu scannen, und arbeitet daran, die Architektur der auf OpenShift laufenden Anwendungen zu definieren.
Da das Team von Helvetia keine Erfahrung mit AWS oder Azure hat, suchte es nach einer Plattform, die Informationen dazu liefert, was der Cloud-Anbieter tut und wie er dabei abschneidet. Das Team wollte sich nicht an einen Cloud-Anbieter binden. Wie Björn sagte: „Openshift bietet uns das. Wir haben nicht viel Erfahrung mit Containern, und Openshift ermöglicht uns, Container und integrierte Sicherheit zu verwalten. Das ist für uns als Unternehmen sehr wichtig.“
Openshift ist eine der Container-Laufzeitumgebungen, sodass das Team diese nicht selbst erstellen muss. Darüber hinaus bietet Openshift zahlreiche Vorteile, um die Entwicklererfahrung zu verbessern. Über die Cloudshift-Oberfläche können sie einige Details der zugrunde liegenden Cloud ausblenden oder herauslösen und müssen sich nicht darum kümmern, was im Hintergrund passiert. So müssen sie sich keine Sorgen um Bibliotheken und Datenbanken machen, und Entwickler erhalten mehr Transparenz.
