Wyborcza lekcja prawdy

Technologia informatyczna w służbie demokracji może łatwo przerodzić się w idealne narzędzie do manipulacji wynikami wyborów. Jak się okazuje, do zmiany algorytmu, pomimo niezależnego audytu oprogramowania, może dojść nawet w świetle jupiterów. Żadnego rozwiązania informatycznego bez samodzielnego przejrzenia kodu i samodzielnego skompilowania nie można już uznać za w pełni bezpieczne.

Technologia informatyczna w służbie demokracji może łatwo przerodzić się w idealne narzędzie do manipulacji wynikami wyborów. Jak się okazuje, do zmiany algorytmu, pomimo niezależnego audytu oprogramowania, może dojść nawet w świetle jupiterów. Żadnego rozwiązania informatycznego bez samodzielnego przejrzenia kodu i samodzielnego skompilowania nie można już uznać za w pełni bezpieczne.

Fałszowanie wyborów nigdy nie było tak łatwe jak obecnie. Wprowadzanie całkowicie nowego systemu głosowania, jakim jest głosowanie elektroniczne, stworzyło nowe możliwości dla osób chcących "poprawiać" demokrację w sposób praktycznie niezauważalny. W świetle tak ważnego wydarzenia, jak sfałszowanie wyborów na Ukrainie, dużo mniej widoczna była krótka notatka, która pojawiła się tylko w serwisie Computerworld Bezpieczeństwo Online. Dotyczyła ona planu sfałszowania wyborów w... Stanach Zjednoczonych.

Kilka tygodni temu amerykańskie serwisy opublikowały potwierdzone notarialnie oświadczenie Clintona Curtisa, amerykańskiego programisty, który na zamówienie przedstawiciela pewnej partii politycznej napisał oprogramowanie do fałszowania wyników wyborów. Rewelacja ta otworzyła oczy bezkrytycznym zwolennikom elektronicznego głosowania, rzucając przy okazji nieco światła na to, jak wyrafinowane przestępstwa możliwe są do przeprowadzenia na styku informatyki i polityki czy biznesu.

Nietypowy projekt

W latach 2000-2002 Curtis był zatrudniony przez firmę Yang Enterprises, zajmującą się m.in. tworzeniem oprogramowania dla systemów służących do zliczania głosów w wyborach prezydenckich. Rozwiązania takie, podobnie jak bankomaty, są rozbudowanymi o specjalizowane peryferia urządzenia komputerami PC umieszczonymi wraz z nimi w odpowiedniej obudowie. Jedyną metodą interakcji użytkownika (wyborcy) z komputerem (systemem wyborczym) jest ekran dotykowy.

Ekran wyświetla nazwiska kandydatów, wyborca zaś naciskając wirtualny "przycisk" oddaje głos na swojego kandydata. Głos jest zapamiętywany i sumowany z oddanymi wcześniej, w lokalnej bazie danych. Każdy komputer wyborczy przechowuje wewnętrzną bazę danych, w której nazwiska kandydatów są powiązane z liczbą głosów oddanych na każdego z nich. Pod koniec dnia głosy - już zliczone przez komputer - są protokołowane i wysyłane do centralnej komisji wyborczej. Procedura niewiele różni się od tradycyjnej.

W tym momencie jest już za późno, by fałszować wyniki na poziomie obwodowej komisji wyborczej. Można to jednak zrobić wcześniej - przy liczeniu głosów. Ponieważ głosowanie jest tajne, nikt nie wie, ile tak naprawdę oddano głosów na poszczególnych kandydatów. Nikt, poza komputerem...

A komputer jest programowany przez firmę, dostarczającą elektroniczną platformę wyborczą. Przejęcie kontroli nad tą firmą umożliwia wprowadzenie swojego oprogramowania. Tak właśnie działał program Curtisa.

Oprogramowanie to działało w tle i kontrolowało niewidzialne przyciski na ekranie dotykowym. Ich uruchomienie było możliwe tylko przez osobę, która wiedziała, że zostały zdefiniowane, a ponadto wiedziała, gdzie dokładnie się znajdują. Dodatkowym zabezpieczeniem była określona kolejność naciskania wirtualnych klawiszy.

Po spełnieniu tych warunków program modyfikował bazę danych z oddanymi głosami tak, by wskazany kandydat uzyskał ich więcej niż inni. Aby ogólna liczba oddanych głosów się zgadzała, te fałszywe były odejmowane z kolumn innych kandydatów. Zwycięzca uzyskiwał tym samym przewagę rzędu kilku procent. Całość "operacji" była zaplanowana tak, by dać wybranemu kandydatowi przewagę wystarczającą do wygrania wyborów, ale bez wzbudzania podejrzeń. Aby dodatkowo ukryć fałszerstwo, ingerencja w wynik głosowania miała być dokonywana tylko w niektórych okręgach.

Liczy się precedens

Nie jest jasne, czy system ten został zastosowany w praktyce. Rola Curtisa skończyła się wraz z napisaniem programu i pozytywnym przyjęciu go przez zatrudniającą go firmę. Ważny jest jednak sam fakt zaistnienia możliwości ingerencji w algorytm i, jak się wydaje, brak skutecznych mechanizmów zabezpieczeń przed innymi manipulacjami. Formalne zabezpieczenia istnieją, np. kod platformy wyborczej podlega audytowi prowadzonemu przez firmę niezależną od jej producenta. Spiskowcy uwzględnili to jednak w swoim planie: do audytu przedstawiono kod jeszcze przed umieszczeniem w nim modułu fałszującego.

Metoda obejścia audytu kodu źródłowego była bardzo prosta i skuteczna. Do audytu przedstawiono kod źródłowy przed umieszczeniem w nim modułu fałszującego oraz skompilowaną wersję z tym modułem. Tak więc w jednym kroku udało się uzyskać poświadczenie autentyczności dla "poprawionej" wersji oprogramowania i dla "czystego" kodu źródłowego. Formalnie audytor nie trzymał się procedury w stu procentach. Przepuszczenie przez audyt wersji binarnej niezgodnej z badanym kodem źródłowym jest poważnym uchybieniem. Jednak jest możliwe takie pokierowanie pracami audytora, by do tego doszło.

Platforma służąca do rozwijania oprogramowania wyborczego może być duża i skomplikowana, zawierać różne kompilatory i narzędzia pomocnicze. Przeprowadzenie całego procesu kompilacji samodzielnie przez audytora jest możliwe, ale trudne. Biorąc pod uwagę fakt, że audyt jest tylko częścią procesu budowania platformy wyborczej i podlega zarówno ograniczeniom budżetowym, jak i czasowym, pokusa założenia dobrej woli producenta i zrobienia audytu we współpracy z nim jest dla audytora bardzo silna.

W celu komercyjnej reprodukcji treści Computerworld należy zakupić licencję. Skontaktuj się z naszym partnerem, YGS Group, pod adresem [email protected]

TOP 200