Wenn die CDU ihren Wahlkampf digitalisiert…

Die CDU betreibt seit dem Bundestagswahlkampf 2017 eine App Namens CDU Connect. Die App unterstützt Helfer*innnen im Wahlkampf, indem sie Daten zu Haustürgesprächen, potenziellen Unterstützer*innen und Kritiker*innen erfasst und auswertet. Dabei sind in den letzten Jahren hunderttausende Datensätze angefallen, die öffentlich zugänglich waren.

Wer hat wann an welcher Haustür geklingelt? Welches Alter und Geschlecht hatte die Person, die aufgemacht hat? Worüber wurde geredet und wie ist die Person zur CDU eingestellt? All das sind Datenpunkte, die die CDU von ihren Helfer*innen im Wahlkampf erfassen lässt. Für jeden erfassten Eintrag bekommen diese Punkte die dann dazu führen, das sie auf einer Bestenliste einen höheren Rang erklimmen.

Eingabemaske für Haustürwahlkampf

Ich wurde auf die App am 11.05.2021 via Twitter aufmerksam, weil sich dort Menschen fragten, wie die Datenerfassung der App aus einer Datenschutzperspektive legal sein kann. Das Team um CDU Connect antwortete auf diese Frage, das die App überhaupt keine personenbezogenen Daten erfassen würde.

Insbesondere in Straße mit wenigen Hausnummern werden diese Attribute in Kombination zur Identifizierung einer eindeutigen Person ausreichen:

  • Alterskohorte

Als ich diese Argumentation gelesen und insbesondere die Screenshots der App gesehen habe, habe ich schon fast erwartet, dass sich in der App bestimmt interessante Sicherheitslücken finde lassen.

Also habe ich die App heruntergeladen, den Proxy aktiviert und mal so angeschaut was die App so macht:

Auf dem ersten Blick ist mir dabei aufgefallen, dass die App gängige Security Practises wie Zertifikatspinning nicht umsetzt und das es somit supereinfach war, auf die Programmierschnittstelle zuzugreifen.

Bei genauerem Hinsehen ist mir dann der GET-Parameter “include” aufgefallen, der bei einzelnen Endpunkten der Programmierschnittstelle verwendet wird, um weitere Entitäten in die Antwort der Schnittstelle einzufügen.

https://cdu.kampagnen-dialog.de/api/v2/profile?include=achievements,campaignGoals

Da fragte ich mich natürlich “Geht das auch mit Entitäten, auf die ich keinen Zugriff haben sollte?”. Also übernahm ich den Namen der Entität “visits” und hängte sie einfach an den Abruf einer anderen Entität, nämlich “campaigns”, an. Ich ging davon aus, dass sie eine Wahlkampagne mit den Hausbesuchen verknüpfen, weil die Information, im Rahmen welcher Kampagne ein Besuch stattfand, erfasst worden ist.

https://cdu.kampagnen-dialog.de/api/campaigns/38?include=visits

Und durch dieses einfach hinzufügen eines Parameters enthielt das Kampagnenobjekt nicht nur allgemeine Informationen zur Wahlkampagne, sondern auch detaillierte Informationen zu jedem in der App erfassten Besuch.

Besonders interessant in diesem Datensatz ist das Feld “topics”, indem der Gesprächsinhalt zusammengefasst wird.

Einige Beispiele:

Als ich auf Hochdeutsch sagte, dass ich von der CDU bin wurde ich als Saupreiß beleidigt und gesagt, dass man schon seit 1950 die CSU wählt und sich das nicht ändern wird. Außerdem wurde zu mir gesagt, dass der ganze Bua a depp sei, weil ich sehr zufrieden mit Armin Laschet bin. — 70+ Jahre alter Mann aus Garmisch-Partenkirchen

“Bundeskanzler soll ein Mann sein und keine links-grün-versiffte Frau. — 50 Jährige Frau aus Göttingen

