"Haben Fehler korrigiert und uns entschuldigt"

Seite 2: Nicht alle Best Practices der Softwareentwicklung eingehalten

Welche Prozesse nutzen Sie, um die Software vor Release auf solche Schwachstellen zu testen?

Patrick Hennig: Aktuell gibt es automatisierte Tests über Browserstack, das in einer CI-Pipeline eingebunden ist. Vor Release gibt es auf den Entwicklungs- und Stagingsystemen manuelle Ende-Zu-Ende Tests.

Wir nutzen einen Agile-Entwicklungsprozess mit einem besonderen Augenmerk auf Sicherheit. Wir haben ein Team aus Sicherheitsexperten, die gemeinsam mit den Stakeholdern Anforderung sowohl erstellen als auch bewerten. Nachdem die Anforderung ausspezifiziert und, je nach Relevanz, mit dem Datenschutzbeauftragten abgesprochen sind, werden diese priorisiert und zur Entwicklung selektiert.

Bei der Entwicklung achten wir auf gemeinsame Guidelines hinsichtlich Style, Formatting und Best Practises. Nach dem ein Feature abgeschlossen ist, wird es peer-reviewed, also von mindestens einem anderen Entwickler angeschaut.

Wir haben momentan sogenannte Ende-zu-Ende Tests, um die Gesamtfunktionalität des Systems zu testen (Cypress). Wir werden in Zukunft auch sogenannte Unit Tests, funktionale Tests auf Komponenten und Funktionsebene einführen.

Dass bei der Entwicklung von Luca auch nach einem knappen halben Jahr und mit gut 20 Millionen finanzieller Unterstützung nicht alle Best Practices der Softwareentwicklung eingehalten wurden, hat Kris Köhntopp auf Twitter unter dem Titel "Software first, Bedenken second" dokumentiert. Der lange Thread des Internet-Urgesteins mag Entwicklern und Software-Architekten als Lehrstück dafür dienen, wie moderne Softwareentwicklung geplant werden sollte, vor allem wenn sie potenziell Millionen User und schützenswerte Daten adressiert. Köhntopp zu Luca: "Die funktionalen Anforderungen sind nicht wirklich diskutiert worden, geschweige denn in einen Prozeßkontext 'Kontaktverfolgung' eingeordnet worden."

Warum haben Sie für die Luca-App erst auf massiven Druck der Öffentlichkeit hin und zögerlich Teile des Quellcodes und erforderliche Dokumente offengelegt, warum nicht alles?

Patrick Hennig: Wir sind als private, selbst finanzierte Initiative gestartet. Wir hatten Open-Source von Beginn an nicht wirklich auf dem Schirm. Dies ist im Übrigen ja keine Pflicht und bei anderen Systemen im Gesundheits- und Finanzbereich auch nicht der Fall. Aber mit der Aufmerksamkeit Anfang März kam der Wunsch bei den Nutzern nach Open-Source, den wir völlig verstanden haben. Es handelt sich jedoch um eine sicherheitskritische Software, daher wollten wir uns auch die Zeit nehmen.

Open-Source ist keine Pflicht, das ist richtig. Best Practices sind nie eine "Pflicht", doch im 21. Jahrhundert braucht jeder, der datenschutzrelevante und sicherheitskritische Software entwickelt, gute Argumente, warum er nicht den Weg der größtmöglichen Transparenz beschreitet, erst recht, wenn er öffentliche Gelder einwirbt (Public Money Public Code), unabhängig vom "Gesundheits- oder Finanzbereich".

Die Entwickler von Luca entschieden sich jedoch für eine Salami-Taktik und begründen die scheibchenweise Veröffentlichung mit der großen Nachfrage und ihrer großen Sorgfalt. Es ist sicher korrekt, dass der Großteil des Quellcodes erst nach und nach offenbart wurde, nachdem die Öffentlichkeit das gefordert hatte, nachdem massive Sicherheitslücken bekannt wurden und nachdem der Verdacht der unlauteren Verwendung freier Software aufgekommen war.

Patrick Hennig: Wir hoffen auf das Verständnis der Community und entschuldigen uns an der Stelle auch noch mal deutlich für den erfolgten Referenzierungsfehler. Wir waren die letzten Wochen mitten im Rollout an 300 Gesundheitsämter und haben mitten in der hohen medialen Aufmerksamkeit den Quellcode offengelegt. Dabei ist nicht alles gut gelaufen, das muss man klar sagen. Wir freuen uns aber, dass es nun endlich so weit ist.

"Haben korrigiert und uns entschuldigt"

Warum waren Open-Source-Strategien und Best-Practices nicht von vorneherein gewählt? Wie konnten die teils gravierenden Fehler bei Lizenz und Attribuierung passieren?

Patrick Hennig: Wir sind wie gesagt auch als kleines Team gestartet. Wir haben einige Erfahrungen im Bereich Sicherheitstechnologie, aber es ist für uns das erste große Open-Source-Projekt. In der Tat ist in der Nacht der ersten Veröffentlichung die proprietäre Lizenz mit eingecheckt gewesen. Dies wurde auch sofort entdeckt, obwohl wir noch nichts angekündigt hatten. Das war unbedacht, morgens wurde korrekte Lizenz direkt nachgereicht.

Dann wurde in einem Bereich eine Open-Source-Komponente verwendet, bei der die Lizenz nicht richtig mit angegeben wurde. Wir wissen alle wie viele Abhängigkeiten und externe Quellen komplexe Softwareprojekte haben. Den Fehler bedauern wir auch sehr. Wir haben ihn direkt, nachdem wir es mitbekommen haben, korrigiert und uns dafür entschuldigt.

Kritiker merken an, das Entfernen eines einzelnen Autors und der verwendeten Lizenz von freier Software könne als Vorsatz gewertet werden. Aus dem Schreiben des Anwalts des Wiener Entwicklers thesimj geht hervor:

"Die Entwickler der Luca-App haben den Lizenzhinweis und den Hinweis auf "thesimj" entfernt, sodass der Eindruck entstanden ist, dass die Softwarekomponente jBaseZ85 von den Luca-App-Entwicklern stamme", heißt es seitens des Rechtsanwalts Markus Dörfler, Partner bei Höhne, In der Maur & Partner Rechtsanwälte. "Dies stellt einen Urheberrechtsverstoß dar. Im Übrigen ist die Lizenz der Luca-App (GPLv3) nicht mit der von "thesimj" gewählten Lizenz vereinbar, sodass jede einzelne installierte Luca-App gegen das Urheberrecht verstößt", sagt Dörfler." (Quelle: MSN)