Niks meer missen?
Schrijf je in voor onze nieuwsbrief!
Foto: Screenshot van de stemapplicatie voor de studentenraadsverkiezingen
actueel

Groot beveiligingslek in stem-app UvA-verkiezingen

17 juni 2020 - 13:04

Het verkiezingssysteem dat de UvA gebruikt, WebElect, kampt met een groot beveiligingslek. Dankzij een scriptje kreeg Folia toegang tot 49 UvA-accounts, waar vervolgens mee gestemd kon worden voor de centrale studentenraad en faculteitsraden. De UvA gaat een onderzoek instellen.

Vorige week kregen alle UvA-studenten een link in hun mail om te stemmen voor de studentenraadsverkiezingen. Hiermee word je geleid naar het inlogscherm van Canvas, waarin je je studentnummer en wachtwoord invult. Als je dit gedaan hebt, kom je in het kiesprogramma van WebElect terecht waar je je stem kunt uitbrengen.

Dit ga je lezen
  • WebElect, de applicatie die de UvA gebruikt voor de studentenraadsverkiezingen, is niet goed beveiligd.
  • Dankzij een scriptje kreeg Folia toegang tot 49 UvA-accounts waarmee gestemd kon worden.
  • Ook kregen we toegang tot accounts op andere hogescholen en universiteiten, bij een zorginstelling en een machinebedrijf.
  • De UvA stelt een onderzoek in. Over de gevolgen voor de verkiezingsuitslag is nog niets bekend.
  • Het lek zit al jaren in het systeem, bevestigt WebElect. Daardoor waren ook verkiezingen bij KLM, Shell, het Ministerie van Infrastructuur en Waterstaat, de Gemeente Den Haag, Albert Heijn en Jumbo kwetsbaar voor fraude.

In WebElect is je UvA-account gekoppeld aan een vijfcijferige identiteit en een vijfcijferig wachtwoord. De combinatie is zichtbaar in de link in de adresbalk van je browser.

 

Script

Daarin schuilt het probleem. Met behulp van een script is het mogelijk om aan de hand van de link voor elk van de 99.999 accounts op de server van WebElect alle mogelijke 99.999 wachtwoorden te proberen. Wanneer een werkende combinatie gevonden is, is het niet meer nodig om via de beveiligde Canvas-verbinding in te loggen om te kunnen stemmen.

 

Met een simpel script namen we gedurende korte tijd de proef op de som. Zo was het mogelijk om te stemmen met 49 accounts van UvA-studenten, 31 van de Rijksuniversiteit Groningen, 27 van de Haagse Hogeschool en een grote zorginstelling in Midden-Nederland. Daarnaast lukte het om in te loggen op accounts van reeds afgelopen verkiezingen bij de Universiteit Wageningen, de Hogeschool Rotterdam en een internationaal machinebedrijf met meerdere vestigingen in Nederland.

‘Waren we direct gestart op het moment van delen van de kieslijsten, dan hadden we duizenden keren kunnen stemmen’

Groningen

Het probleem kwam aan het licht bij de Rijksuniversiteit Groningen, waar vorige week ook verkiezingen plaatsvonden. In de UKrant trok De Vrije Student aan de bel over WebElect. Het bleek mogelijk te zijn om je eigen WebElect-link naar iemand anders door te sturen, die vervolgens voor je kon stemmen zonder in te loggen.

 

Ook waarschuwde DVS voor de mogelijkheid om met een script de link aan te passen en zo toegang te krijgen tot andere accounts. De RUG reageerde hier niet op. Wel bevestigde een woordvoerder dat het inderdaad mogelijk was om een stemlink met een vriend te delen, die vervolgens zou kunnen stemmen.

 

Voorzichtige poging

We ondernamen met het script een ‘rustige’ poging, om de servers van de verkiezingen niet te overbelasten. Ook startten we pas in het midden van de verkiezingsweek. Waren we met dezelfde methode gestart op het moment van delen van de kieslijsten, dan hadden we met duizenden UvA-WebElect-accounts kunnen stemmen.

Hoewel het script in ongeveer twintig uur 15 miljoen inlogpogingen deed bij WebElect, greep het bedrijf niet in

Met de 49 gevonden UvA-accounts is geen stem uitgebracht. Hadden we dit wel gedaan, dan was het bijvoorbeeld mogelijk geweest om binnen een faculteitsraad iemand aan een voorkeurszetel te helpen, of om net het verschil te maken tussen een zetel meer of minder in de centrale studentenraad.

 

Vijftien miljoen inlogpogingen

