Korona-Warnung-App: Quellcode-Analyse eines beispiellosen Open-Source-Projekts.

0

Die von der Bundesregierung mit der Entwicklung der deutschen Coronavirus-Tracing-App beauftragten Unternehmen, allen voran Mitarbeiter der SAP und der Deutschen Telekom, haben vor wenigen Tagen den kompletten Quellcode aller Softwarekomponenten der App und die entsprechende Server-Infrastruktur veröffentlicht.

Unterstruktur der Corona-Warn-App
Rückstand bei Code-Tests

Bislang spricht nichts gegen die Installation der Corona-Warnapplikation der deutschen Regierung.

Ob sie wirklich hilft, ist eine andere Frage.

Die Android-Version ist in Kotlin geschrieben und nutzt die in der Sprache integrierten Benutzeroberflächenfunktionen zusammen mit der Navigationskomponente von Google.

Die iOS-Version der Corona-Warn-App ist in Swift geschrieben und verwendet Apples UI-Framework UIKit zur Implementierung der grafischen Elemente der Software, nicht das neuere SwiftUI-Framework.

Den Entwicklern zufolge verwenden sie UIKit, weil es ausgereifter ist als die neuere Alternative, die Apple erst letztes Jahr eingeführt hat.

Der Quellcode der Smartphone-Apps für Android und iOS ist beeindruckend aufgeräumt und enthält nach ersten, noch recht oberflächlichen Analysen keine offensichtlichen Hintertüren oder Sicherheitslücken.

Die Apps sind in ihrem jetzigen Zustand noch nicht einsatzbereit, aber einer allgemeinen Veröffentlichung Mitte Juni scheint nichts im Wege zu stehen.

Die Netzwerkverbindung zum Server ist in beiden Apps über Googles Protocol Buffers (protobuf)-Technologie implementiert, die auch von der Apple/Google API benötigt wird.

Der Code ist sehr minimal gehalten und macht anscheinend genau das, was die API vorgibt und sonst nichts.

Einige Beobachter, die sich diesen Quellcode angesehen haben, kommentieren die Tatsache, dass viele Fehler immer noch ignoriert werden – was daran liegen könnte, dass die App noch nicht fertig ist.

Alle Daten werden lokal auf dem Smartphone in einer SQLite-Datenbank gespeichert.

Diese Datenbank wird lokal mit SQLCipher verschlüsselt, einer auf Sicherheit optimierten SQLite-Bibliothek.

SQLCipher ist ein Open-Source-Projekt von Zetetic und die verwendete Krypto-Technologie sieht solide aus.

Grundsätzlich scheint sich die Struktur beider Anwendungen stark an etablierten Best Practices für iOS- und Android-Anwendungen zu orientieren.

Syntax und Namensraum beider Apps folgen weitgehend den jeweiligen Gestaltungsrichtlinien von Apple und Google.

Auch die Exposure Notification API beider Firmen scheint in vorbildlicher Weise implementiert worden zu sein.

Automatisierte Tests spielen eine wichtige Rolle bei der Früherkennung von Sicherheitslücken und unerwünschtem Verhalten einer App (z.B. Backdoors oder Informationslecks) und werden von vielen Software-Entwicklern und Sicherheitsforschern als unverzichtbar angesehen.

Schließlich ist offener Quellcode nur dann zuverlässiger als eine proprietäre Codebasis, wenn er auch ordnungsgemäß und ausgiebig auf Fehlerfreiheit getestet wurde.

Der wahrscheinlich größte Kritikpunkt von unabhängigen Beobachtern ist die Tatsache, dass Anwendungen in ihrem derzeitigen Zustand keine kontinuierliche Abdeckung mit automatisierten Tests bieten können.

Insbesondere der UI-Teil der iOS-App scheint bisher etwas zu kurz gekommen zu sein.

Erschwerend kommt hinzu, dass ganze Teile der Apps, die mit der Apple/Google Exposure Notification API kommunizieren, im Moment überhaupt nicht getestet werden können, weil Entwickler erst auf die Whitelist von Apple oder Google gesetzt werden müssen.

Die Projektleiter sagen, dass sie derzeit an Möglichkeiten arbeiten, es unabhängigen Entwicklern zu erleichtern, entsprechende Berechtigungen zu erhalten.

Der derzeitige Mangel an Tests lässt sich sicherlich auch damit erklären, dass die Apps noch nicht fertig sind.

Dabei könnte auch die beeindruckende Entwicklungsgeschwindigkeit der Apps eine große Rolle spielen.

Der Code dieser Apps ist erst wenige Wochen alt.

Bevor die Apps jedoch einem großen Publikum zur Verfügung gestellt werden, sollte dieser Mangel unbedingt behoben werden und alle Teile der beiden Apps sollten großzügig mit Tests abgedeckt werden.

..

Share.

Leave A Reply