Dane polskich przedsiębiorców można było przez 2 lata wykradać z ZUS-u. Dziurę łatano 4 miesiące…

OXYGEN THIEF

Bardzo aktywny
Członek Załogi
Administrator
Dołączył
26 Maj 2010
Posty
35551
Reakcje/Polubienia
24588
Miasto
Trololololo
Dziś oddajemy w Wasze ręce artykuł, z którego publikacją musieliśmy czekać 4 miesiące i 11 dni. Dlaczego tak długo? Bo aż tyle czasu ZUS-owi zajęło zrozumienie istoty i usunięcie błędu, który im zgłosiliśmy na początku maja… To smutna wiadomość, bo dzięki dziurze w programie Płatnik narażone na wyciek były dane wielu polskich przedsiębiorców…

Jak poważny jest poważny błąd?
We wrześniu ubiegłego roku pisaliśmy o bardzo poważnej luce w systemie ZUS-u, która pozwalała poznać zarobki milionów Polaków — raj dla wszelkiej maści wywiadowni gospodarczych, rekruterów, detektywów czy po prostu ciekawskich sąsiadów. Dziura była poważna i ZUS nie kwestionował potrzeby jej naprawienia.

W maju 2017 roku, dzięki Czytelnikowi poznaliśmy inną lukę, którą też zgłosiliśmy do ZUS-u, ale jej znaczenie musieliśmy ZUS-owi dłużej wyjaśniać…

Winny program Płatnik
ZUS udostępnia program Płatnik, który służy do przesyłania dokumentów elektronicznych do zakładu. Z tego programu korzysta wielu przedsiębiorców oraz biura rachunkowe obsługujące przedsiębiorców.

Aby z Płatnika skorzystać, trzeba pobrać do niego dane płatników z centralnych serwerów ZUS-u. I tutaj właśnie występował problem, bo w Płatniku nie było skutecznych zabezpieczeń procesu synchronizacji danych. Każde biuro rachunkowe mogło pobrać dane dowolnego przedsiębiorcy, dla którego wcale nie świadczyło żadnych usług. Co znajdowało się w tych danych?

1. PESEL przedsiębiorcy,
2. nazwę skróconą,
3. telefon i email,
4. adres zamieszkania,
5. adres do korespondencji,
6. dane o biurze rachunkowym, które go obsługuje.

Co więcej:

  • …osoba, której dane pobrano w taki sposób, nie wiedziała o pobraniu danych. Nie mogła więc iść do ZUS-u i zgłosić, że ktoś nieuprawniony pobrał jej dane.
  • w eksperymencie (o czym poniżej) udowodniliśmy że ZUS nie monitoruje czy ktoś kto pobiera z ich systemu dane, faktycznie robi to zgodnie zakresem swojego dostępu. ZUS w przpypadku naszego eksperymentu nie wykrył nadużycia, chociaż — jak twierdzi — monitoruje logi i sprawdza je pod kątem nadużyć. Przypomnijmy, że tego typu analiza logów pozwoliła (ale także po czasie) wykryć anomalie w dostępie do bazy PESEL, z której masowo dane pobierali komornicy, por. Wyciek danych milionów Polaków z bazy PESEL)
  • Wreszcie, do pobrania danych wymagany był e-podpis, który identyfikuje osobę odpowiedzialną za nadużycie — co według ZUS-u zapewniało bezpieczeństwo procesowi. Ale e-podpis można założyć na tzw. słupa. Więc nawet gdyby ZUS monitorował dostęp i sam zorientował się, że ktoś w sposób nieautoryzowany pobrał dane z ich systemu, to sprawa mogła się skończyć na panu Janku, który nigdzie nie mieszka i niewiele wie.
Problem: autoryzacja przewidywalnymi danymi
Oto, jak przed usunięciem luki wyglądał proces importu danych do Płatnika:

  • Użytkownik płatnika (np. księgowy, ale niekoniecznie) dodawał w programie nowego przedsiębiorcę. Dodawał NIP, Regon, imię, nazwisko i siedzibę. Te wszystkie dane znajdują się w Centralnej Ewidencji i Informacji o Działalności Gospodarczej (CEIDG).
  • Następnie użytkownik klikał w Administracja -> Aktualizuj komponenty programu i dane płatnikai dalej: Pobierz aktualizacje.
  • Program pytał o datę powstania obowiązku opłacania składek z ostatniego wysłanego do ZUS formularza ZPA lub ZFA. Odpowiedź znajduje się w CEIDG (to data rozpoczęcia wykonywania działalności gospodarczej).
  • Następnie użytkownik podpisywał się podpisem elektronicznym i dostawał:
    1. PESEL przedsiębiorcy (nie jest publicznie dostępny)
    2. nazwę skróconą,
    3. telefon i email, (nie musi być publicznie dostępny)
    4. adres zamieszkania, (nie musi być publicznie dostępny)
    5. adres do korespondencji,
    6. dane o biurze rachunkowym.
