Drei Best Practices für DevSecOps, die sofort implementiert werden können
Angesichts der Tatsache, dass Code mehr denn je ins Visier bösartiger Akteure gerät, ist es an der Zeit, die Bedeutung von DevSecOps zu begreifen. Mit diesen drei Schritten können Teams sofort ihre Anwendungssicherheit verbessern.
Egal, wo du dich auf deiner DevOps-Reise befindest: Jetzt ist der beste Zeitpunkt, auf DevSecOps zu setzen. Warum? Weil die Angriffsflächen noch nie so groß waren. Laut Amy DeMartine, VP von Forrester Research, sind Anwendungen heutzutage das größte Sicherheitsziel. Sie betonte, dass das Problem immer schlimmer und nicht besser wird.
Eine Studie von Gartner zeigt, dass die IT-Ausgaben für Sicherheit tatsächlich sinken und 2019 nur noch 5,7 % des Gesamtbudgets ausmachten, was die ganze Situation noch komplizierter macht.
Und als wäre das nicht genug, herrscht unter DevOps-Teams ständig Verwirrung darüber, welche Gruppe jetzt wirklich für die Sicherheit verantwortlich ist. In unserer globalen DevSecOps-Umfrage 2020 gaben 33 % der Sicherheitsexpert(inn)en an, dass sie allein für die Sicherheit verantwortlich sind, aber fast genauso viele (29 %) gaben an, dass alle für die Sicherheit verantwortlich sind.
Es ist an der Zeit, die Herangehensweise von Teams an DevSecOps von Grund auf zu überdenken. Hier sind drei Strategien, die Teams sofort umsetzen können.
Zusammenarbeit ist der Erfolgsfaktor Nummer eins für jedes Projekt. Bringe deine Projektleiter(innen) und Sicherheitsbeauftragten zusammen. Lass sie in einem Meeting (mit entsprechender Vorbereitungs- oder Planungszeit) Sicherheitsmaßnahmen entwickeln, die durch den für ein bestimmtes Projekt geschriebenen Code erfüllt werden müssen, und automatisierte Tests planen, die Entwickler(innen) für ihren Code durchführen müssen. Wenn ihr diese Entscheidungen gemeinsam trefft, stärkt dies sowohl das Vertrauen in den Prozess als auch die Akzeptanz für eine auf Sicherheit ausgerichtete Mentalität.
Rob Cuddy von IBM empfiehlt Teams, drei wichtige Kommunikationspunkte umzusetzen, um DevSecOps auf die nächste Stufe zu bringen:
Kommuniziert nur ernsthafte Probleme und filtert überschüssiges Rauschen mithilfe von KI und maschinellem Lernen heraus, um eure Sicherheitsscans zu verifizieren.
Sprecht über den Elefanten im Raum: Open Source. Drittanbieter- und Open-Source-Code ist in der Softwareentwicklung allgegenwärtig. Daher ist es wichtig, dieses Thema direkt anzusprechen, um die Wahrscheinlichkeit vermeidbarer Angriffe zu verringern.
Löst die Hauptprobleme und behebt sie schneller: Findet und behebt falsch negative Ergebnisse, bevor sie ausgenutzt werden.
Mit diesen Schritten förderst du eine direkte, ehrliche und taktvolle Kommunikation zwischen den Teams. Das hilft dir dabei, ein Maß an Vertrauen und Glaubwürdigkeit aufzubauen und aufrechtzuerhalten, das für effiziente und effektive DevSecOps nötig ist.
Angesichts der begrenzten Ressourcen für die Anwendungssicherheit und deren wichtiger Rolle für den geschäftlichen Erfolg ist es nur sinnvoll, Tests bei jedem Code-Commit durchzuführen. Idealerweise werden diese Tests einmal geschrieben, um den Projekt- oder Betriebsstandards zu entsprechen, und dann automatisch bei jeder Codeänderung durchgeführt. Konzentriere Tests auf Bereiche in der Anwendung, die die größte Abdeckung haben, aber die wenigste Wartung benötigen. Teams sollten Code auf jeder Strukturebene analysieren, um Probleme zu finden, die die operative Leistung einer App beeinträchtigen könnten. Der Code sollte sicher, robust, effizient und einfach zu warten sein.
Präventive Maßnahmen wie SAST und Abhängigkeitssuche sparen später Zeit, indem die Anzahl an Programmierfehlern reduziert wird, bevor der Code zusammengeführt wird. Außerdem helfen sie den Entwickler(inne)n zu verstehen, wie sich Änderungen auf andere Bereiche der Anwendung auswirken. Durch die frühzeitige Festlegung von Testkriterien können Entwickler(innen) die allgemeine Codequalität verbessern, indem sie Standards erhalten, auf die sie sich beim Programmieren beziehen können.
Es ist nicht konstruktiv, Testergebnisse als negative Verstärkung zu verwenden. Neben der Behebung von Fehlern können Testergebnisse auf zwei Arten eingesetzt werden:
Die jeweiligen Entwickler(innen) sollte die Ergebnisse heranziehen, um zu lernen, wie sie hochwertigeren Code erstellen.
Auf Gruppenebene sollten Testergebnisse auf Muster bei Programmierpraktiken untersucht werden, die dann verbessert werden können. Außerdem können basierend auf den Ergebnissen Standards festgelegt werden, die dazu beitragen, die Codequalität im gesamten Team oder Unternehmen zu verbessern.
Wie ein Sicherheits-Champions-Programm bessere DevSecOps bedeuten kann
Wie GitLab DevSecOps ermöglicht
Bist du bereit?
Sieh dir an, was dein Team mit einer einheitlichen DevSecOps-Plattform erreichen könnte.