DevSecOps 27.10.2021, 00:00 Uhr

Sicherheitsbewusstsein ins Team tragen

Unternehmen befinden sich in einer Zwickmühle: schnelles Bereitstellen von neuen Funktionen und ausreichender Sicherheit, um Nutzerdaten zu schützen. DevSecOps kann hier in beiden Richtungen helfen.
(Quelle: dotnetpro)
Die Ergebnisse des DevSecOps Report 2021 von GitLab zeigen, dass ein Großteil der Unternehmen in der Vergangenheit von Cyber-Attacken betroffen war:
  • Mehr als 70 Prozent der Unternehmen hat kritische Daten durch Cyber-Attacken verloren.
  • Ca. zwei Drittel der Unternehmen haben Betriebsstörungen erfahren.
  • Mehr als 60 Prozent der Unternehmen haben negative Auswirkungen auf ihre Marke festgestellt.
Bei diesen Zahlen wäre es nicht überraschend, wenn Unternehmen ihre Anstrengungen zur Verbesserung der Sicherheit erhöhen würden. Mehr als die Hälfte der befragten Teams gaben jedoch an, Sicherheitstests in der Vergangenheit übersprungen zu haben, um Deadlines einzuhalten. Die Herausforderung für Unternehmen besteht darin, dass das traditionelle Vorgehen in Bezug auf Sicherheit – nämlich ausführliche, nachgelagerte Tests und anschließende Bugfixes – nicht dazu geeignet ist, schnelle Änderungen zu releasen. Der DevSecOps Report liefert dazu diese Zahlen:
  • 99 Prozent der Applikationen enthalten mindestens vier Verwundbarkeiten, 80 Prozent haben sogar mehr als 20.
  • Mehr als 90 Prozent der Teilnehmenden sagten, dass Sicherheits-Scans länger als drei Stunden laufen, bei ca. ein Drittel laufen sie sogar länger als acht Stunden.
  • Bei mehr als zwei Drittel der Teilnehmenden dauert es mehr als vier Stunden, um eine Verwundbarkeit zu beheben.
Eine Lösung, um Sicherheitstests direkt in die Entwicklungsprozesse einzubinden und dadurch keine langwierigen, nachgelagerten Tests benutzen zu müssen, ist der sogenannte Shift-Left-Ansatz, bei dem Testfälle möglichst frühzeitig im Entwicklungsprozess geschrieben werden.

Shift-Left: Entwickelnde in IT-Sicherheit ausbilden

Der State of Cybersecurity 2021 Bericht der ISACA hat ergeben, dass folgende Angriffsarten sehr verbreitet sind:
  • ungepatchte Systeme
  • falsch konfigurierte Sicherheitssysteme
  • kaputte Authentifizierung und Autorisierung
  • mangelndes Logging und Monitoring
Alle diese Angriffsarten sind in den OWASP Top 10 zu finden. Das ist eine Liste des Open Web Application Security Project (OWASP), die weit verbreitete Angriffsarten auf Webanwendungen zeigt und Details zu Angriffsszenarien bietet (siehe dazu Artikel in der dotnetpro 12/2021). Wissen um diese Angriffsarten ist also verfügbar, es muss nur angewendet werden. Das Problem ist, dass das Wissen nicht tief genug bei Entwickelnden verankert ist, weil Sicherheit in der Ausbildung von Entwickelnden häufig keinen großen Stellenwert einnimmt.

Mit DevSecOps die Sicherheit verbessern

Der Shift-Left-Ansatz wird in vielen DevSecOps-Teams bereits angewendet, beziehungsweise die Teams haben damit begonnen, ihn umzusetzen. Das ist nicht überraschend, da DevSecOps eine Methode ist, bei der Sicherheit ganzheitlich, über den gesamten Lebenszyklus hinweg, betrachtet wird. Die große Herausforderung dabei ist, die Wissenslücken der Entwickelnden zu schließen.
Ein wichtiger Erfolgsfaktor dafür ist es, Sicherheitsspezialisten in Entwicklungsteams zu etablieren. Für eine hohe Akzeptanz kommen diese direkt aus den Teams, zum Beispiel indem Entwickelnde, denen das Thema Sicherheit bereits wichtig ist, zu Botschaftern für das Thema werden. Wenn es bisher ein AppSec-Team im Unternehmen gab, können diese Spezialisten in die Teams integriert werden, um die Cross-funktionalen DevOps-Teams um den Aspekt Sicherheit zu erweitern. Beide Ansätze haben ihre Vor- und Nachteile:
  • Security-Botschafter, die aus einem bestehenden Team heraus entwickelt werden, haben sehr wahrscheinlich von vorn herein eine große Akzeptanz im Team. Sie müssen jedoch oft fachlich und methodisch weitergebildet werden.
  • AppSec-Spezialisten, die von extern in Teams integriert werden, verfügen bereits über sehr gutes Wissen, müssen aber wahrscheinlich härter dafür arbeiten, von ihrem neuen Team akzeptiert zu werden. Im traditionellen Vorgehen ist das Verhältnis zwischen Entwicklungs- und AppSec-Teams oft belastet, da letzte Fehler melden und sich Entwickelnde dadurch in ihrer Ehre angegriffen fühlen könnten.
