23.01.2024 | 09:23

Adam Haertle

Trywialne błędy umożliwiały pobieranie danych medycznych i osobowych pacjentów

Większość popularnych błędów programistycznych w publicznie dostępnych systemach zostaje dość szybko wykryta i poprawiona. Czasem jednak nawet najprostsze pomyłki mogą długo czekać na odkrycie w miejscach, gdzie rzadko zaglądają informatycy.

Nie inaczej było i w tym przypadku – błędy umożliwiające przeglądanie danych innych pacjentów zostały odkryte i naprawione tylko dlatego, że nasz Czytelnik, pragnący zachować anonimowość, musiał zrobić badanie RTG.

Pierwszy błąd był trywialny

Czytelnik musiał wykonać prywatnie badanie rentgenowskie. Znalazł miejsce, które takie badanie przeprowadza, udał się tam, zarejestrował, badanie przeprowadził i dostał dostęp do serwisu online, gdzie miał odebrać wyniki prześwietlenia. Do serwisu zalogował się bez problemu PESEL-em i otrzymanym PIN-em.

Po zalogowaniu zobaczył, zgodnie z oczekiwaniami, swoje dane osobowe oraz wynik badania.

Jak na razie wszystko dobrze, prawda? Czytelnik następnie kliknął w wynik badania, by go powiększyć i zauważył, że adres obrazka ma postać:

https://multidiagnostica.lab-online.pl/Result/GetIcon?id=XXX

Jeśli dodamy, że Czytelnik jest programistą i ma pojęcie o bezpieczeństwie, pewnie się zorientujecie, dokąd zmierza ta historia. Tak, po zmianie ID na końcu linka zobaczył wyniki innego pacjenta.

Nie jest dobrze, prawda? Ale w sumie to tylko jakiś obrazek jakiegoś RTG, nie ma żadnej tragedii. Mamy do czynienia z incydentem, oczywiście, ale jego skutki nie będą katastrofalne, nie wiemy nawet, czyje zdjęcia przeglądamy. Co także istotne, dostęp do adresu mają tylko zalogowani użytkownicy – trzeba więc być pacjentem z dostępem do własnych wyników, by na ten błąd natrafić.

Ale to nie koniec historii.

Drugi błąd tak samo trywialny

Czytelnik postanowił spojrzeć, jak wczytywane są dane osobowe na poprzednim ekranie. Okazało się, że jest to wywołanie AJAX-em, także z ID na końcu zapytania:

https://multidiagnostica.lab-online.pl/Result/ViewResultDiag?id=XXX

Tu robi się już mniej fajnie, ponieważ, jak widać na zrzucie ekranu poniżej, nagle dostajemy takie dane innej osoby, jak imię, nazwisko, PESEL czy dane lekarza, który skierował na badanie.

To już wygląda na całkiem poważny incydent. Nadal jednak otrzymujemy pojedyncze dane pojedynczych osób, jeśli trafimy w odpowiednie ID i najpierw musimy znać login i hasło dowolnego użytkownika, by móc zobaczyć cudze informacje. Ale to nie koniec historii.

Trzeci błąd jeszcze gorszy

Analizując zgłoszenie Czytelnika, zauważyliśmy, że na stronie wyników badania znajduje się także link do innej usługi, czyli przeglądarki wyników badań w popularnym medycznym formacie DICOM. Link prowadził do strony pod adresem:

https://multidiagnostica.lab-online.pl:4546/viewer/DisplayStudy.html?p1=XXX

Tam także pojawiały się dane pojedynczych pacjentów, lecz co ukazało się naszym oczom, gdy skróciliśmy ścieżkę? Pod adresem:

https://multidiagnostica.lab-online.pl:4546/viewer/

czekał bez żadnego uwierzytelnienia panel całego systemu podglądu wyników badań tej placówki.

Po wejściu do menu „Szukaj” pojawiała się taka oto wyszukiwarka:

Wyszukiwarka za jednym zapytaniem zwracała 1000 wyników. Szybka analiza pokazała, że dziennie w systemie rejestrowanych jest między 100 a 200 badań.

Bez żadnego problemu można było sięgnąć do danych archiwalnych – tu przykładowe dane sprzed roku:

Można więc śmiało oszacować, że każdy, kto odkrył ten adres strony, mógł poznać dane osobowe i wyniki badań tysięcy osób. Dlaczego system był skonfigurowany bez uwierzytelnienia? Według podręcznika użytkownika, który znaleźliśmy w sieci, domyślna konfiguracja obejmuje uwierzytelnienie, więc ktoś musiał celowo je wyłączyć. Nie był to najlepszy pomysł, ujmując rzecz delikatnie.

Zgłoszenie i reakcja firmy

Odkrycie tego samego dnia zgłosiliśmy firmom odpowiedzialnym za system, zarówno prowadzącej badania, jak i producentowi oprogramowania. Reakcja była szybka – następnego dnia systemy zniknęły z sieci, a my dostaliśmy potwierdzenie przyjęcia zgłoszenia i podjęcia działań, w tym zawiadomienia UODO. Incydent zgłosiliśmy także do zespołu CSIRT Centrum e-Zdrowia – najmłodszego polskiego sektorowego zespołu bezpieczeństwa zajmującego się obszarem ochrony zdrowia.

Czy mam się przejmować?

Problem opisywany powyżej w największym stopniu dotyczył klientów firmy Multidiagnostica, prowadzącej badania RTG w kilku punktach na terenie Krakowa. Prawdopodobnie mógł także dotknąć klientów innych firm, korzystających z tego samego systemu obsługi opartego o adresy w domenie lab-online.pl. Poszukajcie w historii przeglądarki, czy mieliście tam konto. Istnieje spora szansa, że dzięki Czytelnikowi, który problem odkrył i nam zgłosił, nikt nie wykorzystał tego błędu do pozyskania waszych danych w złych celach.

Choć opisywane powyżej błędy są niezwykle trywialne (a jeden lepszy od drugiego), to przez długi czas pozostawały nieodkryte, ponieważ ich identyfikacja wymagała wcześniejszego logowania do systemu. Pamiętajcie o tym, gdy kiedyś gdzieś zalogujecie się, by odebrać swoje wyniki badań. CSIRT CEZ na pewno chętnie poprawi poziom bezpieczeństwa w tym sektorze, z korzyścią dla nas wszystkich.

Powrót

Komentarze

  • 2024.01.23 21:00 Mauy

    TYLKO MODERATOR!
    Jeżeli cez.gov.pl/ to też „współtwórca” E-pacjenta, to… God have mercy on us!

    Odpowiedz
  • 2024.01.24 19:11 km

    Coś z tym waszym „anonimowym wspaniałym dobrodusznym informatorem” jest nie tak, sorry ale kto normalny grzebie w kodzie strony „a sprawdzę sobie czy dobrze zabezpieczyli sieć”?! Ten człowiek powinien zgłosić problem od razu do tej firmy a nie grzebać głębiej i wykorzystywać znalezione informacje! Przecież on się włamał na konto medyczne! Powinien ponieść tego konsekwencje. Okej, znalazł błąd, to powinien był zgłosić i zostawić, jedna cholera wie co on tam pobrał, czyje dane sobie zapisał i co z tym dalej zrobił. Niepoważny człowiek.

    Odpowiedz
    • 2024.01.24 20:53 Duży Pies

      Jeśli nie jesteś trollem, to powinieneś się leczyć, poważnie

      Odpowiedz
      • 2024.01.24 22:25 Sambo

        A niby dlaczego? Gdyby gościowi chodziło faktycznie o bezpieczeństwo danych, poinformowałby właściciela witryny a tego nie zrobil

        Odpowiedz
    • 2024.01.25 07:08 SK8

      Z opisu nie wynika grzebanie w kodzie strony tylko w adresie paska przeglądarki. Nikt się nigdzie nie włamywał, nie przełamywał zabezpieczeń. Zmieniał address w pasku przeglądarki.
      Należy nauczyć się czytać ze zrozumieniem. Uczą tego w szkole podstawej.

      Odpowiedz
    • 2024.01.25 08:58 czytelnik

      Nigdzie nie jest napisane ze nie zgłosił firmie.

      Dodatkowo pokazał sprawę do Z3S, która po zapoznaniu z tematem jak rozumiem odkryła kolejny najgrubszy temat.

      Wszystko zostało zgloszone gdzie trzeba, naprawione i jako bonus mamy ciekawy artykuł edukacyjny pod którym możesz szukać dziury w całym. Polecam maść na ból d.

      A czytelnikowi i Z3S dziękuję :)

      Odpowiedz
    • 2024.01.25 09:06 rudaliszka

      Nie dziwię się, że im nie zgłosił, bowiem w Polsce prawo jest takie, że zamiast podziękować, mogliby go jeszcze oskarżyć. Potrzebna jest chyba jakaś nowelizacja prawa do czasów, w jakich żyjemy.

      Dobrze byłoby mieć też ogólną procedurę zgłaszania takich błędów (nie tylko u nich ale w Polsce). Niektóre strony mają plik security.txt, ale to chyba tylko tam, gdzie cokolwiek wiedzą o bezpieczeństwie…

      Odpowiedz
      • 2024.01.25 14:27 kslu

        „Nie dziwię się, że im nie zgłosił, bowiem w Polsce prawo jest takie, że zamiast podziękować, mogliby go jeszcze oskarżyć. ”

        Poczytaj art. 269c. Kodeksu karnego zamiast siać FUD.

        Odpowiedz
      • 2024.01.26 00:36 afląs

        Prawo jest już zmienione, ale faktem jest to, że firma by go olała albo jego mail zaginąłby w spamie.

        Odpowiedz
    • 2024.01.26 18:03 Już nie naiwny

      Sam nie zgłaszałbym takiego incydentu bezpośrednio do firmy w obawie, że natrafię na kogoś takiego jak ty: osobę, która nie zna się, nie dopilnowała realizacji projektu, nie zleciła pracy/testów profesjonalistom za odpowiednie wynagrodzenie, ale będę się wypierała, że to nie jej wina i zwalała odpowiedzialność na innych i oskarżała tego, który znalazł problem.

      Odpowiedz
    • 2024.01.28 12:14 Czytelnik

      A skąd miał wiedzieć, że link nie wymaga uwierzytelniania bez wejścia na niego? Miał zapytać szklanej kuli? W normalnej implementacji w nagłówku leci token zalogowanego użytkownika i Backend sprawdza, czy użytkownik ma dostęp do danych o które prosi (autoryzacja). Poza tym skąd wniosek, że chłop je wykorzystał. Uzyskał dostęp != wykorzystał. Gdyby nie ten zły anonimowy czytelnik, to za chwilę mógł na to trafić ktoś inny z wiedzą na poziomie junior-dev i pobrać dane dowolnych pacjentów. Więc jeśli chłop to zgłosił, to właśnie najpewniej zapobiegł wykorzystaniu tych danych. Do tego to w ogóle ciężko uznać za „włananie” sensu stricto. Jeśli jakaś strona oferuje jakiś zasób bez uwierzytelnienia bądź autoryzacji to skąd odwiedzający ma wiedzieć a priori, że się w ogóle włamuje? To tak jakbyś zostawił w miejscu publicznym drzwi bez opisu i otwarte a potem każdego kto otworzył osjarżał o włamanie.

      Odpowiedz
      • 2024.01.30 08:13 sambo

        chłop to zgłosił, ale redaktorowi tej strony, a dopiero ten zgłosił to firmie, więc jeśli ktos sie tu zachował w porządku to redaktor a nie pacjent

        Odpowiedz
    • 2024.01.30 08:34 andy

      Mogl wlezc, pobrac dane i nikomu nie mowic. Byloby lepiej? To, ze zglosil to chyba dobrze swiadczy.

      Odpowiedz
  • 2024.01.26 19:31 Marek

    Trywialne to jest.

    Odpowiedz
  • 2024.01.31 00:24 Lekarz Radiolog

    To nie tylko jakiś obrazek RTG tylko wrażliwe dane osobowe o stanie zdrowia danej osoby!

    Odpowiedz

Zostaw odpowiedź

Jeśli chcesz zwrócić uwagę na literówkę lub inny błąd techniczny, zapraszamy do formularza kontaktowego. Reagujemy równie szybko.

Trywialne błędy umożliwiały pobieranie danych medycznych i osobowych pacjentów

Komentarze