Sichere Softwareentwicklung in allen Phasen DevSecOps verankert IT-Sicherheit in Entwicklungszyklen

Autor / Redakteur: Daniel Huchthausen * / Stephan Augsten

Der Stellenwert moderner Softwareentwicklung, die kurze Release-Zyklen und Flexibilität bietet, ist mit der Digitalisierung der Gesellschaft deutlich gestiegen. Dabei darf die Sicherheit allerdings nicht zu kurz kommen.

Firma zum Thema

Durch eine Schärfung des Bewusstseins der Developer lässt sich die Sicherheit mit wenig zusätzlichem Aufwand deutlich verbessern.
Durch eine Schärfung des Bewusstseins der Developer lässt sich die Sicherheit mit wenig zusätzlichem Aufwand deutlich verbessern.
(Bild: flyd2069 / Unsplash)

Vor einigen Jahren noch gab es viele Unternehmen, die Software traditionell im Wasserfallmodell entwickelt haben. Mittlerweile erwarten Kunden jedoch, dass es regelmäßig neue Produkte und Updates gibt, die schnell und problemlos auch auf den neuesten Smartphones laufen.

Um weiter am Markt bestehen zu können, sind Unternehmen angehalten, ihre Entwicklungsprozesse zu beschleunigen. DevOps, als ein Ansatz um die Zusammenarbeit über den gesamten Produktlebenszyklus zu verbessern, ist mittlerweile schon weit verbreitet.

DevSecOps geht noch einen Schritt weiter und setzt einen starken Fokus auf das Thema IT-Sicherheit, was hinsichtlich der steigenden Bedeutung von digitalen Produkten sinnvoll ist. Der DevSecOps Report 2021 von GitLab zeigt, dass der Großteil der Unternehmen bereits Ziel von Angriffen war:

  • etwa 70% der Unternehmen hat bereits kritische Daten durch Cyber-Attacken verloren
  • ca. zwei Drittel haben Betriebsstörungen erfahren
  • mehr als 60% haben negative Auswirkungen auf ihre Marke festgestellt

Da nicht zu erwarten ist, dass die Bedeutung von Daten wieder abnehmen wird, werden wahrscheinlich auch die versuchten Angriffe zunehmen. Die Bedeutung von Sicherheit steigt also.

In der Theorie kann durch die Abkehr von traditionellen, nachgelagerten Sicherheitstests durch einen „Shift left“ die Sicherheit verbessert und gleichzeitig Release-Zyklen verkürzt werden. Dieser Ansatz wird bereits von vielen DevSecOps-Teams verfolgt. Die Herausforderung besteht jedoch darin, das notwendige Wissen von bestehenden AppSec-Teams in die Entwicklungsteams zu bekommen. Denn Entwickelnde benötigen zum einen mehr Wissen über die eigentlichen Themen, müssen aber auch ein Bewusstsein für Security bekommen, um das Wissen anzuwenden.

Angreifende erfinden das Rad nicht neu

Die gute Nachricht ist, dass ein Großteil der Attacken bekannte Schwachstellen ausnutzt. Der „State of Cybersecurity 2021“-Bericht von ISACA hat ergeben, dass neben dem Versuch, den Menschen als Schwachstelle durch Social Engineering auszunutzen, folgende Angriffsarten sehr verbreitet sind:

  • ungepatchte Systeme
  • falsch konfigurierte Sicherheitssysteme
  • kaputte Authentifizierung und Autorisierung
  • mangelndes Logging und Monitoring

Alle diese Angriffsarten sind in den Top 10 des Open Web Application Security Project (OWASP) zu finden – eine Liste, die weit verbreitete Angriffsarten auf Webanwendungen zeigt und Details zu Angriffsszenarien bietet. Durch das Abdecken der OWASP Top 10 können also bereits viele potentielle Angriffe vereitelt werden.

Security-Botschafter schärfen das Bewusstsein für Sicherheit

Der Shift-Left-Ansatz wird bereits in vielen DevSecOps-Teams angewendet, bzw. befindet sich in der Umsetzung. Die große Herausforderung liegt darin, die Wissenslücken der Entwickelnden zu schließen. Ein wichtiger Erfolgsfaktor ist, Sicherheitsspezialisten als Botschafter in Entwicklungsteams zu etablieren.

Für eine hohe Akzeptanz kommen diese direkt aus den Teams, indem Entwickelnde, denen das Thema Sicherheit bereits wichtig ist, zu Botschaftern werden. Wenn es bisher ein AppSec-Team im Unternehmen gab, können auch diese Spezialisten in die Teams integriert werden, um die Cross-funktionalen DevOps-Teams um den Sicherheitsaspekt zu erweitern. Beide Vorgehen 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, vom 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.