Tak to wyglądało w przypadku nowych firm. Jeśli chciało się pozyskać dane już założonej firmy, trzeba było dodatkowo podać wartość kwoty składek na ubezpieczenie społeczne za konkretny miesiąc. Problem w tym, że tę wartość można było łatwo zgadnąć w przypadku firm jednoosobowych. Takie firmy mogą płacić jedną z czterech kwot składek tzn.:

  • “mały ZUS”,
  • “mały ZUS” bez chorobowego,
  • “duży ZUS”,
  • “duży ZUS” bez chorobowego.
Potrzeba maksymalnie czterech prób i pobieramy wskazane wyżej dane oraz archiwalne deklaracje ZUS.

platnik-600x416.png

Nie ujawniliśmy danych pana Feliksa. Ten zrzut pochodzi z instrukcji do Płatnika, ale wystarczy by pokazać w czym rzecz.

Warto dodać, że problem nie dotyczył firm zatrudniających pracowników, bowiem w ich przypadku wartość kwoty składek jest trudna do zgadnięcia. Dotyczył natomiast nowych firm (gdy pracowników jeszcze nie ma) oraz właściwie wszystkich firm jednoosobowych. Możliwe było także pobranie danych przedsiębiorców, którzy już zakończyli działalność.

Co ZUS na to?
Problem zgłosił nam doradca podatkowy, który w ten sposób pobrał dane swojego klienta. Sprawa od razu wydała nam się poważna. Zdaniem tego doradcy problem istniał od ok. 2 lat tzn. od wprowadzenia Interaktywnego Płatnika Plus (IPP), który umożliwił synchronizację z danymi ZUS.

8 maja 2017 roku zwróciliśmy się z pytaniami w tej sprawie do ZUS. Po upływie ponad 2 tygodni dostaliśmy następującą odpowiedź (wytłuszczenia nasze).

Program Płatnik ma możliwość pobrania z ZUS aktualnych danych płatnika i ubezpieczonych oraz zaktualizowania na ich podstawie kartotek utrzymywanych w bazie danych programu. Pobranie tych danych wymaga złożenia podpisu na oświadczeniu, przekazywanym w ramach protokołu wymiany danych z usługami oraz podania informacji z poprzednio wysłanych do ZUS dokumentów. Program nie pozwala na pobranie danych z rejestrów centralnych (Repliki) bez uzyskania oświadczenia podpisanego przez płatnika z wykorzystaniem certyfikatu kwalifikowanego, oznaczającego, że płatnik posiada prawo do pobierania tych danych oraz bez przekazania niezbędnych do uwierzytelnienia danych z dokumentów przekazanych do ZUS

Program Płatnik odnotowuje w logu operacyjnym programu każde pobranie informacji z ZUS.

Moduł udostępniania danych płatnikom wymaga uwierzytelnienia przy wykorzystaniu kwalifikowanego podpisu elektronicznego. Następuje to poprzez przesłanie przez osobę uczestniczącą w komunikacji dokumentu opatrzonego podpisem weryfikowanym przy wykorzystaniu certyfikatu kwalifikowanego. System autoryzacji dostępu w usługach udostępniania danych z Repliki KSI jest oparty na oświadczeniu osoby o prawie do komunikacji z ZUS w imieniu danego płatnika oraz wyniku porównania danych zgromadzonych po stronie oprogramowania interfejsowego (programu Płatnik) z danymi którymi dysponuje ZUS.

Usługi udostępniania danych płatnikom gromadzą dane niezbędne m. in. do monitorowania sytuacji nietypowych i błędnych oraz dokumentowania faktu udostępnienia danych podmiotu X osobie Y. Logi dokumentujące fakt pobrania informacji z ZUS, utrzymywane przez usługi udostępniania danych płatnikom, są zapisywane w bazie danych. Dla każdego żądania udostępnienia danych są logowane informacje:

i) data i czas rozpoczęcia usługi,
ii) data i czas zakończenia usługi,
iii) status końcowy, którym zakończyła się usługa,
iv) w przypadku odmowy udostępnienia danych – informacja o przyczynie odmowy,
v) dane identyfikacyjne podmiotu żądającego udostępnienia danych,
vi) identyfikacja podmiotów, których dane zostały udostępnione. W przypadku danych z konta płatnika: identyfikator konta płatnika, w przypadku danych ubezpieczonych: wektor identyfikatorów kont ubezpieczonych,
vii) identyfikacja techniczna podmiotu wysyłającego,
viii) w bazie danych składowane są podpisane dokumenty oświadczenia o prawie do pobierania danych,
ix) nazwa oprogramowania interfejsowego z poziomu którego usługa była wywołana.