Fragen warum ich einfach so bei denen vorbeikomme und die vollquatsche wegen der CDU — 20 Jährige aus Königs Wusterhausen,

Während man diesen Datensatz - trotz seiner Brisanz — fast als Witzig einstufen könnte, sind die anderen Datensätze, die über den selben Endpunkt mit include=users und include=supporters abrufbar waren, deutlich kritischer:

  • Die persönlichen Daten von 18500 Wahlkampfhelfern, mit E-Mail-Adressen, Photos, teilw. Facebook Tokens, …

Nachdem ich diese Sicherheitslücke gefunden hatte, reichte ich am 11.05 um 22 Uhr beim CERT-Bund meine Informationen zur Sicherheitslücke als Responsible Disclosure ein, parallel informierte ich den Berliner Datenschutzbeauftragten.

Am 12.05 morgens meldete sich das BSI mit der Information, das die Meldung weitergegeben wurde und parallel kontaktierte ich noch den Datenschutz der CDU.

Das Vorgehen die App offline zu nehmen ist vorbildlich. Das bleibt sie hoffentlich auch.

12.05, 20:45 — Die CDU hat mittlerweile die User, zu denen sie Kontaktinformationen haben, über die Sicherheitslücke informiert. Was sie hierbei nicht so ganz klar machen: die Sicherheitslücke bestand über Jahre. Es ist also heute garnicht mehr nachvollziehbar, ob die Daten zu einem Zeitpunkt abgeflossen sind.

Update: Ein Tag später fand ich dieselbe Sicherheitslücke auch in den Apps der CSU und der Volkspartei. Mehr dazu

Insgesamt ist es bedenklich, das eine App mit solchen eklatanten Sicherheitsmängeln über Jahre hinweg öffentlich verfügbar war, insbesondere im Kontext dessen, das ein solcher Mangel den Entwickler*innen eigentlich bekannt sein müsste.

Die CDU hat hier bewiesen, dass sie nicht nur in den Parlamenten, sondern auch mit ihren eigenen digitalen Produkten für Unsicherheit im Netz sorgt. Wieder einmal hat sie gezeigt, warum das Massenhafte, für die Gesellschaft völlig nutzlose Sammeln von Daten eine Gefahr für uns alle darstellt.

Wenn eine Partei nicht fähig ist, ihre eigene Wahlkampf-App sicher und verantwortungsbewusst zu entwickeln, wie soll sie das dann mit der IT-Infrastruktur eines ganzen Landes hinbekommen?

Oder um es mit den Worten zweier CDU-Bundestagsabgeordneten zu sagen:

Statt auf Datensparsamkeit setzen wir auf Datensouveränität und Datensorgfalt. Dieser Paradigmenwechsel lässt uns an den riesigen Wertschöpfungspotenzial der Daten teilhaben, ohne das wir unsere hohen Standards beim Verbraucher- und Bürgerrechtsschutz aufgeben — Thomas Heilmann, Nadine Schön CDU MDBS in Neustaat — Politik und Staat müssen sich ändern

Nein Nadine und Thomas, Wertschöpfungspotenzial nutzen und Bürger*innenrechte schützen, das geht leider nicht zusammen.

Eine weitere Absurdität in diesem Kontext ist, dass ich einen solchen Datenschutzvorfall an das BSI melden muss, eine Behörde, die dem CSU-geführten BMI unterstellt ist. Solche Vorfälle zeigen gut, warum es wichtig wäre, dass das BSI eine unabhängige Behörde wird. Das hat die CDU aber bis heute erfolgreich verhindert.

PS. Gehostet wird die App teilweise in der Google Cloud. Nur falls euch demnächst noch mal jemand von der CDU Wirtschaftsförderung von Deutschen IT-Unternehmen unter dem Vorwand der digitalen Souveränität verkaufen will.

disruption as a service 🏳️‍🌈

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store