Sehr gut eignet sich auch eine Kombination beider Ansätze: So können AppSec-Spezialisten in Teams integriert und gleichzeitig Botschafter aus den Teams weiterentwickelt werden. Die Kombination hat den Vorteil, dass gleich mehrere Ansprechpartner für Sicherheit in den Teams bereitstehen. Dadurch können sie sich die Aufgaben teilen und so einen „Flaschenhals“ verhindern.

Dabei handelt es sich jedoch nur um eine Zwischenlösung. Das Ziel muss es sein, das Wissen über die Botschafter in den Teams ganzheitlich zu verteilen und Lerninhalte direkt in Entwicklungsprozesse zu integrieren. Sicherheit muss ein fester Bestandteil für die Entwickelnden werden. Das kann z.B. auch durch entsprechende Erweiterungen der DoR (Definiton of Ready) oder DoD (Definition of Done) erfolgen.

Weiterbildung des Teams essenziell

Um das Wissen zum Thema Sicherheit in den Arbeitsalltag zu integrieren, können Lerninhalte nach dem Prinzip des Micro-Learnings direkt in Entwicklungsprozesse integriert werden. Dadurch wird das Wissen situationsgebunden und in kleinen Häppchen bereitgestellt.

Es gibt bereits entsprechende Lösungen, die Lerninhalte in Form von Videos und Übungsaufgaben für alle gängigen Programmiersprachen und die OWASP Top 10 in Entwicklungsprozesse zu integrieren. Die Sicherheitsspezialisten können dann ihre Teammitglieder durch Reviews oder Aufgabenbeschreibungen auf potentielle Sicherheitslücken hinweisen. So können die Entwickelnden sich direkt bei der Entwicklung das notwendige Wissen aneignen und anwenden.

Eine andere Möglichkeit ist es, automatisiertes Echtzeit-Coaching zu nutzen. Bei diesem Ansatz bekommen Entwickelnde direkt beim Schreiben des Codes Rückmeldung zu potentiellen Sicherheitslücken. 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.

Allerdings erkennen diese Erweiterungen noch nicht alle potenziellen Schwachstellen und sind davon abhängig, dass die Best-Practices noch von den Teams erweitert werden. Durch die individuelle Erweiterung bieten sie aber viel Potential für produktspezifische Sicherheitsthemen.

Gamification als Lernanreiz

Zusätzlich zur Integration von Lerninhalten in Entwicklungsprozesse, ist auch entscheidend, wie die Inhalte vermittelt werden. Ein wichtiger Erfolgsfaktor ist der Spaß am Lernen, der besonders bei Entwickelnden durch Gamification gesteigert werden kann. So können Ranglisten oder Abzeichen den natürlichen Spiel- und Vergleichsdrang anspornen.

Lösungen, wie die Integration von Lerninhalten in Code Reviews, bieten Möglichkeiten, mit denen sich die Entwickelnden Badges und Punkte erarbeiten können. Denkbar ist auch, dass die Erweiterung von Security-Best-Practices durch die Vergabe von Belohnungen unterstützt werden.

Oft umfassen die Angebote der Services für Lerninhalte bereits Ranglisten und Auszeichnungen, die ein Startpunkt sein können. Eigene Auszeichnungen für gefundene oder behobene Bugs, Vorschläge zur Verbesserung der Security oder Teilen von Wissen können die Gamification noch steigern.

Noch einen Schritt weiter gehen offene Wettbewerbe, bei denen die Teilnehmenden sich mit anderen Experten vergleichen können. Der Vorteil ist, dass bei Wettbewerben nicht nur bestehendes Wissen abgefragt wird. Die Teilnehmenden sehen sich auch neuen Herausforderungen ausgesetzt, die sie unter Zeitdruck lösen müssen. Bestehendes Wissen wird so in einem neuen Kontext neu verknüpft. Solche Wettbewerbe können in unterschiedlichsten Formen durchgeführt werden, z.B. sehr kompakt in nur wenigen Stunden oder verteilt über einen längeren Zeitraum.

Fazit: Security ist ein wichtiger Aspekt von Software, der oft nur im Schadensfall große Aufmerksamkeit bekommt und dadurch häufig im Alltag von Softwareentwicklung zu wenig beachtet wird. Wenn es dann zu einer Attacke kommt, ist der Schaden immens.

Daniel Huchthausen
Daniel Huchthausen
(Bild: Jan v. Deichen / www.JanDeichen.com)

Durch eine Schärfung des Bewusstseins von Entwickelnden kann mit wenig zusätzlichem Aufwand die Sicherheit im Hinblick auf alltägliche Attacken deutlich verbessert werden, da Angriffsvektoren aus den OWASP Top 10 gut abgesichert werden können. Dieser Bewusstseinswechsel lohnt sich – braucht allerdings auch Zeit, da zunächst Security-Botschafter etabliert und Prozesse angepasst werden müssen.

* 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.

Dieser Beitrag stammt von unserem Partnerportal Dev-Insider.de.

(ID:47809731)