Kwestia użycia kwalifikowanego podpisu elektronicznego innej osoby jest uregulowana w ustawie z dnia 5 września 2016 r. o usługach zaufania oraz identyfikacji elektronicznej.

Art. 40 ust 1 Kto składa kwalifikowany podpis elektroniczny lub zaawansowany podpis elektroniczny z wykorzystaniem danych do składania podpisu elektronicznego przyporządkowanych do innej osoby, podlega grzywnie, karze ograniczenia wolności albo pozbawienia wolności do lat 3.

Art. 41. Kto bez uprawnienia kopiuje lub przechowuje nieprzyporządkowane do niego dane do składania zaawansowanego podpisu elektronicznego lub pieczęci elektronicznej lub inne dane, które mogłyby służyć do ich odtworzenia,
podlega grzywnie, karze ograniczenia wolności albo pozbawienia wolności do lat 3.

ZUS w kontakcie z płatnikami składek uczula ich, jak ważne jest aktualizowanie i sprawdzanie udzielanych upoważnień do reprezentowania płatnika przed ZUS szczególnie w zakresie wyboru pracownika, który ma otrzymać w danej firmie podpis kwalifikowany, który jest niezbędny do obsługi PP.

Z poważaniem

Wojciech Andrusiewicz
Rzecznik Prasowy ZUS

Całą tę odpowiedź można skrócić do słów: “Proces jest bezpieczny, i zgodny z prawem. Nic się nie stało”.

W odpowiedzi są pewne fragmenty, które budzą kontrowersje. Przykładowo rzecznik ZUS twierdzi, że system porównuje dane zgromadzone w Płatniku z danymi, którymi dysponuje ZUS. Niestety, pominięto sytuację w której — jeśli w Płatniku nie ma żadnych danych danych o przedsiębiorcy to — dane i tak będą pobrane.

ZUS wskazuje także, że sam fakt złożenia podpisu jest formą autoryzacji (potwierdzeniem upoważnienia do przetwarzania danych). Ale przecież operacja podpisu w żaden sposób nie świadczy o tym, że ktoś kto podpisał żądanie danych na prawo do ich pozyskania. Aby to udowodnić, przeprowadziliśmy test.

Zrobiliśmy eksperyment
Postanowiliśmy udowodnić, że dane można pobrać w sposób nieautoryzowany, pomimo tego, co twierdzi ZUS. Zaprzyjaźniony doradca podatkowy otrzymał od nas informację, że jeden z naszych redaktorów miał kiedyś jednoosobową działalność. Podaliśmy mu dane tej działalności, które są publicznie dostępne (w CEiDG: NIP, REGON, daty itd.). Na podstawie tych informacji doradca ten bez problemu pobrał dane naszego ofiarnego redaktora. Musiał tylko zgadnąć jaki ZUS płacił nasz redaktor i udało się to zrobić w drugiej próbie (redaktor tu nie pomagał).

ZUS nie zablokował dostępu. ZUS nie odezwał się do doradcy, z informacją że dane pobrał w sposób nieuprawniony. Ile jeszcze doradców (i od jak dawna) pobierało czyjeś dane, a ZUS o tym nie wie?

Gdzie zrobiono błąd?
W swojej odpowiedzi ZUS chwali się autoryzacją poprzez “podanie informacji z poprzednio wysłanych do ZUS dokumentów”. Taka autoryzacja nie byłaby zła, gdyby dane z tych dokumentów były unikatowe i nieprzewidywalne.

Przy elektronicznym rozliczaniu PIT-ów musimy podać kwotę z poprzedniego zeznania i jest to liczba na tyle unikatowa i nieprzewidywalna, że może stanowić narzędzie autoryzacji. Ale w modelu zaproponowanym i wykorzystywanym przez ZUS, w przypadku firm jednoosobowych kwota z formularza może być jedną z czterech możliwości. Nie jest unikatowa i da się ją zgadnąć, dlatego taki mechanizm autoryzacji należy uznać za chybiony.

4 miesiące (nie)łatania
Jak już wspomnieliśmy, istnienie luki po raz pierwszy zgłosiliśmy ZUS-owi 8 maja. 23 maja dostaliśmy zacytowaną powyżej odpowiedź rzecznika. Zadaliśmy dodatkowe pytania i dopiero po tym kroku, 24 maja po raz pierwszy otrzymaliśmy potwierdzenie, że luka będzie usunięta. ZUS zrozumiał, że jednak coś jest nie tak.

