dinsdag 4 september 2012

Stembreker.nl de sleutel tot een coup!

Pats boem daar is G500, de nieuwe partij met leider Sywert van Lienden en zijn trouwe volgelingen die hevig worden geënthousiasmeerd door Sywerts jeugdige fanatisme. En hoewel er al jaren wordt gediscussieerd over digitale stemcomputers pleurt Sywert even een app online die gaat bepalen wat jij gaat stemmen!
En ja, dat allemaal via jouw browser thuis, via zijn app, in zijn database en via zijn algoritme dat even gaat bepalen wat jij moet gaan stemmen! Tja, vertrouwen, dat hebben we wel in Sywert.

Laat ik even dit als eerste zeggen, mensen als Sywert hebben we nodig. Daardoor maken we namelijk sprongen vooruit. Waar men al jaren discussieert over digitaal stemmen voert Sywert het gewoon even eigenhandig in. Gewoon, omdat hij het tijd daarvoor vind, en hij er zijn stemmen mee wint. Want waar vallen stemmen te winnen? Juist, achter dit beeldscherm waar deze lettertjes op verschijnen.

Enfin, you win some, you lose some. Hieronder de haken en ogen aan deze applicatie.

De applicatie gebruikt HTTPS verkeer, which is good! Echter verschuilt de applicatie zich achter CloudFlare (En is daardoor natuurlijk niet terug te vinden *kuch* *kuch* 31.*.103.144). Mooi spul dat CloudFlare, alleen voor een SSL oplossing biedt het slechts één mogelijkheid. En dat is een klassieke Man in the Middle oplossing. (Hieronder afgebeeld).



Het verkeer tussen CloudFlare en de Client wordt versleuteld, echter ontsleuteld CloudFlare het om de inhoud te kunnen bekijken. En dat is waar een probleem zich voordoet. CloudFlare heeft dus de beschikking tot álle data die via de applicatie verstuurd wordt, het kan deze inzien én manipuleren. Als CloudFlare het kan, dan kan de Amerikaanse overheid het helemaal, willen we zoiets?

Gelukkig loopt het verkeer vanaf CloudFlare richting de server in Nederland wel weer via SSL, de "Full SLL" optie die CloudFlare biedt, zoals hieronder te zien is:


Daarnaast is men 1 ding vergeten, en dat is dat de website ook gewoon bereikbaar is via poort 80, zonder SSL dus. Dit biedt uiteraard enkele handigheidjes om in te breken op de server, onder andere:

De webmail:


De phpMyAdmin:


En nog een webmail:


En nóg een webmail:


Daarnaast wordt het stemadvies met een smsje verstuurd. En een smsje kunnen we natuurlijk gewoon spoofen!

Dat er enigszins is nagedacht over de beveiliging moeten we natuurlijk niet vergeten, zo wordt er gebruik gemaakt van een telefoonnummer en een wachtwoord. Daarnaast verschijnt er een captcha, wat computer gestuurde registratie onmogelijk maakt (en laten we voor het gemaak de captcha oplossende chinezen even vergeten) als laatste moet een op het mobieltje verschenen code ter verificatie worden ingevoerd. Veiligheidsmaatregelen die een doel lijken te dienen.

Maar wat de ontwikkelaars dan precies met al deze pagina's aan het doen zijn? https://stembreker.nl/test.php
https://stembreker.nl/login_form/
https://stembreker.nl/export/
https://stembreker.nl/temp/
https://stembreker.nl/phpMyAdmin/changelog.php
https://stembreker.nl/heartbeat/
https://stembreker.nl/config/
https://stembreker.nl/advies/
En laten we deze maar helemaal vergeten:
Enfin, verstopt achter CloudFlare, dus hierbij de portscan van de server 31.*.103.144 wat natuurlijk 'gewoon' een random ip is... ;)
PORT STATE SERVICE
21/tcp open ftp
22/tcp open ssh
53/tcp open domain
80/tcp open http
110/tcp open pop3
143/tcp open imap
443/tcp open https
465/tcp closed smtps
587/tcp open submission
993/tcp open imaps
995/tcp open pop3s

Nu is dit natuurlijk flink wat gebash tegen deze app. Maar dat maakt het hele idee niet minder interessant! Mensen als Sywert zijn een verrijking voor de samenleving, en zonder dit soort types blijven we compleet stil staan. Sywert, thumbs up!

Ps.
Ook props natuurlijk voor Paul, Richard en Daniel voor de mooie app!

1 opmerking:

  1. Mooie analyse.
    Nog even wat extra info over Cloudflare:
    Cloudflare heeft geen safe harbour status volgens de EU. Je mag dus geen persoonsgegevens doorgeven aan Cloudflare en zeker geen bijzondere persoonsgegevens (zoals politieke voorkeur).

    Disclaimer: Ik ben geen jurist en heb een paar nuances bewust weggelaten.

    BeantwoordenVerwijderen