In this article
Best Practices für die Einführung von Sicherheitstools und -prozessen bei Entwicklerteams
Einführung in die Akzeptanz von Sicherheitsmaßnahmen durch Entwicklerteams
Es gilt allgemein als anerkannt, dass Anwendungssicherheit in modernen Unternehmen am besten skaliert, wenn sie als natürlicher Bestandteil des agilen Prozesses und der DevOps-Pipeline direkt in Entwicklungs-Workflows integriert wird. Das ist allerdings leichter gesagt als getan und bringt viele Herausforderungen hinsichtlich der Akzeptanz und Einführung durch Entwickler und Entwicklungsteams mit sich. Dieses Whitepaper fasst unsere Erkenntnisse aus Gesprächen mit verschiedenen Unternehmen zusammen, deren DevSecOps-Programme unterschiedlich weit entwickelt sind. Alle Personen und Gruppen, mit denen wir gesprochen haben, hatten ein gemeinsames Ziel: Entwicklungsteams sollten sichere Entwicklungspraktiken in ihre Workflows integrieren.
Wichtig ist, dass keine der Gruppen, mit denen wir gesprochen haben, auf die gleiche Weise vorgeht. Ebenso wichtig ist: Was in einem Unternehmen gut funktioniert, muss nicht unbedingt auch in einem anderen funktionieren, denn zahlreiche Faktoren können den Erfolg dieser Praktiken beeinflussen. Sie als Leserin oder Leser sollten daher die Praktiken und Ansätze in diesem Whitepaper ermitteln, die Ihrer Meinung nach am besten zu Ihrem Unternehmen, Ihrer Kultur und Ihren Teams passen.
Sicherheit für Entwickler erfordert Kultur, Prozesse und Tools
Kultur
1. Zeigen Sie Verständnis für Ihre Entwicklungsteams
Finden Sie heraus, wie offen die Teams grundsätzlich für Veränderungen sind.
Ermitteln Sie, welche Teams und Projekte wahrscheinlich moderne Technologien und Entwicklungsprozesse einführen und welche Veränderungen gegenüber eher zurückhaltend sind.
Klären Sie, wie eindeutig Projektverantwortung und Zuständigkeiten geregelt sind.
Machen Sie sich ein Bild davon, wie viel Kapazität den Teams für die Bereitstellung und andere Aufgaben wie Performance und Zuverlässigkeit zur Verfügung steht.
2. Unterstützen Sie die Priorisierung der Sicherheit durch die Unternehmensleitung
Machen Sie deutlich, wenn Prioritäten vom Unternehmen vorgegeben werden.
Sicherheitsteams müssen Entwicklungsteams dabei unterstützen, die Sicherheitsprioritäten des Unternehmens umzusetzen, statt ihnen noch mehr Arbeit aufzubürden.
3. Fördern Sie die Zusammenarbeit zwischen Entwicklung und Sicherheit
Erwägen Sie ein Security-Champions-Programm oder ein Security-Guild, um die Zusammenarbeit zu erleichtern.
Arbeiten Sie mit Entwicklern zusammen, um Vertrauen aufzubauen, statt mit Angst Ergebnisse erzwingen zu wollen.
Richten Sie gemeinsame Programme ein und legen Sie Ziele fest, auf die Sicherheits- und Entwicklungsteams gemeinsam hinarbeiten.
Klären Sie die Zuständigkeiten in den Entwicklungsteams, damit Sicherheitsanfragen gezielt an die richtigen Personen gehen.
4. Vermitteln Sie Wissen für eine sichere Entwicklung
Schulen Sie Teams, bevor Sie Programme einführen.
Bedenken Sie, dass bestimmte Schulungsinhalte nicht für alle Teams relevant sind.
Schulen Sie Teams zu den konkreten Schwachstellen, die sie betreffen, und veranschaulichen Sie diese anhand früherer Vorfälle.
Verfolgen Sie den Schulungsfortschritt mithilfe von Scorecards.
Machen Sie Schulungen nach Möglichkeit spielerisch.
5. Belohnen und würdigen Sie Erfolge
Heben Sie die Leistungen Einzelner und Verbesserungen im Bereich Sicherheit hervor.
Machen Sie Erfolge von Teams und die Einführung von Programmen sichtbar, um Fortschritte zu zeigen und weitere Teams zur Einführung zu motivieren.
Stellen Sie sicher, dass die Führungskräfte im Engineering die Leistungen anerkennen und den Teams zeigen, wie wichtig Sicherheit ist.
Bieten Sie Werbeartikel, Geschenke oder Reisen zu Sicherheitskonferenzen an, um das Bewusstsein zu stärken.
Prozesse
1. Beziehen Sie Entwickler in Entscheidungen zu Prozessänderungen ein
Finden Sie heraus, wie Entwicklungsteams heute Sicherheitspraktiken in ihre Pipeline integrieren, und richten Sie sich nach ihren Workflows.
Legen Sie bei neuen Sicherheitsregeln oder -prozessen gemeinsam mit den Entwicklungsteams Schwellenwerte und Arbeitsweisen fest.
Sorgen Sie dafür, dass Informationen und Schulungsmaterialien zu Prozessänderungen rechtzeitig bereitstehen – etwa in Blogs, Dokumentationen und Lernportalen.
Machen Sie den richtigen Weg zum einfachsten
Gestalten Sie Prozesse nicht unnötig kompliziert. Arbeiten Sie mit dem Entwicklungsteam zusammen, um sie einfach zu halten.
Sorgen Sie für eine gute Dokumentation dazu, wie andere Teams arbeiten und wie Aufgaben ausgeführt werden sollen.
Bieten Sie vorgezeichnete Wege, damit Entwickler standardmäßig die richtige Entscheidung treffen können.
Integrieren Sie Prozesse in bestehende Workflows, statt neue Workflows einzuführen.
Stellen Sie sicher, dass sich Prozesse und Tools auf Lösungen statt auf Probleme konzentrieren.
3. Schaffen Sie teamübergreifend Transparenz
Scorecards eignen sich hervorragend, um dem Unternehmen Fortschritte und den aktuellen Stand der Sicherheit mitzuteilen.
Teams sollten für die Scorecard-Ergebnisse Verantwortung übernehmen und Sicherheitsmaßnahmen anhand ihres Sicherheitsstatus und ihrer Pläne priorisieren.
Nutzen Sie die Werte der Entwickler und spielerische Ansätze, um Sicherheitsaufgaben in Sprints einzuplanen, und begründen Sie dies mit den Scorecard-Daten.
4. Einführungsgeschwindigkeit
Ermitteln Sie, welche Teams sich besonders gut anpassen und für neue Sicherheitsprogramme offen sind.
Führen Sie das Programm zuerst in diesen Teams ein – zunächst mit möglichst wenig Aufwand und mit Fokus auf Transparenz.
Ergänzen Sie die Entwicklungs-Workflows um Aktivitäten für sichere Entwicklung und konzentrieren Sie sich zunächst auf die Sicherheit schrittweiser Änderungen an ihren Anwendungen.
Führen Sie Schutzmaßnahmen in dem Tempo ein, in dem die Teams Veränderungen aufnehmen können, ohne sie zu überfordern.
Sobald die ersten Teams den Nutzen gezeigt haben, können Sie weitere Teams für die Einführung auswählen.
Nutzen Sie die Erkenntnisse aus der ersten Einführung, um die Akzeptanz zu steigern.
Tools
1. Setzen Sie auf Entwicklertools
Sicherheitstools für Entwickler müssen sich leicht selbstständig nutzen lassen: mit unkompliziertem Onboarding, intuitiven Workflows und verständlicher Dokumentation.
Tools müssen sich in bestehende Workflows integrieren lassen, darunter IDEs, Git und Pipelines.
Tools müssen umfassende APIs bieten und sich gut automatisieren lassen.
Suchen Sie nach Tools, die in der Open-Source-Community und in der Sicherheits-Community weit verbreitet sind.
Wählen Sie nach Möglichkeit ein Tool, das die gesamte Anwendung abdeckt – einschließlich eigenentwickeltem Code, Bibliotheken von Drittanbietern, Containern, IaC und mehr.
Tools sollten sich auf die Behebung und Beseitigung von Schwachstellen konzentrieren, nicht nur auf deren Erkennung und Meldung.
2. Überfordern Sie Entwickler nicht
Führen Sie neue Tools zunächst mit Fokus auf Transparenz im Unternehmen oder Team ein.
Verschärfen Sie nach und nach die Regeln und Schutzmaßnahmen mithilfe von Richtlinien, um den sicheren Entwicklungsprozess zu verbessern.
Begleiten Sie Änderungen an Tools mit Informationen, Kommunikation, Begründungen, einer guten Prozessdokumentation und Schulungen.
Konzentrieren Sie die Tools zunächst auf die Bereitstellung neuen Codes und kümmern Sie sich anschließend um offene Rückstände, um die Belastung der Entwickler zu verringern.
3. Automatisieren Sie alles
Die Integration in einen Workflow muss automatisiert werden und an der für das jeweilige Team geeigneten Stelle erfolgen.
Berücksichtigen Sie neben Tests im Workflow auch andere Anknüpfungspunkte für Tools, etwa Ticketing, Reporting und Benachrichtigungen.
Stellen Sie sicher, dass Sie Reporting-Daten aus Ihren Tools abrufen können – idealerweise über eine API, um Ihre bestehenden Dashboards und Scorecards damit zu befüllen.