Kosztowny państwowy system ePUAP dba o bezpieczeństwo obywateli implementując zalecane mechanizmy bezpieczeństwa. Serwis, jak przystało na kosztujący 120 milionów projekt, oferuje m.in. dwuskładnikowe uwierzytelnienie. Aby się dostać do konta, poza loginem i hasłem, od obywatela wymagany jest dodatkowy kod wysyłany e-mailem lub SMS-em. Problem w tym, że ominięcie wymogu podania kodu jednorazowego podczas logowania jest banalnie proste. Jeszcze w maju problem zgłosiliśmy do COI (Centralnego Ośrodka Informatyki działającego pod kontrolą Ministerstwa Cyfryzacji), ale pomimo wielu zapewnień, że dziurę usunięto, do dziś wymóg podania kodu jednorazowego wciąż można ominąć…

“ePUAP należałoby zaorać”

Wspominaliśmy już na łamach Niebezpiecznika, że obecna Minister Cyfryzacji najchętniej “zaorałaby” projekt ePUAP. Ze swoich źródeł wiemy, że doradcy w Ministerstwie Cyfryzacji jeszcze za czasów ministra Trzaskowskiego doradzali podobnie drastyczne rozwiązanie problemu — “wrzucenie granatu”. Niestety, to niewykonalne i na ePUAP obywatele są po prostu skazani. Trzeba go więc sukcesywnie łatać, ale jak pokazuje ta historia, nawet z tym jest duży problem…

Logowanie prawie dwuskładnikowe

Pewien Czytelnik w drugiej połowie maja zgłosił nam, że w ePUAP-ie można bardzo łatwo ominąć logowanie dwuskładnikowe. Wystarczyło wejść na stronę ePUAP, podać login i hasło, a gdy wyskoczyło okno proszące o podanie jednorazowego kodu (przesyłanego e-mailem lub SMS-em), wystarczyło to okienko zamknąć krzyżykiem… Potem trzeba było odczekać kilkadziesiąt minut i… voila! Po ponownym klinięciu na “Zaloguj” uzyskiwało się dostęp do konta bez konieczności podania kodu autoryzacyjnego.

Powodem takiego a nie innego zachowania systemu może być błędna obsługa wyjątku. System czeka X czasu na podanie kodu, a kiedy się nie doczeka, mimo wszystko kontynuuje proces logowania lub zmienia stan sesji użytkownika tak, że podczas kolejnego logowania ta sesja jest już traktowana jako uwierzytelniona.

Co ciekawe, w czasie jednego z naszych testów nastąpiło jakieś opóźnienie w wysyłaniu e-maili z kodami — e-mail z kodem w ogóle nie przyszedł. Ale dzięki wykorzystaniu luki i tak udało się uzyskać dostęp do konta!

Kilka razy w trakcie testów zdarzyło się też, że po zalogowaniu z użyciem wspomnianej luki strona ePUAP traciła fason (nie ładował się CSS). Niezależnie od tego, można jednak było wykonywać operacje na koncie.

Poprawka w (długiej) drodze

Będąc pewnymi co do istnienia błędu, skontaktowaliśmy się z Centralnym Ośrodkiem Informatyki (to oni są obecnie odpowiedzialni za ePUAP, choć nie oni go popsuli). Rzeczniczka COI, Katarzyna Jedlińska, powiedziała nam, że ośrodek wie o problemie i zamówił stosowną poprawkę od “zewnętrznego podmiotu”. Poproszono nas również o nieopisywanie sprawy, dopóki luka nie będzie załatana. To było jeszcze w maju.

Skończył się maj, przeleciał czerwiec, zaczął się lipiec. Mieliśmy być powiadomieni o załataniu luki, ale COI się do nas nie odezwał. Tymczasem, luka wciaż była niezałatana. 11 lipca wciąż udało nam się skutecznie zalogować do ePUAP z pominięciem wymaganego kodu jednorazowego. Wtedy też ponownie zwróciliśmy się z pytaniami do COI. Jego przedstawiciel, Marek Rozbicki, powiedział nam, że firma Comarch wreszcie przygotowała poprawkę:

Otrzymaliśmy poprawkę, która przeszła wszystkie niezbędne testy. Wdrożenie poprawki jest zaplanowane na dzień najmniej inwazyjny, będzie to sobota 16 lipca

I choć poprawka powinna być już dawno wdrożona, to w poniedziałek dalej byliśmy w stanie logować się na konto ePUAP bez podawania kodu jednorazowego. Różnica polegała na tym, że przy logowaniu w ogóle nie padało pytanie o kod jednorazowy. Wystarczyło, że podaliśmy login, hasło i zalogowało nas do systemu, mimo iż w ustawieniach konta wciąż zaznaczona jest opcja “Dodatkowo potwierdzaj logowanie do ePUAP kodami do autoryzacji”.

Dziś system znów pyta o kod jednorazowy, ale dalej można pominąć jego podawanie, dokładnie w ten sposób, jaki w maju opisaliśmy COI. Łatka Comarchu chyba mimo wszystko jednak coś naprawiła — teraz style CSS ładują się bez problemów… ;)

