Jakie są konkretne przyczyny katastrofy informatycznej, którą przeżyliśmy i przeżywamy nadal? Dlaczego system względnie łatwy do zbudowania - jest to zgodna opinia wszystkich informatyków - został wykonany tak jakby jego programistami byli studenci, którzy nie zdali egzaminu właśnie z programowania i tworzenia algorytmów?
Podam konkretny przykład: operatorzy systemu wyłapali na przykład taką niezgodność, że kiedy chcieli wprowadzić do niego wyniki głosowania z pierwszego okręgu do Rady m.st. Warszawy, system nie chciał ich przyjąć, informując, że już je ma. Tymczasem miał głosowania z pierwszego okręgu do Rady Dzielnicy Śródmieście. Innymi słowy w programach nie zapisano podstawowych testów lub wykonano je źle. System nie rozróżniał podstawowych danych z pliku wejściowego.
Jako informatyk stwierdzam, że to do złudzenia przypomina sabotaż instytucjonalny, być może komuś zależało na tym by Polacy przestali kompletnie wierzyć w demokratyczne procedury? Przypomnę, że każda aplikacja przy bardzo dużym obciążeniu powoduje problemy np. wyniki otrzymuje się nie po minucie tylko po 2 godzinach itd. Jest to normalne zjawisko, dlatego przeprowadza się testy wydajnościowe, by ewentualne problemy wychwycić na początkowym etapie rozwoju. Jak one wyglądały, zacytujmy tych za portalem niebezpiecznik.pl, którzy je wykonywali. Czytajmy, bo ABW niedługo - jest to niestety możliwe - wkroczy najprawdopodobniej do redakcji portalu i wszystko skonfiskuje:
„od soboty 7 rano do wczoraj (bez przerw i spania) próbowałem z operatorami informatycznymi ogarnąć ten beznadziejny soft. jaki to ja byłem szczęśliwy gdy wczoraj po 23 oddałem protokoły do PKW…. dziś mi dzwonią że coś poprawili w syswybie i moje dane (wczoraj rzekomo na ten czas poprawne) nijak mają się to tych nowo generowanych. cóż po 15:00 wsiadam w auto i lece produkować nowe raporty z syswyba , które później poddam (sic!) ręcznej edycji celem poprawy źle zaczytanych z syswyba danych… - co do samego kalkulatora - porażka, zmiana wersji aplikacji podczas pracy użytkowników i zmuszanie ich do ponownej edycji (bądź pisania od nowa….) protokołów . wspaniałe poszanowanie czasu pracy operatorów…- umieszczenie aplikacji wspomagającej prace wyborczą na ogólnie dostępnym kanale… i jeszcze jakimś czasowym (pewnie darmowym, lub za 1zł w promocji) home.pl (!), gdzi plik 6MB pobierał się 30min bez podanie mirrora (później był - w poniedziałek dostępny, czyli teoretycznie już po akcji wyborczej) - pliki definicyjne “klk” zmieniane 50 razy na godzine bez wskazanej informacji co do ich aktualnej versji (!). nikt tak naprawdę nie wiedział na jakiej aktualnie wersji wprowadza dane.”
Powiedzmy sobie szczerze to nie testy to kpina - w przypadku prawdziwych testów - wnioski, po ich przeprowadzeniu, powinny posłużyć ewentualnej korekty planów obciążenia instancji produkcyjnej. W przypadku tej aplikacji testy wydajnościowe udowodniły, że obsługa całego przedsięwzięcia nie byłaby możliwa. Jedną z przyczyn była także niedostateczna wydajność systemów PKW, z którymi zintegrowane było środowisko obsługi komisji wyborczych. Wpływ tego problemu na załamanie projektu - pewny. Analiza kodu udowodniła także, że w samym procesie przesyłania dokumentów na serwer nie stosowano żadnego uwierzytelnienia. Oznacza to, że każdy mógł przesłać fałszywe dokumenty na serwer, a zatem atak odmowy obsługi można zrobić z całą pewnością, a potencjalnie możliwe jest też uzyskanie wpływu na wynik wyborów (przyczyną jest między innymi akceptowanie przez aplikację dowolnego certyfikatu .pem zgodnego z prostymi do spełnienia kryteriami). Wpływ tego problemu na załamanie projektu - pewny. Jak wiemy projekt to była 100 metrówka, pospiech i jeszcze raz pośpiech. . Przetarg ogłoszony w listopadzie 2013r. został unieważniony, a ostatecznie zwycięzcę, który miał dostarczyć niezbędne oprogramowanie wyłoniono dopiero 4 sierpnia 2014 r. W tak krótkim czasie przygotowanie oprogramowania obsługującego skomplikowany proces jest niemożliwe. Dodatkowo w przetargu na opracowanie, wykonanie i wdrożenie systemu obsługi wyborów startowała tylko jedna mało doświadczona, dwuosobowa firma Nabino. Siłą rzeczy program musieli tworzyć bardziej lub mniej przypadkowi programiści pracujący na zlecenie, co zawsze przekłada się na jakość pracy. I na koniec z dokumentów znajdujących się na serwerach Państwowej Komisji Wyborczej wynika, że pewna część prac związanych z przygotowaniem szablonów była wykonywana przez osoby z niewielkim doświadczeniem programistycznym. I na koniec zacytuje wnioski informatyka, który aplikacje wyborczą przetestował:
Marek Małachowski:
Poświęciłem dwie godziny na analizę kodu programu do obsługi komisji wyborczych i kilka testów. Program do logowania wymaga klucza cyfrowego (pliku PEM) o odpowiednio przygotowanych parametrach. Programu nie interesuje przez kogo jest ten klucz podpisany. Więc używając OpenSSL można klucz taki samodzielnie wygenerować.
Przejrzałem instrukcję obsługi programu, gdzie podano przykład logowania. Używając danych pokazanych na obrazkach w instrukcji, można wygenerować sobie klucz logowania do programu jako członek komisji w Bałtowie (gdziekolwiek to jest). Zalogowanie się jako dowolny członek dowolnej innej komisji nie wymaga wyjątkowej wiedzy.
Czyli dowolna osoba, która miała dostęp do komputera z programem “Kalkulator1″, mogła się do niego zalogować jako dowolny członek komisji i dokonać w niezauważony sposób zmian w protokołach zapisanych na tym komputerze. Członkowie komisji mogli logować się jako ktoś inny, ale mogła to też zrobić osoba zupełnie z zewnątrz, nie znająca żadnego hasła, bez jakiejkolwiek autoryzacji. Wystarczy, że sama sobie prędzej swój własny klucz cyfrowy zrobiła.
Według instrukcji, jeśli w protokole występują “ostrzeżenia twarde”, to należy uzyskać kod, który umożliwia zaakceptowanie protokołu. Zdobywa się go telefonicznie od użytkownika na poziomie delegatury. Jak program sprawdza czy kod jest poprawny? Kod to nic innego jak MD5 z (nr-obwodu+rok+miesiac+dzien).
Co to wszystko oznacza?
- Dobrze, że ten system nie zadziałał.
- Jakiekolwiek bezpieczeństwo było gwarantowane tylko poprzez fizyczną kontrolę dostępu do komputera prowadzoną przez przewodniczącego komisji i sprawdzenie przez niego danych zarówno wysyłanych jak i drukowanych. Wszelkie klucze i hasła są w tym systemie zupełnie zbędne.
- Jeśli w protokole były błędy, wymagające kontaktu z “użytkownikiem na poziomie delegatury”, to osoba znająca kod źródłowy programu znała kod autoryzujący te błędy. A jak widać na githubie, kod źródłowy został upubliczniony dzień przed wyborami.
- Twórca tego programu to początkujący programista. W zasadzie każdy błąd jaki można popełnić w kodzie, został popełniony i mógłbym jeszcze długo pisać. Na przykład o tym, że eksport/import protokołów na serwer nie wymaga żadnej autoryzacji po stronie serwera i co to oznacza.
Myślę, że NIK będzie miał dużo pisania podczas kontroli i mam nadzieję, że za taki bubel Państwo nie zapłaci.
Czy to oznacza, że de facto KAŻDY mniejszym lub większym wysiłkiem może zmienić wyniki?!?!
P.S. Każdy kto zakupi e-book e-korupcja.pl otrzyma w ciągu 10 dni kompletny raport (100 stron) dotyczący informatyczno-organizacyjnej klapie ostatnich wyborów samorządowych.
Piotr Piętak
e-korupcja.pl
KATALOG FIRM W INTERNECIE