Czekaliśmy więc spokojnie na wprowadzenie poprawki. W czerwcu spytaliśmy ZUS o postępy. Rzecznik ZUS Wojciech Andrusiewicz odpowiedział tak:

Pracujemy razem z naszymi wykonawcami. Proszę jeszcze o chwilkę czasu.

No więc poczekaliśmy “jeszcze chwilkę” i 23 czerwca znów się przypomnieliśmy w temacie. Wtedy otrzymaliśmy taką wiadomość:

Do końca przyszłego tygodnia powinniśmy mieć deklarację wykonawcy jak zmienić system autoryzacji. „Zmeilujmy” się wówczas.

Niestety, do 24 lipca się nie “zmejlowaliśmy”. Powiadomiliśmy więc o sprawie minister Annę Streżyńską, która nie raz pomagała nadać sprawom odpowiedni priorytet. Wiemy, że i w tym przypadku próbowała zrobić co w jej mocy by uświadomić problem kierownictwu ZUS.

Po kolejnej próbie kontaktu z ZUS-em, która także kończyła się obietnicą działania, ale brakiem widocznych postępów zaczęliśmy całkiem poważnie zastanawiać, czy nie ujawnić luki, której istnienie miesiącami ignorowano. Niestety to narażałoby bezpieczeństwo wielu ludzi. Z drugiej strony zagrożenie i tak było realne, bo z czasem coraz więcej osób mogło tę lukę odkryć “niezależnie”.

Wreszcie, 7 września dostaliśmy informację od minister Streżyńskiej, że przygotowywana jest łatka. Zwróciliśmy się do ZUS-u w tej sprawie i okazało się, że testy trwają i łatka miała być wdrożona na 11 września.

12 września dowiedzieliśmy się, że jednak wdrożenia nie będzie aż do 15 września, bo ZUS nie chce wdrażać zmian przed “szczytem dokumentów”, które napływają do niego w tym okresie. Dopiero wczoraj (19 września) dowiedzieliśmy się o wprowadzeniu poprawek. Wprowadzono silniejsze zabezpieczenie podczas uwierzytelniania, dodając pytania o dane osoby upoważnionej lub o dane ze złożonych wcześniej dokumentów.

Czy ZUS mógł się zorientować w nadużyciach?
ZUS nie mógł być świadomy pojedynczych nadużyć, jeśli w ogóle do nich doszło. Czy Zakład mógłby wykryć masowe pobieranie danych, gdyby ktoś coś takiego zrobił? Spytaliśmy o to rzecznika ZUS i dostaliśmy taką odpowiedź.

Zgodnie z przeprowadzonymi analizami nie doszło do sytuacji, w której osoby niepożądane miały dostęp do danych wrażliwych innych osób i podmiotów. Jeżeli dokonaliśmy takiej analizy oznacza to, że mieliśmy możliwość wykrycia potencjalnych nadużyć.

Rzecznik ZUS Wojciech Andrusiewicz dodał też, że czas jaki był potrzebny na uszczelnienie dostępu wynikał z Prawa zamówień publicznych. Tego typu prace prowadzi bowiem jeden z trzech potencjalnych wykonawców w ramach umowy ramowej.

Poprawki wreszcie wprowadzone, ale…
W przyszłym roku w życie wchodzi RODO. Zezwolenie na nieuprawniony dostęp do danych w przypadku firm będzie kończyć się wysokimi karami. W przypadku instytucji publicznych, wysokich kar nie będzie… No cóż, życie nie jest sprawiedliwe.

Teraz instytucje publiczne nie czują wielkiej odpowiedzialności ani nie mają żadnej motywacji, aby łatać dziury, które znajdują się w ich systemach, a które narażają Polaków na wyciek ich danych. Po wejściu RODO, ta motywacja się nie pojawi. Bacik będzie tylko na firmy, nie na administrację publiczną.

Być może to by się zmieniło, gdyby obywatele wiedzieli, że ktoś pozyskuje (w sposób nieautoryzowany) ich dane. Ale większość z Polaków nie wie, w jakich bazach, jakich instytucji znajdują się ich dane (i jakie to są konkretne dane). Polacy nie wiedzą, kiedy ktoś sięga do tych danych. Szkoda, bo przecież można by wysyłać, np. przez e-PUAP, notyfikacje, za każdym razem, kiedy w jakiejś instytucji ktoś sięga do naszych danych. To by była otwartość. Normalność. I wtedy ludzie wykrywaliby naruszenia, a nie “zaawansowane systemy”, które jak widać na niniejszym przykładzie nie zawsze wychwytują anomalie w dostępie.
info:niebezpiecznik.pl
 
Do góry