Ta dziura może pomóc niektórym użytkownikom ePUAP-u doświadczającym innego błędu systemu

Skoro dziury nie da się usunąć, spróbujmy doszukać się w niej jakiegoś pozytywnego aspektu. Ta luka może przydać się osobom, które całkowicie utraciły dostęp do konta ePUAP ze względu na stratę dostępu do swojej skrzynki e-mail lub telefonu, które wykorzystały podczas rejestracji w systemie.

Problem takich nieszczęśników był poruszany w Dzienniku Internautów — w razie utraty dostępu do telefonu lub e-maila (tego używanego do autoryzacji) nie da się bowiem odzyskać swojego konta nawet idąc do urzędu i stając przed urzędnikiem. Można tylko unieważnić profil zaufany w jednym z punktów potwierdzających, następnie trzeba założyć nowe konto oraz złożyć nowy wniosek o profil zaufany, który trzeba potwierdzić kolejną wizytą w urzędzie. Niestety traci się w ten sposób dostęp do dokumentów zgromadzonych na pierwszym koncie. Osobną sprawą jest czasochłonność tej procedury.

Korzystajcie więc, póki możecie, zablokowani użytkownicy ePUAP-u. Po ominięciu dwuskładnikowego uwierzytelnienia, wyłączcie je w ustawieniach konta — możecie to zrobić bez dostępu do telefonu i e-maila. Potem na spokojnie możecie zgrać dokumenty z konta.

Pozorne zabezpieczenia w ePUAP…

“Niezałatanie” luki zajęło COI i Comarchowi dokładnie 54 dni od czasu, gdy my się o niej dowiedzieliśmy. Sama luka istniała jednak już wcześniej i została do ePUAP-u zgłoszona przez naszego czytelnika. Zdajemy sobie sprawę, że logowanie dwuskładnikowe nie jest obowiązkiem na ePUAP, niemniej część użytkowników życzy sobie tego dodatkowego zabezpieczenia i nie jest dobrze, jeśli to zabezpieczenie jest jedynie pozorne.

Na koniec przypomnijmy, że Ministerstwo Cyfryzacji zleciło audyt systemu ePUAP. Wykazał on wiele nieprawidłowości, które opisaliśmy w artykule “ePUAP należałoby zaorać“, bazując na fragmentach ministerialnego raportu, jakie wpłynęły do redakcji Niebezpiecznika.

Jakiś czas temu, członek stowarzyszenia Sieć Obywatelska, Karol Breguła (vel Adam Dobrawy) złożył wniosek o dostęp do informacji publicznej, którego celem było pozyskanie pełnego raportu z wspomnianego wyżej audytu. Z Ministerstwa Cyfryzacji Karol otrzymał ocenzurowaną kopię raportu, bez podania podstawy prawnej usunięcia poszczególnych fragmentów. Z tego powodu, Karol złożył skargę do sądu, w odpowiedzi na którą otrzymał od pełnomocnika COI pismo, w którym COI twierdzi, że adres e-mail Karola według CERT i McAfee jest w złośliwej domenie .tk, a w dodatku utrzymuje on kontakty z hackerspace.pl (brzmi groźnie, prawda?).





Idąc tym tokiem myślenia, ostrzegamy, że BMW to samochód gangsterów. A Karolowi radzimy pobranie plakietki McAfee “Hackerproof” — wystawiają ją każdemu. Jej wstawienie na stronę powinno udowodnić, że domena jest wolna od zagrożeń. O ile oczywiście pełnomocnicy COI nie mają w umysłach zahardcodowanego regexa, że każde wystąpienie ciągu .*hacker.* == zło. Gdyby mieli, to do każdego pisma sugerujemy dołączać ten kamień antywirusowy (działa, potwierdzone info!)



Otrzymaliśmy oświadczenie w powyższej sprawie od Marka Rozbickiego z COI:

W nawiązaniu do naszej rozmowy oraz publikacji, która została umieszczona w serwisie Niebezpiecznik.pl chcemy poinformować, że temat dwuskładnikowego logowania jest pod stałym monitoringiem COI, a za realizację odpowiada wykonawca systemu. W ostatni weekend wdrożyliśmy kilkadziesiąt poprawek dotyczących ePUAP wgrywanych kaskadowo, w tej grupie znalazły się także zagadnienia dotyczące bezpieczeństwa. Poprawka odnosząca się do dwuskładnikowego uwierzytelniania niestety została zwrócona do dostawcy. Pilnujemy tej sprawy i dokładamy wszelkich starań, by wykonawca wywiązał się ze swoich zobowiązań. Pamiętajmy jednak, że funkcjonalność dwuskładnikowego uwierzytelniania jest dodatkową opcją zabezpieczenia, którą stosuje obecnie ok. 18 000 użytkowników ePUAP (użytkownicy logujący się w lipcu 2016 r.) spośród ponad 1 550 000 wszystkich użytkowników ePUAP, co stanowi ok. 1,2% wspomnianych użytkowników korzystających z tego sposobu uwierzytelniania.

Przeczytaj także: