Press "Enter" to skip to content

Głosowanie przez Internet – jak natłuc głosów i przed takim tłuczeniem się bronić

Właśnie zamknęliśmy dość duże głosowanie internetowe na praktyki w zakresie CSR. Skrypt do obsługi głosowania stworzyłem od podstaw na bazie WordPressa i o ile napisanie go nie stanowiło problemu, to dokładne przemyślenie tego jak ma działać i jak się ma bronić przed nieuczciwością głosujących pochłonęło mi trochę czasu.

Poniżej przedstawię wam do czego doszedłem i w jaki sposób możecie przetestować inne systemy głosowania wykorzystywane przy różnych okazjach. Piszę to z premedytacją, bo im więcej osób będzie miało tę wiedzę, tym lepiej napisane i zabezpieczone będą skrypty je obsługujące i tym uczciwsze będą głosowania.

Jak przebiega glosowanie

W najczęściej spotykanych przypadkach głosowanie odbywa się przy użyciu skrzynki mailowej głosującego. Wraz z wybraniem opcji w głosowaniu, głosujący podaje swój email. Na adres email wysyłany jest link potwierdzający. Po kliknięciu w link głos jest potwierdzany i zliczany do wyników głosowania.

Po pierwsze – regulamin

Stwórz sobie podstawę prawną do działań. Regulamin powinien pozwalać ci na ingerowanie w głosowanie poprzez usuwanie głosów oddanych w nieuczciwy sposób. Bez tego też możesz to zrobić, ale jest to już ingerowanie w wyniki głosowania. Jest to o tyle problematyczne, że kiedy pokazujesz wyniki na bieżąco, rosnąca liczba głosów nikogo nie zdziwi – natomiast zdziwi ich spadająca liczba. A od tego już krok do kryzysu w mediach społecznościowych.

Tylko nie przeszarżuj z regulacjami. Zawsze śmieszą mnie głosowania, w których w przypadku wykrycia nie do końca legalnie oddanych głosów, organizatorzy usuwają przedmiot głosowania, na który były oddawane. Łatwo w ten sposób pozbyć się głosującemu konkurencji – wystarczy zafałszować wyniki innych i czekać, aż organizator ich sam usunie 😉

Po drugie – double opt-in

Double opt-in to sposób na potwierdzenie głosu/adresu email, z którego głos został oddany. Polega na tym, że na wskazany adres email wysyłany jest list aktywacyjny, a głos liczony jest dopiero po kliknięciu użytkownika na ten link. Jest to najprostszy system potwierdzenia, ale potwierdza on tylko jedno – że użytkownik ma dostęp do skrzynki email, do której prowadzi wskazany adres email. Wystarczy jednak do podstawowego zabezpieczenia, czyli zablokowania możliwości głosowania za kogoś, przez podszywanie się pod różnych użytkowników.

Po trzecie – przygotuj się na nadużycia

Double opt-in jest zabezpieczeniem prostym i można je zmanipulować na kilka sposobów. Celem takiej manipulacji ma być możliwość oddania wielu głosów na konkretną opcję w głosowaniu internetowym.

Kilka skrzynek

Najprostszym sposobem jest głosowanie z kilku skrzynek, które można założyć w dowolnym serwisie pocztowym. Przed tym na prawdę nie ma obrony, ale wymaga sporo czasu i poświęcenia osoby głosującej. Jeśli nie chcemy się bawić w zakładanie fikcyjnych kont, to zawsze możemy zagłosować ze wszystkich skrzynek, którymi już dysponujemy. Posiadanie prywatnej i biurowej, to już 2 głosy. Ale można wycisnąć więcej.

Alias

Większość bezpłatnych i komercyjnych skrzynek posiada mechanizm aliasów. Alias to wirtualny adres prowadzący na naszą skrzynkę pocztową. Każdy email wysłany na alias dochodzi na nasza główną skrzynkę. Odpowiedź na maila wysłanego na alias zawsze wyjdzie z naszej głównej skrzynki – nie da się odpowiedzieć z adresu aliasu, ale nie po to alias istnieje. Alias jest dodatkową furtką – bo o ile adresu naszej skrzynki zmienić się nie da, o tyle alias możemy zmieniać dowolnie i ogranicza nas w tym tylko istnienie skrzynek o nazwach, które chcemy wykorzystać (na serwerze nie mogą istnieć 2 takie same adresy).

Można więc zagłosować podając alias, odkliknąć link, zmienić alias, zagłosować ponownie, odkliknąć link, zmienić alias, itd. Ciągła zmiana aliasu wymaga jednak trochę wysiłku, więc po jakimś czasie się taka zabawa nudzi. Można zwielokrotnić swoje głosy bez ciągłego zmieniania ustawień swojej skrzynki – ale sposoby te będą już łatwe do wyłapania po stronie kontrolującego głosowanie

Kropka

Niektóre serwisy mailowe jak Gmail ignorują kropki w adresach email. Mail wysłany na adres imie.nazwisko@… dojdzie na te sama skrzynkę co mail wysłany na imienazwisko@… albo i.m.i.e.n.a.z.w.i.s.k.o@… Właściwie kropkę możemy postawić gdziekolwiek, a i tak dojdzie na jedna i tę samą skrzynkę. Dlaczego jest to istotne przy głosowaniach? Bo system porównuje między sobą adresy mailowe i nie daje zagłosować dwa razy z jednego adresu. Ale imie.nazwisko@… i imien.azwisko@…  to dla większości systemów 2 różne adresy.

Jeśli administratorzy się nie zabezpieczyli, albo programista tego nie przewidział, to możliwe będzie wielokrotne zagłosowanie poprzez zmienianie pozycji i liczby kropek w adresie i klikanie kolejnych przesyłanych linków. Część systemów jest już zabezpieczona na taką ewentualność, ale część nie. Problem w tym, że takie działania są dość łatwe do wyłapania po stronie administratora – o ile przyjdzie mu do głowy sprawdzenie takich adresów.

VERP

Istnieje technika Variable Envelope Return Path (VERP) pozwalająca na przekazanie w adresie emaila dodatkowych danych. Jeśli do naszego adresu email, po części przed małpą dodamy znak „+”, to możemy za nim wpisać dowolne liczby i cyfry. Z adresu email@example.com możemy zrobić email+jakiestamdane2016@example.com i jeśli tylko obsługujący nas serwer pocztowy jest ustawiony do obsługi verp, to mail powinien do nas trafić, ponieważ część między „+” a „@” zostanie zignorowana. Oczywiście mail przyjdzie do nas z informacją, że został wysłany na adres email+jakiestamdane2016@example.com dzięki czemu możemy łatwiej ustawić chociażby filtry albo sortowanie, ale akurat nie o to nam teraz chodzi.

Mechanizm ten dość często wykorzystuje się do rejestrowania się poprzez swój email na stronach, które mogą przesyłać niechciane informacje – w ten sposób łatwiej takie maile odfiltrować (do koszta) albo sprawdzić kto komu przehandlował nasze dane osobowe. VERP na pewno działa na Gmailu i ale dość topornie idzie jego wdrażanie na polskich serwisach oferujących bezpłatne maile.

Przy głosowaniach oczywiście możemy zmieniać dowolnie to, co wpisujemy za „+”. Maile i tak trafią na nasza skrzynkę, ale dla części systemów mogą być identyfikowane jako zupełnie różne adresy email, z których zagłosowano. Kwestia zabezpieczenia się administratorów wygląda podobnie jak w przypadku kropek w adresie. Albo są zabezpieczeni, albo nie są – i wtedy albo wyłapią to nadużycie podczas porównania wszystkich maili, albo będą zbyt leniwi, żeby to zrobić.

Catch all

Opcja z wyższej półki, dostępna dla administratorów serwerów pocztowych, albo właścicieli kont hostingowych. Na części z nich istnieje możliwość włączenia skrzynki „catch all”. Opcja ta działa w ten sposób, że jeśli jakiś email zostanie wysłany na nieistniejąca skrzynkę w naszej domenie, to zostanie on dostarczony na skrzynkę oznaczoną jako catch-all. Jeśli dysponujemy taką skrzynką, to poza pojawianiem się na niej gigabajtów spamu, możemy użyć jej do głosowania. Za każdym razem podajemy nieistniejąca nazwę skrzynki w naszej domenie, a link aktywacyjny dochodzi na skrzynkę, którą wskazaliśmy.

