Am Donnerstag hatte der Chaos Computer Club (CCC) im Rahmen einer Recherche der Wochenzeitung Die Zeit einen 23-seitigen Bericht über zahlreiche Schwachstellen in der aktuellen Version 10 der Software „PC-Wahl“ veröffentlicht. [1] Diese Software wird bei der kommenden Bundestagswahl im Rahmen der Stimmenauswertung verwendet. Das Update des Herstellers vom 13. September 2017 war erfolglos, das größte Einfallstor für Angreifer ist nicht wirksam beseitigt.

CCC spendet Open-Source-Lösung

In einem öffentlichen Software-Repository stellt der CCC eine funktionierende Möglichkeit zur digitalen Signatur von „PC-Wahl“-Updates und Wahlergebnisdateien sowie zu deren automatischer Prüfung bereit. [4] Der Code kann sowohl für „PC-Wahl“ als auch beliebige andere Software-Projekte verwendet werden, um die dort beobachteten Anfängerfehler zu vermeiden.

Der CCC veröffentlicht weiterhin einen aktualisierten technischen Bericht, in dem auch die neuen Fehler dokumentiert werden. Neue Empfehlungen zur Behebung der Schwachstellen kommen darin allerdings nicht vor – es bleiben die alten Empfehlungen, welche bisher nicht oder nur unzureichend umgesetzt wurden.

„Durch unsere Veröffentlichung wollten wir den Hersteller dazu bewegen, sich endlich kompetenten Rat zu suchen. Resigniert stellen wir nun fest, dass es dem Hersteller nicht nur am Willen, sondern an Kompetenz und inzwischen auch an der notwendigen Zeit fehlt, seine Probleme nachhaltig in den Griff zu bekommen“, sagte Linus Neumann, Sprecher des CCC. „Daher spenden wir hiermit einen für PC-Wahl einfach zu übernehmenden Mechanismus für signierte Updates – als Open-Source-Software, wie es sich für hochkritische Wahlsoftware gehören sollte“, so Neumann weiter.

Festhalten an fehlerhaften Prinzipien

Wie die begleitetende Prüfung der neuen Versionen ergab, setzt der Hersteller auch in seinem dritten Behebungsversuch – trotz aller Warnungen – weiter auf die alten untauglichen Mechanismen: „Obfuscation“ und Geheimhaltung. Wenig überraschend konnten auch diese vermeintlichen Geheimnisse noch am gleichen Abend vom CCC durchschaut werden. [6]

Der Hersteller hat sein bisheriges Paketformat für Software-Updates beibehalten und bettet es nun in ein Code-signiertes „Hello-World-Programm“ ein. Der Installer öffnet dieses Programm lesend und extrahiert das herkömmliche Update-Paket aus dem Programm. Während der Mechanismus sehr simpel zu dechiffrieren ist, bleiben die technischen Beweggründe nicht nachvollziehbar.

Dadurch gelang es dem CCC erneut, eigenen Code per Software-Update einzuschleusen. Eine Demonstration ist als Screencast-Video verfügbar. [3] Der Angriff gelang bereits wenige Stunden nach Veröffentlichung des Updates und umgeht den inzwischen dritten Versuch des Herstellers, das Problem zu lösen. [6]

Abwälzen der Verantwortung auf die Nutzer

Aber nicht nur die technische Umsetzung ist mangelhaft. Linus Neumann erklärte: „Ohne nachvollziehbaren Grund wird die Prüfung der Signatur auf die Nutzer abgewälzt – eindeutig aber eine Aufgabe des Update-Programms! Hierzu wird eine unübersichtliche Anleitung zur Verfügung gestellt, die noch dazu unzureichende Handlungsanweisungen gibt.“ Die Nutzer werden angewiesen, auf umständliche Weise manuell zu prüfen, ob das Update signiert ist. Jedoch werden sie überhaupt nicht angeleitet, den sicherheitskritischen Teil der Signatur zu vergleichen: den kryptographischen Fingerabdruck. Durch dieses unsinnige und unzureichende Vorgehen wird die Maßnahme gänzlich überflüssig.

Forderung: Public Money, Public Code!

Nach dem Debakel um die handwerklich inadäquate und fehlerbehaftete Wahlauswertungssoftware sind vor der Bundestagwahl nun nur noch Scherben aufzufegen. Hastige Anweisungen zur manuellen unabhängigen Kontrolle von digital weitergeleiteten Ergebnissen mögen eine kurzfristige Lösung sein. Nach der Wahl aber muss ein grundsätzliches Umdenken stattfinden: Von öffentlicher Hand bezahlte Software soll künftig auch öffentlich einsehbar und überprüfbar sein – insbesondere bei der Wahlauswertung, aber auch darüber hinaus. [5]

Links:

[1] Software zur Auswertung der Bundestagswahl unsicher und angreifbar: https://ccc.de/de/updates/2017/pc-wahl

[2] aktualisierter Bericht

[3] erfolgreicher Angriff in einem Screencast-Video: PC-Wahl Update Demo II https://vimeo.com/234341640

[4] öffentliches Software-Repository RSA-Spende: https://github.com/devio/Walruss/tree/master/pcw_rsa_donation

[5] Offener Brief: Public Money? Public Code! https://ccc.de/de/updates/2017/public-money-public-code

[6] https://github.com/devio/Walruss/tree/master/attic#hold-my-beer