01.01.2021 | 19:30

Adam Haertle

Można było podglądać cudze recepty z Medicover – na szczęście bez danych pacjentów

Nowy rok zaczynamy błędem znanym od lat, który najwyraźniej nigdzie się nie wybiera. Tym razem modyfikacja parametru zapytania do serwisu WWW powodowała ujawnienie danych medycznych. Na całe szczęście nie było w nich danych pacjentów.

Otrzymaliśmy dzisiaj informację od czytelnika o błędzie w aplikacji Medicover Online. Medicover to jeden z największych w Polsce podmiotów świadczących usługi prywatnej opieki medycznej, a z jego portalu obsługi korzystają codziennie tysiące klientów. Problem wyglądał zatem poważnie.

A co jeśli zmienimy cyferki na końcu adresu?

To klasyczne pytanie zadaje sobie codziennie wiele osób, używających różnych systemów. Tym razem trafiło na Kamila, który sprawdził, co się stanie, jeśli zmieni parametr w zapytaniu wyświetlającym mu szczegóły e-recepty wystawionej przez lekarza Medicoveru. Zapytanie wyglądało tak:

https://mol.medicover.pl/api/EPrescription/Drugs/GetDrugDetails?id=5989xxxx

Jak się możecie domyślać, artykuł czytacie, ponieważ po zmianie ostatniej cyfry na inną w przeglądarce pojawiły się dane innej, cudzej recepty (błąd występował tylko dla zalogowanej sesji, ale wyświetlić można było dane dla cudzych recept). Co zatem można było zobaczyć? Odpowiedź serwera wyglądała tak (po sformatowaniu dla czytelności i lekkiej anonimizacji):