Hoewel het script in ongeveer twintig uur 15 miljoen inlogpogingen deed bij WebElect, greep het bedrijf niet in. Het gebruikte IP-adres werd niet geblokkeerd. In een telefoongesprek zei WebElect-eigenaar Tamara van den Dam-Sloof dinsdagmiddag dat ‘binnen de programmatuur qua belastbaarheid niks is opgemerkt’.

 

Het systeem van WebElect blijkt al sinds 2015 fraudegevoelig. Een gearchiveerde demopagina van WebElectKlik je vervolgens door naar een van de raden, dan verandert je gearchiveerde link in een link met de twee vijfcijferige codes. laat, als je doorklikt naar een van de raden, in de adresbalk ook het systeem met de vijfcijferige inlog- en wachtwoordcombinatie zien. Dit zou betekenen dat ook verkiezingen bij ondernemingsraden van onder andere KLM, Shell, het Ministerie van Infrastructuur en Waterstaat, de Gemeente Den Haag, Albert Heijn en Jumbo kwetsbaar waren voor misbruik.

‘We nemen dit heel serieus. De integriteit van de verkiezingsuitslag is voor ons essentieel’

Woensdagochtend zegt Van den Dam-Sloof dat WebElect het lek heel serieus neemt. Ze bevestigt dat er ook voor deze verkiezingen een mogelijkheid bestond om accounts te achterhalen. Wel blijven de uitslagen wat haar betreft overeind: ‘Bij deze verkiezingen hebben we geen bezwaar op deze grond binnen gekregen, en is er geen vermoeden geweest van fraude. Als iemand wil frauderen, dan moet hij ook flink wat acties ondernemen.’

 

Onduidelijkheid over logs

Op de vraag of de server van WebElect bijhoudt of eerder pogingen zijn geweest om accounts te achterhalen, kon Van den Dam-Sloof nog geen antwoord geven. ‘We zijn nu in contact met onze hostingprovider om daar meer duidelijkheid over te krijgen.’

 

Op haar site zegt WebElect te beschikken over een ISAE 3000-certificaat, waarmee klanten ‘op een integere uitslag kunnen vertrouwen.’ Volgens de WebElect-eigenaar staat dit certificaat los van de inhoud van het verkiezingsprogramma, maar gaat het om een certificaat voor ‘procedures als het goed bijhouden en goed registreren’.

 

Tot slot zegt WebElect haar privacyfunctionaris te hebben ingeschakeld. Ook gaat ze een beveiligingsupdate, die reeds gepland zou zijn, versneld door te gaan voeren. ‘We hebben daar nu mee gewacht, omdat dat flink wat implementatietijd vergt. Klanten kunnen er in de toekomst van op aan dat de beveiliging anders is ingericht.’

 

Onderzoek

Jacqueline Groot Antink, secretaris van het Centraal Stembureau van de UvA, zei dinsdagmiddag in een eerste reactie geschrokken te zijn van de bevindingen. Het stembureau heeft van WebElect geen melding binnengekregen van het grote aantal inlogpogingen.

 

Woensdagochtend meldt UvA-woordvoerder Yasha Lange dat de UvA direct een onderzoek is gestart na het ontvangen van de melding. ‘We nemen dit heel serieus. De integriteit van de verkiezingsuitslag is voor ons essentieel. We hebben WebElect om opheldering gevraagd en verzocht om een technische analyse.’ Lange kon nog niet vooruitlopen op eventuele consequenties voor de uitslag, aangezien dat afhangt van de uitkomsten van het onderzoek.

 

(Lees verder onder de video)

Naschrift

Vanaf woensdagavond 10 juni tot en met donderdag 11 juni heeft gedurende twintig uur een script geprobeerd om combinaties van stemaccounts en wachtwoorden te achterhalen. Tussentijds werd gecontroleerd of de servers van de verkiezingen niet overbelast raakten, zodat de studentenraadsverkiezingen niet geschaad zouden worden. Dit was niet het geval.

 

In 133 gevallen gaf een juiste combinatie de melding dat er ofwel al gestemd was, ofwel er geen stembiljet meer actief was. Bij de andere 182 pogingen kregen we toegang tot een verkiezing die nog open, of net gesloten was.

 

Wij hebben vorige week geen gebruik gemaakt van de mogelijkheid om te stemmen bij de UvA-verkiezingen. Omdat we maandag vonden dat we voor dit artikel wel bevestiging nodig hadden dat we bij een druk op de stemknop niet alsnog zouden worden teruggestuurd naar het inlogscherm, is eenmaal gestemd bij de nog openstaande verkiezing aan de Haagse Hogeschool. Het stembureau van de Haagse Hogeschool is hiervan op de hoogte gebracht.

 

De unieke gebruikersgegevens van WebElect zijn anders dan de inloggegegevens in Canvas. Het is ook niet mogelijk die via WebElect te achterhalen.