Kiedy stan Waszyngton zaprosił internautów do testowania nowej platformy do oddawania głosów w lokalnych wyborach przez internet, nie spodziewał się, że dzięki błędom w systemie przewodniczącym Rady Edukacji zostanie robot z serialu Futurama.
Kilka dni temu skończyła się konferencja Financial Cryptography and Data Security 2012, podczas której naukowcy z Uniwersytetu Michigan przedstawili ciekawe wnioski z audytu bezpieczeństwa internetowej platformy dla głosujących w lokalnych wyborach. Audyt przeprowadzono w 2010, jednak dopiero teraz zostały opublikowane jego wyniki. Wyniki, musimy przyznać, zatrważające.
We wrześniu 2010 stan Waszyngton uruchomił system informatyczny, umożliwiający oddawanie głosów obywatelom, którzy w trakcie głosowania znajdują się poza terytorium stanu. Stanowy organ odpowiedzialny za organizację głosowania zdecydował się nie tylko skonstruować system w architekturze open source, ale także zorganizował jego publiczne, otwarte testy. W projekcie wziął udział profesor Uniwersytetu Michigan Alex Halderman, który zaprosił również kilkoro swoich studentów.
W ciągu pierwszych kilku godzin testów zespół profesora odkrył możliwość zdalnego wykonywania kodu na serwerze www projektu. System zbierał głosy użytkowników poprzez wysyłane przez nich na serwer wypełnione formularze PDF. Analiza kodu wykazała, że nazwy plików przesyłanych na serwer nie były prawidłowo przetwarzane i wysłanie pliku o nazwie foo.$(cmd) spowoduje wykonanie polecenia cmd. Problemem był jeszcze firewall blokujący wszystkie wychodzące połączenia tcp, jednak zadziałało proste rozwiązanie, polegające na umieszczeniu wynikówi wykonywanych poleceń na serwerze www w katalogu z grafikami. Dla wygodniejszego penetrowania serwera zespół stworzył nawet narzędzia, umożliwiające korzystanie z interaktywnej sesji terminalowej. Co prawda wszystkie połączenia do serwera były analizowane przez system wykrywania włamań, jednak system ten nie analizował szyfrowanych połączeń HTTPS, umożliwiając atakującym pozostanie w ukryciu.
Zdobywanie wyższych uprawnień na serwerze nie okazało się konieczne, ponieważ użytkownik, na prawach którego pracował skrypt przetwarzający przesyłane pliki, posiadał wystarczające uprawnienia. Pozwoliło to dokonać kolejnych odkryć. W historii wydawanych poleceń znaleziono login i hasło do bazy danych, przechowującej wszystkie głosy. Pobrano również klucz publiczny, umożliwiający sfałszowanie wszystkich wcześniej oddanych głosów. Zaatakowano również z powodzeniem tajemnicę głosowania. Najpierw odkryto niezaszyfrowane glosy w katalogu /tmp. W oparciu o sygnatury czasu głosowania udało się je skojarzyć z ID głosujących, zapisanych w logu aplikacji. Z kolei ID głosujących powiązano z nazwiskami poszczególnych osób, odkrywając w tym samym katalogu /tmp plik z kodami dostępu, wysłanymi wszystkim uprawnionym do głosowania w całym stanie. Na koniec testu aplikacji zespół zmodyfikował stronę wyświetlającą podziękowanie dla głosującego, dorzucając do niej krótki kawałek muzyczny będący symbolem ich uniwersyteckiej drużyny sportowej. Testujący nie omieszkali także zafałszować wyników wyborów, umieszczając na szczycie listy kandydatów na stanowisko przewodniczącego stanowej Rady Edukacji swojego ulubionego bohatera kreskówki Futurama, robota Bendera.
Przy okazji ataku na aplikację www przeskanowano zakres adresów IP, stanowiących pulę przypisaną do systemu zarządzania wyborami. Znaleziono tam między innymi serwer terminalowy Digi Passport 8, z loginem „root” i domyślnym hasłem „dbps”, opisanym w dokumentacji. Dalsza analiza serwera pokazała, że hasło administratora brzmiało „cisco123”. Uruchomienie na serwerze wbudowanego keyloggera pozwoliło na przejęcie haseł administratorów pozostałych urządzeń sieciowych. W tej samej podsieci znaleziono dwie kamery internetowe, bez żadnych zabezpieczeń, pokazujące wejście do serwerowni oraz serwer zbierający głosy.
Po zakończeniu audytu profesor i jego zespół czekali na reakcję zarządzających systemem. Doczekali się jej dopiero po 36 godzinach, kiedy inny uczestnik testów zapytał organizatorów, co to za utwór odgrywany jest po oddaniu głosu. Do tego momentu organizatorzy nie mieli pojęcia o przełamaniu zabezpieczeń ich systemu.
Na skutek takiego wyniku testów system nie został dopuszczony do użycia w wyborach w 2010 roku. Pozostaje tylko pytanie, jak zabezpieczone będą systemy, z których korzystają i korzystać będą zarówno Amerykanie, jak i inne nacje.
Komentarze
Zastanawiam się jak można było stworzyć oprogramowanie takiej rangi w tak fatalny sposób..