{
„success”: true,
”element”: {
„drugTradeName”: ”Saccharomycesboulardii”,
”endOfDrugTreatment”: ”2020-12-28T12: 21: 29Z”,
”recommandation”: null,
”isDoctorDrug”: false,
”prescribingDoctors”: [
{
„locations”: [
{
„clinicId”: 27274,
”clinicName”: ”Bielsko-BiałaCMKarpacka”,
”clinicPharmaName”: ”BielskoBiałaCMKarpacka”,
”scheduleDate”: ”2021-01-04T00: 00: 00Z”
}
],
”doctorId”: 149684,
”doctorName”: ”XxxxJustyna”
},
”eaN13Code”: 5909990887491,
”appointmentId”: 28287xxxx,
”unavailableReason”: null,
”isAvailable”: true,
”dosage”: ”2x1”,
”packName”: ”20szt.”,
”drugDose”: ”250mg”,
”drugName”: ”Enterol”,
”drugId”: 1107209,
”doctorName”: ”XxxxxJustyna”,
”doctorId”: 149684,
”prescriptionDate”: ”2020-12-21T12: 21: 29.863Z”,
”prescribedDrugId”: 5989xxxx,
”drugFormName”: ”kaps.”,
”ePrescriptionDocumentIds”: [
60642589
],
”ePrescriptionPackageId”: 0
},
”message”: null
}

Tu przykład takiego komunikatu w przeglądarce:

Ujawniane dane

Mogliśmy zatem poznać imię i nazwisko lekarza, który przepisał dany lek, nazwę leku i informacje o dawkowaniu.

Czy to poważny błąd?

Na pewno dużą ulgą dla pacjentów jest informacja, że w odpowiedzi serwera nie było danych osoby, która receptę otrzymała – wtedy waga incydentu byłaby o rząd lub dwa rzędy wielkości większa. Same informacje o przepisywanych lekach mają większe znaczenie z punktu widzenia samego Medicoveru – zebranie statystyk, jakie leki który lekarz przepisuje, mogło być ciekawym badaniem i mieć znaczenie dla osób pracujących w branży.

Warto jednak zauważyć, że powyższe zapytanie do API umożliwiało pobranie danych nieprzypisanych do naszego konta – można się więc zastanowić, jakie jeszcze zapytania nie były weryfikowane po stronie serwera. Ciekawą wskazówką od Kamila jest informacja, że błąd dotyczył nowej, niedawno wprowadzonej funkcji. Demonstruje to wagę, jaką należy w takich przypadkach przykładać do audytu aplikacji i jej kodu źródłowego, szczególnie w tak wrażliwych środowiskach jak medyczne.

Reakcja Medicoveru

Tu musimy pochwalić firmę, ponieważ czas usunięcia problemu lokuje ją w top3 w historii naszych zgłoszeń podobnych błędów. Informację od czytelnika otrzymaliśmy o 13:20. O 15:30 skontaktowaliśmy się z odpowiednią osobą po stronie Medicoveru (osobiste relacje się przydają) i 10 minut później przekazaliśmy opis błędu. O 17:10 usługa była już wyłączona. Wzorowy czas reakcji.

Powyższy incydent dołącza do długiej listy wpadek w branży medycznej w Polsce – by przypomnieć tylko możliwość czytania czatów z lekarzami Luxmedu czy szpital w Kole, który udostępniał całemu światu wszystkie dane pacjentów. Niestety wraz z postępującą cyfryzacją służby zdrowia możemy się spodziewać kolejnych podobnych incydentów.

Powrót

Komentarze

  • 2021.01.02 00:02 JoCochrane

    > musimy pochwalić firmę, ponieważ czas usunięcia problemu lokuje ją w top3 w historii

    Mimo szybkiej reakcji „pochwalić” to niewłaściwe słowo.

    Taki błąd w ogóle nie miał prawa się pojawić. Firma zasługuje na ostrą krytykę, a nie pochwałę.

    Odpowiedz
    • 2021.01.02 06:53 Adam Haertle

      Jak znasz sposób na pisanie kompleksowych, bezbłędnych systemów, to daj znać, jest sporo kasy do zarobienia. Jakieś miliardy pewnie.

      Odpowiedz
      • 2021.01.03 22:27 Murasz

        To banał że bezbłędne systemy nie istnieją. Problem jest inny i nie dotyczy samego IT.

        Dzisiaj nie da się skorzystać z usług prywatnej przychodni czy laboratorium bez obowiązkowego wpisania danych osobowych i medycznych (a te są wrażliwe) pacjenta do bazy tej instytucji, podpiętej dla wygody innych pacjentów do Internetu, żeby mogli sprawdzić wyniki przez www. Ale przecież pacjent może nie chcieć takiej wygody i takiej bazy.

        Postuluję, żeby:

        a) respektować żądanie pacjenta do nieudostępniania jego danych w Internecie (nawet za hasłem),

        b) odważnie umożliwić korzystanie z prywatnej medycyny anonimowo, to znaczy bez podawania imienia, nazwiska, numeru PESEL i wszelkich innych danych osobowych.

        O zbliżającym się horrorze pod nazwą „centralne repozytorium danych medycznych wszystkich Polaków” nawet boję się myśleć. Mniej mi chodzi o włamania do tej bazy, a bardziej o dostęp (albo nawet o potencjalny dostęp) służb (krajowych i obcych) do danych bardzo prywatnych i bardzo wrażliwych.

        Odpowiedz
    • 2021.01.02 15:40 Idealnyswiat

      To właśnie tacy ludzie bez wyobraźni tworzą gnioty pokroju smrodo, uważają, że tylko świat IT jest bezbłędny, każdy kto wchodzi do sieci powinien przechodzić taki psychotest na „idealność świata” i być natychmiast blokowany przy pozytywnej odpowiedzi.

      Odpowiedz
  • 2021.01.02 07:02 hashtak

    @JoCochrane
    „Taki błąd w ogóle nie miał prawa się pojawić. Firma zasługuje na ostrą krytykę”
    Masz na myśli firmę, która kupiła program czy firmę, która go pisała? Najczęście są to różne firmy. Precyzja bardzo pomaga w konstruowaniu „złotych myśli”

    Odpowiedz
  • 2021.01.02 16:48 Cipisław Moczywarga

    Slabo Slabo ;P
    Zamiast ID’kow autonumerowalnych to powinny byc GUIDy ;P
    Inaczej mozna sobie policzyc jak duzo jest generowanych recept (zakladacjac ze jest porpawnie zabezpieczone).

    Poza tym dane lekarzy sa publiczne, wiec za duzego wycieku tutaj nie bylo, mozna by sobie tylko statystyki zrobic, ktory lekarz wspiera ktora firme farmaceutyczna, hehe.

    Odpowiedz
    • 2021.01.02 22:04 darek

      „ktory lekarz wspiera ktora firme farmaceutyczna”. Raczej odwrotnie :D

      Odpowiedz
  • 2021.01.03 18:21 Czy Polska to już cyber mocarstwo

    Poziom z3s jest porażająco wysoki, odzwierciedla w pełni poziom polskich profesjonalistów

    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.

Można było podglądać cudze recepty z Medicover – na szczęście bez danych pacjentów

Komentarze