Schritt halten mit der Agilität
Das Wesen der Agilität ist die Veränderung – und so verändert sie nicht nur Projekte, sondern kontinuierlich auch sich selbst. Dank DevOps konnte die Entwicklung von Software enorm beschleunigt werden. In vielen Unternehmen zeigt sich jedoch, dass andere Abteilungen oft nicht mit diesem neuen Tempo mithalten können. Ein Beispiel ist die Qualitätssicherung. Auf Funkschau.de hat sich Diana Künstler Gedanken darum gemacht, wie es möglich ist, immer Schritt zu halten mit den neuesten Entwicklungen im Bereich der Agilität. Das macht sie anhand einer Liste, auf der die zehn wichtigsten Punkte aufgezeigt sind, die bei der Absicherung von SDLC von Bedeutung sind. Diese wurde vom renommierten Anbieter von Softwaresicherheit, Checkmarx, veröffentlicht. Wir fassen ihre Thesen im Folgenden für Sie zusammen.
Rasante Entwicklung – fehlende Sicherheit
Die Software-Entwicklung läuft heute dank DevOps mit einer Geschwindigkeit ab, die man sich vor zehn Jahren noch kaum vorstellen konnte. Produkte erreichen die Marktreife deutlich schneller und fast täglich können Kunden neue Builds erhalten. Allerdings ist die Qualitätssicherung oft durch das rasante Tempo überfordert. Dadurch kommt es vor, dass fehlerhafte Codes verwendet werden, die der Cyberkriminalität Tür und Tor öffnen. Checkmarx weist darauf hin, dass die Entwickler gezwungen sind, agil zu arbeiten und teilweise sogar mehrere neue Builds pro Tag abzuliefern, um mit der Konkurrenz mithalten zu können. Es wird nur auf die Mitbewerber und das Ergebnis aus der agilen Softwareentwicklung geblickt, die Sicherheit wird dabei gerne ein wenig vernachlässigt. Jetzt wo agile Entwicklung der Standard ist, sollte der Fokus auf die Sicherheit und die Qualitätssicherung gelegt werden, denn in diesem Bereich gibt es eindeutig viele Lücken und damit ist es heute schon möglich, sich durch sicherere Produkte von der Konkurrenz abzuheben. Die Sicherheit an das rasante Tempo der Entwicklung anzupassen, ist also die aktuelle Herausforderung. Die fortschreitende Digitalisierung und das Internet of Things machen diesen Fokus notwendig und folgerichtig. Niemand kann es sich mehr erlauben, die Sicherheit auf die lange Bank zu schieben oder gar zu vernachlässigen.
Wichtige Punkte bei der Softwareentwicklung
Im Bereich DevSecOps ist gemäß der Liste von Checkmarx einiges zu beachten, was Produkte sicherer und damit auch konkurrenzfähiger macht. Zunächst einmal ist es ratsam, eventuell vorhandene Sicherheitslücken so früh wie möglich zu finden. Dazu ist es nötig, schon im Anfangsstadium der Entwicklung mithilfe von statistischen Sicherheitstests, sogenannten SAST, Analysen durchzuführen und Fehler bereits im Quellcode zu erkennen. In diesem Stadium, also noch vor der ersten Testphase, ist der Aufwand für die Beseitigung eines Fehlers am geringsten. Checkmarx ist überzeugt davon, dass die Einbindung von Open Source Codes in die Sicherheitstests zwingend erforderlich ist. Dabei dürfen die Entwickler zwar nicht davon ausgehen, dass der offene Code auch tatsächlich sicher ist. Durch die Methode und durch OSA (Open Source Analyse) Lösungen erkennen die Entwickler jedoch Fehler im quelloffenen Code und können so auf unsichere Elemente schnell reagieren und diese entfernen oder verbessern.
Fortlaufende Sicherheitsprüfung
Die Analyse des kompilierten Codes ist laut Checkmarx von Bedeutung. Mittels einer IAST, einer interaktiven Security Analyse, lässt sich feststellen, ob der kompilierte Code fehlerfrei ist. Eine IAST Analyse lässt sich problemlos automatisieren und in den Alltag einpflegen. Sie ist schnell und effizient und findet Lücken in der Sicherheit während der Schlussphase der Entwicklung. Der nächste Ratschlag zielt auf die Mitarbeiterschulung ab. Die Experten von Checkmarx empfehlen, die Entwickler mithilfe von interaktiven Ausbildungsplattformen zu schulen – und das während der Entwicklung. So sind zum Beispiel Schulungen zum Erkennen von Fehlern und zu verschiedenen Fehlererkennungsmethoden ideal, um in den Entwicklungsalltag eingebunden zu werden.
Idealerweise werden Analysen während des gesamten Softwareentwicklungsprozesses eingebunden. Verschiedene Analysetools decken den gesamten Development Life Cycle ab. Obligatorische Feedback-Schleifen werden eingebunden, die zu weiterführenden Änderungen führen. Mit ein bisschen Übung und dem perfekten Timing lässt sich die Fehlersuche und Sicherheitsprüfung so integrieren, dass der Entwicklungsprozess nicht verlangsamt wird. Das frühe Entdecken von Bugs führt sogar dazu, dass die eigentliche Testphase schneller vonstattengehen kann. Das Ziel ist es, ein sichereres Produkt in derselben Zeit zur Verfügung zu stellen.
Idealerweise werden Analysen während des gesamten Softwareentwicklungsprozesses eingebunden. Verschiedene Analysetools decken den gesamten Development Life Cycle ab. Obligatorische Feedback-Schleifen werden eingebunden, die zu weiterführenden Änderungen führen. Mit ein bisschen Übung und dem perfekten Timing lässt sich die Fehlersuche und Sicherheitsprüfung so integrieren, dass der Entwicklungsprozess nicht verlangsamt wird. Das frühe Entdecken von Bugs führt sogar dazu, dass die eigentliche Testphase schneller vonstattengehen kann. Das Ziel ist es, ein sichereres Produkt in derselben Zeit zur Verfügung zu stellen.
Einbindung und Nutzung aller Möglichkeiten
Das Entwicklungsteam sollte stets im Zentrum allen Geschehens stehen, auch in Fragen der Sicherheit. Am besten werden die Entwickler von Anfang an in die Software-Security eingebunden. Nur so lässt sich garantieren, dass die gewählte Lösung auch bei den Entwicklern auf Akzeptanz stößt. Die Entwickler sollten mitentscheiden können, welche Plattform genutzt wird, auch für die Sicherheit. Hier ist aber auch das Kriterium der Priorisierung entscheidend. Neben der Erkennung von Schwachstellen sollten diese im Rahmen der Analyse auch nach Prioritäten eingeteilt werden. Das erleichtert die Unterscheidung zwischen kritischen Problemen und False Positives. Eine Kombination aus OSA, IAST, SAST und Machine-Learning kann handlungsrelevante Empfehlungen geben und damit einen echten Mehrwert in der Fehlersuche und -behebung schaffen. Bei der Auswahl der Security Plattform ist darauf zu achten, dass diese alle gängigen Programmiersprachen und Entwicklungsumgebungen unterstützt. Nicht zuletzt ist auch eine einfache Handhabung wichtig. Passende Verwaltungswerkzeuge sind unerlässlich, um jederzeit im Bilde darüber zu sein, wie die Sicherheitslage ist. Die Sortierung von Informationen nach Projekten, nach Phasen, chronologisch, KPI- und themenbezogen ist von großer Bedeutung und wird von den gängigen Tools geboten. Schließlich bleibt noch die Automatisierung zu nennen. Checkmarx plädiert dafür, Sicherheitstests immer zu automatisieren, so dass sie mit der Geschwindigkeit von DevOps mithalten kann. Die Sicherheitsprüfungen laufen also kontinuierlich im Hintergrund und entlasten die Entwickler, während sie ihnen gleichzeitig wichtige Informationen für die nächsten Schritte zur Verfügung stellen und ihnen mehr Zeit für kreative Aufgaben geben.
Autor: IAPM intern
Schlagworte: Projektmanagement, Agiles Projektmanagement, DevOps, Digitales Mindset