Warum sichere Softwareentwicklung nicht nur ein Problem für Entwicklerteams sind – ein Gespräch mit Dr. Stefan Dziwok

Zur Unterhaltung, beim Einkauf, Online-Banking oder zum Tracken von Gesundheitsdaten – Apps sind Teil unseres Alltags. Umso erstaunlicher ist es, dass das Thema App-Sicherheit in der Softwareentwicklung nach wie vor stiefmütterlich behandelt wird. Einer, der es wissen muss ist Dr. Stefan Dziwok, Senior Experte am Fraunhofer-Institut für Entwurfstechnik Mechatronik (IEM) und Teil der Forschungsgruppe der AppSecure.nrw-Studie. Wir haben mit ihm über die Studie gesprochen und darüber, was sich in der Entwicklung von Apps verändern muss, um für die gegenwärtigen Herausforderungen der sicheren Softwareentwicklung gewachsen zu sein.

Herr Dziwok, was unterscheidet die AppSecure.nrw-Studie von vergleichbaren Projekten und Untersuchungen zum Thema Sichere Softwareentwicklung?

Wir haben uns das Thema ganzheitlicher vorgenommen. Entwicklungsteams sind ja nicht allein verantwortlich für die Software-Security, sondern auch ihre Product Owner und ihre Führungskräfte von denen die Anforderungen kommen bzw. die Zeit und Geld zur Verfügung stellen und das Risiko tragen. Deswegen fanden wir es wichtig, das ganze Bild zu verstehen. Was wird heute getan, um die eigene Software abzusichern? Wo gibt es Schwierigkeiten?

Bild: Stefan Dziwok, Senior Experte am Fraunhofer IEM,

Und was sind aktuell die zentralen Herausforderungen sicherer Softwareentwicklung?

Entwicklerinnen und Entwickler aber genauso auch ihre Product Owner und Führungskräfte müssen stärker und umfassender für das Thema Software-Security sensibilisiert werden. Schritt eins lautet daher: Alle Stakeholder sollen verstehen, dass mehr Zeit und Geld investiert werden muss, um die Sicherheit ihres Produktes gewährleisten zu können. Schritt zwei ist dann, die hierfür nötigen Kompetenzen auf- bzw. auszubauen.

In der Studie heißt es, dass sich viele Führungskräfte und Product Owner auf den Pen-Test berufen, wenn es um Sicherheitsfragen geht. Welche Probleme könnten aber auftreten, wenn man sich zu sehr auf den Pen-Test verlässt

Der Pen-Test, kurz für Penetrationstest am fertigen Produkt, ist eine gute und wichtige Sache. Das Problem ist, je später ich einen Fehler bei der Entwicklung finde, umso aufwändiger ist es, ihn zu beheben. Da ist man dann schnell bei Stunden oder eher bei Tagen, manchmal sogar Wochen, um einen einzelnen Fehler zu beheben. Zudem ist ein Pen-Test keine Garantie alle Fehler zu finden.

Und wie könnte eine sichere Entwicklung über den Pen-Test hinaus aussehen?

Sinnvoller wäre es, von Anfang an sicher zu entwickeln und den Pen-Test als Absicherung zu nutzen. Das fängt bereits bei den Anforderungen und dem Entwurf an. Aber auch beim Programmieren selbst gibt es Werkzeuge und Methoden, die eine sichere Entwicklung unterstützen. Was auch noch dazu kommt: heutzutage möchte man agil entwickeln. Das sieht man zum Beispiel bei den Apps für Android und iOS. Da gibt es manchmal mehrmals in der Woche ein Update und stellenweise sogar auch mehrmals am Tag. Ein Pen-Test dauert jedoch mehrere Tage und wird von externen Personen durchgeführt, was mit einer agilen Entwicklung offensichtlich nicht kompatibel ist. Daher braucht es in solchen Fällen automatische Tests, die das eigene Produkt nach jeder Änderung ausführlich bzgl. der Security überprüfen.

Auf alle Fälle spannend! Aber welche Bedarfe sollte jetzt ein Schulungsangebot abdecken?

Hierfür haben wir in unserer Studie die aktuellen Kompetenzen abgefragt. Die sichere Softwareentwicklung wurde von uns in zehn Themengebiete unterteilt. Dabei haben wir erkannt, dass einige Entwicklerinnen und Entwickler viele Themengebiete überhaupt nicht kennen und der Großteil keine praktischen Erfahrungen in den meisten Themengebieten hat. Unser Fazit ist daher, dass nicht nur ein einzelnes Teilgebiet geschult werden sollte, sondern das komplette Gebiet der sicheren Softwareentwicklung. Sogenannte Security Champions können dabei eine wichtige Rolle einnehmen. Security Champions sind Entwicklerinnen oder Entwickler des Teams, die eine hohe Security-Kompetenz aufweisen und als Multiplikatoren für Sicherheitsmaßnahmen dienen. Wir bieten dazu z.B. auch eine passende Schulung an.

Wie lässt sich feststellen wie gut ein Team sein Produkt absichern kann?

Derzeit entwickeln wir in AppSecure.nrw ein Reifegradmodell für agile Teams, das wir Security Belts nennen. Dieses ist frei auch auf Github verfügbar. Analog zu den bekannten Judogürteln stellen wir hierbei die Teamreife dar: weiß, gelb, orange usw. Jeder Gürtel beinhaltet dabei eine Liste an Fähigkeiten, die das Team aufweisen muss.

Zusätzlich muss für jedes Produkt definiert werden, welchen Gürtel es benötigt, da nicht jedes Produkt gleich kritisch ist. Beispielsweise lässt sich dann feststellen: dieses Produkt braucht einen blauen Gürtel und aktuell hat das Team, das es betreut, eher die Fähigkeiten eines gelben Gürtels. Dann weiß das Team, der Product Owner aber auch die Führungskraft, dass sie Zeit und Geld investieren müssen, damit sich das Team zum blauen Gürtel hin entwickelt und somit die nötige Reife hat das Produkt ausreichend abzusichern.

Bild: Das Software Security Reifegradmodell für Teams „Security Belts“

Wie weit seid ihr damit aktuell?

Wir haben bereits den weißen, gelben, orangenen und grünen Gürtel definiert und wollen dieses Jahr noch alle restlichen Gürtel definieren. Im Rahmen unseres Forschungsprojekts haben auch einige Teams unserer Industriepartner bereits damit gestartet die Gürtel nach und nach zu erreichen. Und es gibt bereits einige Teams, die bereits den orangen Gürtel haben. Es geht also voran.

Herr Dziwok, wir sind auf alle Fälle gespannt, was Sie zum Thema noch in Erfahrung bringen können. Vielen Dank für das Interview!

Wenn Sie sich in dem Bereich Weiterbilden möchten, können wir Ihnen das Security Champion Training empfehlen. Weitere Informationen finden sie dazu hier.


von Pamela Tumba / 2021

Kommentar schreiben

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert