In der Softwareentwicklung steigen sowohl der Innovations- und Wettbewerbsdruck, als auch die Erwartungen der Nutzer an eine Anwendung. Um damit mithalten zu können, greifen Entwicklerteams auf neue Technologien und agile Methoden zurück.
Gleichzeitig bedarf es kontinuierlicher und häufiger Sicherheitsscans für ein konstant hohes Anwendungssicherheitsniveau. Doch wie steht es mittlerweile um die „Scan-Mentalität“ in der Anwendungsentwicklung? Veracode wollte es genau wissen und veröffentlichte nun zum zwölften Mal in Folge den State of Software Security (SoSS) Report. Julian Totzek-Hallhuber, Senior Principal Solutions Architect bei Veracode, stellt die aktuellen Ergebnisse vor.
Entwicklerteams testen ihre Software heute durchschnittlich 20-mal häufiger auf Sicherheitslücken als es noch 2010 der Fall war. Dies ist nur eine der Erkenntnisse des aktuellen State-of-Software-Security-Report (SoSS), in dem Veracode mehr als eine halben Million Anwendungen sowohl von Konzernen, als auch von mittelständischen Unternehmen, kommerziellen Softwareanbietern und Open-Source-Projekten analysiert hat.
Entwicklerteams führen heute viel häufiger Sicherheitsscans durch
Früher mussten Anwender nicht selten mehrere Monate warten, bis Entwicklerteams hinter einer Software Schwachstellen identifizieren konnte und einen umfassenden Patch veröffentlichten. Heute verfolgen Entwickler zunehmend einen Continuous-Delivery-Ansatz, um Fehler mithilfe kleinerer „Code-Häppchen“ zu beheben. Den meisten Fehlern können Entwickler entgegenwirken, wenn sie das regelmäßige Scannen von Codes bereits in den Lebenszyklus der Softwareentwicklung einbauen. Ein einzelner Sicherheitstest kurz vor Software Release reicht heute nicht mehr aus, da Fehler trotzdem unentdeckt bleiben und ihren Weg in den finalen Release finden können.
Aus dem aktuellen SoSS-Report geht hervor, dass Entwicklerteams diese Notwendigkeit erkannt, ihre Scan-Ansprüche angehoben und regelmäßige Scans als Standard etabliert haben. 2010 unterzogen sie ihre Anwendungen insgesamt lediglich zwei bis drei Sicherheitsscans. Dagegen scannen sie heute 90 Prozent ihrer Anwendungen mehr als einmal die Woche – die Mehrheit der Anwendungen sogar durchschnittlich dreimal wöchentlich.
Unterschiedliche Scanarten sorgen für umfassende Sicherheit
Häufiges und kontinuierliches Scannen bildet nur eine Seite der Medaille. Die andere Seite bezieht sich auf die Tools und Scan-Arten, die Entwicklerteams für diese Sicherheitsscans nutzen. Je vielfältiger diese sind, desto effektiver lassen sich Schwachstellen über sämtliche Komponenten hinweg aufspüren, wodurch die Sicherheit der Anwendungen zunimmt. Die Teams greifen dafür heute zunehmend auf eine Kombination aus statischen und dynamischen Scans wie Software Composition Analysis (SCA) zurück. Die Verbreitung dieses Scan-Vorgehens hat in den letzten drei Jahren um 31 Prozent zugenommen. Entwicklerteams können Schwachstellen wesentlich schneller identifizieren und beheben. So sind Teams, die ihre Anwendungen sowohl statischen als auch dynamischen Scans unterziehen, durchschnittlich 24 Tage schneller als Teams, die nur auf eine Scan-Art setzen. Führen sie zudem eine SCA durch, können sie weitere sechs Tage wettmachen.
Praxisorientierte Sicherheitstrainings helfen bei der Fehlersuche
Im Rahmen des SoSS-Reports untersuchte Veracode ebenfalls, inwiefern interaktive, praxisorientierte Sicherheitstrainings die Fehlerbehebungsrate von Entwicklerteams beeinflussen können. Anhand realer Praxisbeispiele lernen die Teilnehmer Best Practices zum Auffinden von unsicheren Anwendungscodes kennen. Teams, die eine solche Schulung besucht haben, konnten die Hälfte aller Schwachstellen um 35 Prozent schneller identifizieren und schließen. Dadurch ergibt sich ein Behebungszeitraum von durchschnittlich 110 Tagen – verglichen mit 170 Tagen bei Teams, die nicht an einem praxisorientierten Training teilgenommen haben. Der Zusammenhang von praxisnahen Schulungen und der Fehlerbehebungsrate ist offensichtlich. Demnach sollten Unternehmen ihre Entwicklerteams mit einer Weiterbildung im Bereich der Anwendungssicherheit fördern.
Entwickler setzen verstärkt auf Microservices
Ein gewissenhafteres Scan-Vorgehen ist nicht der einzige Wandel, der sich im Laufe der letzten Jahre im Rahmen der Anwendungsentwicklung abgezeichnet hat. Entwicklerteams greifen dafür zunehmend auf neue Technologien zurück und bauen ihre Anwendungen auf einer modularen Microservice-Architektur auf. Dies lässt sich aus der durchschnittlichen Anzahl neuer Anwendungen schließen, die sie auf Schwachstellen hin testen. Zwischen 2010 und heute ist diese Zahl um das Dreifache auf 17 Anwendungen pro Quartal angewachsen. Zudem nahm auch die Anzahl mehrerer Programmiersprachen wie JavaScript, Python und .NET ab, die zur Entwicklung dieser Anwendungen verwendet wurden. Wohingegen 2018 noch 20 Prozent der Anwendungen mehrere verschiedenen Sprachen umfassten, sind es 2021 nur noch fünf Prozent.
Weniger Fehler in Open-Source-Bibliotheken
Neben der neuen Anwendungsarchitektur wird die Arbeit mit Open-Source-Bibliotheken immer häufiger eingesetzt, um die Softwareentwicklung zu beschleunigen. So enthalten heute beispielsweise 97 Prozent der Java-Anwendungen Open-Source-Komponenten. Die Verwendung von Drittanbieter-Codes spart den Entwicklern zwar Zeit, doch Open-Source-Bibliotheken können auch ein Sicherheitsrisiko darstellen. Da der Code weithin zugänglich ist, können Schwachstellen von jedermann gefunden und ausgenutzt werden. Die gute Nachricht ist, dass die Zahl der Bibliotheken mit bekannten Sicherheitslücken in den letzten vier Jahren von 35 auf zehn Prozent gesunken ist. Gleichzeitig gelingt es nun schneller, fehlerhafte Open-Source-Codes zu identifizieren und gefundene Sicherheitslücken zu schließen. Während es 2017 etwa drei Jahre dauerte, um 50 Prozent der Fehler zu beheben, dauert diese Aufgabe jetzt etwa ein Jahr. Dennoch sind 77 Prozent der Schwachstellen nach drei Monaten noch nicht geschlossen.
Fazit
Die aktuellen Ergebnisse des SoSS-Reports von Veracode zeigen, dass Softwareentwickler in den vergangenen zehn Jahren nach und nach erkannt haben, dass Sicherheitsscans weder auf die Endphase des Entwicklungszyklus zu beschränken noch vereinzelt durchzuführen sind. Heute erstrecken sie ihre Tests über den gesamten Entwicklungsprozess, führen Scans kontinuierlicher und häufiger durch und setzen auf eine Kombination aus verschiedenen Scan-Arten, um Schwachstellen zu identifizieren. Auch mit Technologien wie Microservice-Architekturen und Open-Source-Bibliotheken lässt sich heute sowohl ein gewissenhafteres Scan-Verhalten als auch eine vergleichsweise effektivere Fehlerbehebung erkennen. Investitionen in die Ausbildung von Entwicklern und die Förderung von praxisorientierten Sicherheitsschulungen können dazu beitragen, diese Prozesse weiter zu optimieren.