Największą wadą takiej metody jest fakt, że wszystkie maile wysłane są z jednej domeny – co w przypadku zagłosowania kilkuset osób może wzbudzić czujność administratorów. A jeśli w danej domenie nie istnieje strona www, to można wręcz mieć pewność, że jest to próba fałszowania głosowania.

Maile tymczasowe

Jeśli w internecie istnieje jakaś potrzeba, to na pewno ktoś ją zaspokoi poprzez odpowiednią aplikację. Dzięki temu istnieją serwisy udostępniające tymczasowe skrzynki mailowe, generowane automatycznie i żyjące kilka minut. Jest ich dużo i umożliwiają przejście każdej operacji wymagającej pozostania anonimowym i przejście przez double opt-in. Ciągle zresztą powstają nowe serwisy oferujące tę usługę.

Za ich pośrednictwem można dodać w każdym konkursie dowolną liczbę głosów całkowicie anonimowo. Maile te są jednak bardzo proste do odfiltrowania z powodu dość nietypowych nazw skrzynek (to, co jest przed „@”) i nazw domen, które w większości mówią czym zajmuje się dany serwis.

Czy da się wykryć nadużycia?

Tak, ale nie jest to proste i wymaga odsiedzenia odpowiedniego czasu albo podczas programowania mechanizmu głosowania, albo po zebraniu danych z głosowania.

W trakcie głosowania oprócz samego głosu i adresu email zbierane są też inne dane, które pozwalają zbudować statystyki głosowania. Są to na przykład:

  • IP użytkownika, z którego wszedł na stronę głosowania
  • IP użytkownika, z którego wszedł na stronę z linku potwierdzającego
  • Data i czas głosowania
  • Data i czas kliknięcia w potwierdzenie

To, o czym musisz koniecznie wiedzieć podczas takiego głosowania, to fakt, że nawet w najprostszych głosowaniach pracujesz z danymi osobowymi. Adres email w niektórych przypadkach jest daną osobową i trzeba dostosować się do wymogów ustawy o przetwarzaniu danych osobowych.

Dzięki prostym analizom statystycznym można łatwo wyłapać wszelkie anomalie w głosowaniu – na przykład głosy oddawane z nieznanej domeny z kilkuset adresów na jedną opcję w ciągu kilku minut. Pomaga to określić potencjalne zagrożenie i pozwala na przyjrzenie się z bliska wszystkim danym.

Jeśli głosowania dokonano z różnych adresów email, ale potwierdzenia dokonane zostały z jednego adresu IP, czyli z jednej sieci/komputera, to mamy prawie pewność, ze doszło do nadużycia. Prawie – bo nigdy w 100% nie będziemy pewni, że nie jest to na przykład maskowana sieć osiedlowa, z której wszyscy uczestnicy zagłosowali akurat w jednym czasie.

Podsumowanie

Nadużycia w glosowaniach za pomocą emaila wystąpią zawsze. Nawet jeśli chcemy zagłosować ze skrzynek, którymi na co dzień dysponujemy, to umożliwia to kilkukrotne zagłosowanie. To, czy jest to nadużycie zależy tylko od tego jak zdefiniujemy granicę ile głosów powinna oddać jedna osoba. Jest to niestety granica płynna, a na obronę prawdziwości takiego głosowania możemy podeprzeć się argumentem, że właściwie już wszyscy korzystamy z kilku skrzynek mailowych.

Jeśli jednak zachodzi podejrzenie lub potwierdzony fakt sztucznego zawyżania liczby głosów, to będziemy zmuszeni interweniować ręcznie – a w tym przypadku powinniśmy się podeprzeć przepisami regulaminu.

Może potrzebujesz takiego systemu do swoich potrzeb? Zapraszam do kontaktu.

CC BY-NC-SA 4.0 Głosowanie przez Internet – jak natłuc głosów i przed takim tłuczeniem się bronić by Karol Krzyczkowski is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.

One Comment

  1. Kamil Bąbel
    Kamil Bąbel 17 listopada 2016

    Nie wiedziałem, że skrzynki ignorują kropki w adresach. Rzeczywiście – działa. Dzięki za zwrócenie uwagi na ten aspekt.

Dodaj komentarz

%d bloggers like this: