Entwicklungschefs: Sicherheit ist auch Ihre Aufgabe
Das Aufkommen von Secure DevOps hat dazu geführt, dass Sicherheitsexperten um die Aufmerksamkeit und Unterstützung ihrer Entwicklerkollegen buhlen. Aber was können Führungskräfte von Entwicklerteams tun, um die Lücke zu schließen? Wir haben vier Ideen für Sie zusammengestellt, wie Sie Sicherheit in Ihre DevOps-Kultur, Workflows und Ziele integrieren können.
Das Schöne am DevOps-Modell ist, dass zwei Teams, die für Anwendungen verantwortlich sind – Entwicklung und Operations – zusammengebracht werden, um den Lebenszyklus von Anwendungen agiler und effizienter zu gestalten. Beide Seiten, die traditionell als separate Silos arbeiteten, werden als gleichberechtigte Akteure im Prozess der Anwendungserstellung und -bereitstellung anerkannt.
Die Entwicklungsabteilung muss jetzt auch das Thema Security bei jedem Aspekt des DevOps-Zyklus berücksichtigen – von der Nutzerspezifikation über das Design und die Entwicklung bis hin zum Betrieb und wieder zurück. Der Wechsel zu einem DevSecOps-Ansatz ist zwar oft nicht leicht, aber Tatsache ist: Der Erfolg eines Produkts ist auch an seine Sicherheit gebunden.
Entwicklerteams müssen Sicherheit als grundlegendes Element bei Softwaredesign und Implementierung priorisieren. Sie sollten ihre Kollegen aus Security und Business als gleichberechtigte Partner ansehen und nicht mit ihnen um die Aufmerksamkeit der Geschäftsführung konkurrieren. Bei diesem veränderten Mindset geht es nicht nur darum, die Sicherheit nach links, in Richtung Entwicklung, zu verschieben, sondern auch darum, sie aus einem allgemeineren Blickwinkel zu betrachten, der stärker auf das Geschäft ausgerichtet ist.
Hier vier Vorschläge, um dies zu erreichen:
1. Fördern und informieren statt diktieren
Entwickler wollen keinen unsicheren Code schreiben. Stattdessen führen sie letztendlich Schwachstellen in ihren Code ein, weil sie nicht über die richtigen Tools oder das richtige Wissen über Schwachstellen und sichere Muster verfügen, oder weil ihre Vorgesetzten Anreize für eine schnelle Entwicklung neuer Features schaffen, ohne besondere Rücksicht auf das Thema Security zu nehmen.
Ja, Sicherheit muss in jeden Schritt des Entwicklungs- und Bereitstellungsprozesses integriert werden. Sie sollte mit dem DevOps-Zyklus verwoben sein, und wo fängt man dabei besser an als bei den Menschen? Lassen Sie Sicherheitsfachleute eng mit den Entwicklerteams zusammenarbeiten, fördern Sie Sicherheitschampions unter den Entwicklern und halten Sie Burn-Down-Sitzungen ab, die sich auf bestimmte Arten von Sicherheitslücken konzentrieren.
2. Sicherheitstools in Entwicklungsprozesse integrieren
Ein guter Ansatz, um schnelle Innovationen und Release-Ziele zu erreichen, ohne die Sicherheit zu gefährden, ist die Integration von Sicherheitstests und -tools in jede Phase des DevOps-Zyklus. Lint sollte auf leicht erkennbare Fehler prüfen, Static Application Security Testing (SAST)-Tools sollten den Code beim Committen analysieren, Anwendungen, die für die Bereitstellung vorbereitet werden, sollten in einer Staging-Umgebung dynamisch getestet werden, und Web Application Firewalls sollten Anwendungen schützen und überwachen, sobald sie bereitgestellt wurden.
Das Engineering-Team sollte sich regelmäßig mit den Entwicklern und den Sicherheitsteams abstimmen, um neue Sicherheitsprüfungen durch Tools zu automatisieren. Die einzige Möglichkeit, zuverlässige Sicherheit zu gewährleisten, besteht darin, Tests und Kontrollen durch Automatisierung in die Pipeline zu integrieren.
3. Sicherheitsanreize in die Entwicklungsziele integrieren
Sicherheitsteams, die einen ganzen Monat oder sogar nur eine Woche für Sicherheitsaudits brauchen, verlangsamen die Entwicklung – und sorgen für einen unvermeidlichen Konflikt zwischen DevOps- und Security-Zielen. Um mit der Geschwindigkeit von DevOps Schritt zu halten, muss Sicherheit nahtloser in die Softwareentwicklungspipeline integriert werden, und dabei kommen die Entwickler ins Spiel.
Geschwindigkeit ist die neue Normalität, und Unternehmen setzen ihre Entwicklerteams unter Druck, um die digitale Transformation voranzutreiben und pandemiebedingte Anpassungen vorzunehmen. Jedes Mal, wenn Sicherheit im vergangenen Jahr als Hindernis für die digitale und mobile Expansion angesehen wurde, standen Entwicklerteams vor schwierigen Entscheidungen. Es mag zwar verlockend sein, der Bereitstellung von Code eine höhere Priorität einzuräumen als der Sicherheit, aber ohne integrierte und getestete Security kann es zu Schwachstellen kommen, die dem Unternehmen durch Produktivitätsverluste oder schlechte Kundenerlebnisse letztendlich schaden.
Um dieses Problem zu lösen, müssen Sicherheitsanreize in die Entwicklungsziele integriert werden, und Entwicklerteams müssen sicherstellen, dass alle Entwickler dazu angehalten werden, robusten Code zu schreiben und Schwachstellen zu minimieren.
4. DevOps erfordert Flexibilität in der Entwicklung
Obwohl sich Gespräche über DevOps häufig um Continuous Integration und Continuous Deployment (CI/CD) drehen, sollten DevOps-Teams den Best Practices des Security Development Lifecycle (SDL) dieselbe Aufmerksamkeit schenken, immer wieder Feedback einholen – einschließlich Berichten über Sicherheitsprodukte und Tests – und Empfehlungen in die nächste Iteration der Anwendung einfließen lassen.
Dieser Zyklus erfordert Flexibilität seitens der Entwicklerteams: Modifizierung von Prozessen und Tools zur Berücksichtigung von Feedback zur Verbesserung von Anwendungs- und Sicherheitsprüfungen. Entwicklungschefs müssen sicherstellen, dass die DevOps-Infrastruktur flexibel genug ist, um Änderungen schnell umzusetzen, und einen Genehmigungsprozess schaffen, der auf zuverlässige Änderungen und nicht auf Bürokratie ausgelegt ist. Ist der Änderungsprozess zu aufwendig, bietet er Entwicklern keinen Anreiz für eine Zusammenarbeit mit Engineering in Sachen Security, sodass die Unternehmen Gefahr laufen, dass die Entwickler den Prozess umgehen.
Ohne eine flexible und kontinuierliche Test- und Überwachungsinfrastruktur kann die Sicherheit des Codes nicht gewährleistet werden. Entwickler brauchen Entwicklungsprozesse, die die Sicherheitsprinzipien stärken und sie nicht dazu verleiten, Tests und Sicherheit zu umgehen. Denn ohne wiederholbare Sicherheitsprüfungen können alle Geschwindigkeitsvorteile von DevOps durch Sicherheitslücken und Schwachstellen zunichte gemacht werden.