Die beiden Ansätze können auch miteinander kombiniert werden. Die Kombination bietet außerdem den Vorteil, dass gleich zwei Ansprechpartner für das Thema in den Teams bereitstehen. Dadurch können sie sich die Aufgaben teilen und zum Beispiel Änderungen am Code reviewen. Das ist jedoch nur eine Zwischenlösung, da es langfristig zu einem Flaschenhals führen würde, wenn alle Änderungen von einer oder zwei Personen überprüft werden müssten.
Das Ziel muss es daher sein, das Wissen über Sicherheit in den Teams zu verteilen und Lerninhalte direkt in Entwicklungsprozesse zu integrieren. Nur so kann Sicherheit als fester Bestandteil in die Betrachtungen der Entwickelnden einfließen, z.B. in den DoR (Definiton of Ready) oder DoD (Definition of Done).

Micro-Learning als Lernform etablieren

Um das Wissen zum Thema Sicherheit in den Arbeitsalltag zu integrieren, ist es sinnvoll, Lerninhalte nach dem Prinzip des Micro-Learnings in kleinen Häppchen direkt in Entwicklungsprozesse zu integrieren. Umgesetzt werden kann das, indem die Sicherheitsspezialisten ihre Teammitglieder auf potentielle Sicherheitslücken hinweisen, Reviews durchführen oder Aufgabenbeschreibungen um potentielle Sicherheitslücken ergänzen. Es gibt bereits entsprechende Lösungen, die anhand von Stichworten Lerninhalte in Form von Videos und Übungsaufgaben für alle gängigen Programmiersprachen und die OWASP Top 10 in Entwicklungsprozesse integrieren. So können die Entwickelnden sich direkt bei der Entwicklung das notwendige Wissen aneignen und anwenden.
Eine weitere Möglichkeit ist automatisiertes Echtzeit-Coaching, bei dem Entwickelnde direkt beim Schreiben des Codes Rückmeldung darüber bekommen, ob ihr Code Sicherheitslücken enthält. Für dieses Coaching gibt es Erweiterungen für IDEs, die in Echtzeit den Code prüfen und basierend auf Best-Practices Vorschläge für die Umsetzung geben. Die Erweiterungen erkennen allerdings noch nicht alle potentiellen Schwachstellen und sind davon abhängig, dass die Best-Practices noch von den Teams erweitert werden.

Gamification als Lernanreiz

Zusätzlich zum Wann (zeitnah) und Wo (direkt im Bearbeitungsprozess) der Einbindung der Lerninhalte ist, auch das Wie ein entscheidender Faktor für den Lernerfolg. So ist der Spaß am Lernen entscheidend, der besonders bei Entwickelnden durch Gamification gesteigert werden kann – etwa durch die Etablierung von Ranglisten oder Abzeichen.
Noch einen Schritt weiter gehen offene Wettbewerbe, bei denen die Teilnehmenden sich mit anderen Experten messen und etwas gewinnen können. Auch wird bei Wettbewerben nicht nur bestehendes Wissen abgefragt. Die Teilnehmenden sehen sich neuen Herausforderungen ausgesetzt und müssen unter Zeitdruck Lösungen finden.

Fazit

Durch die frühzeitige Berücksichtigung von Sicherheit im Rahmen von DevSecOps können Release-Zyklen verkürzt und die Qualität verbessert werden. Bei der Umsetzung sind zwei Dinge wichtig: Etablierung von Botschaftern für das Thema in den Entwicklungsteams und eine ansprechende Wissensvermittlung. Bei letzterer gibt es viele unterschiedliche Methoden, die je nach persönlichen Vorlieben und der Dynamik im Team benutzt werden können. Die Umstellung ist nicht einfach, da nicht nur Prozesse angepasst werden müssen. Wissen und Bewusstsein für das Thema Sicherheit müssen sich im Team etablieren. Mit der Zeit können Teams auch dazu übergehen zum Beispiel Sicherheitstests in Kombination mit TDD (Test Driven Development) noch vor dem Schreiben des funktionalen Codes zu etablieren, um nachträgliche Änderungen noch weiter zu vermindern.
Quelle: Daniel Huchthausen
Daniel Huchthausen nutzt seine langjährige Erfahrung als IT-Consultant dafür, die komplexen Sachverhalte rund um moderne Softwareentwicklung verständlich zu vermitteln. Die Cloudogu GmbH hat es sich zum Ziel gesetzt, den gesamten Product Lifecycle der Softwareentwicklung durch ein einfach nutzbares Toolset abzubilden, das durch Standardisierung und Automatisierung dazu beiträgt, Software noch effizienter entwickeln zu können.


Das könnte Sie auch interessieren