Wystarczyło zmienić liczbę w linku na kolejną, aby pobrać cudzą polisę ubezpieczeniową z systemu banku Millennium. Nasz Czytelnik próbował zgłaszać problem na infolinię, ale tam dowiedział się, że… to wcale nie był błąd, a w ogóle, to nie należy zmieniać cyfr w linku. Na szczęście, po naszym zgłoszeniu błąd został błyskawicznie usunięty.

Opis błędu w systemie Millenet

Czytelnik doniósł nam, że w systemie Millenet (Bank Millennium) można pobrać polisę ubezpieczeniową OC innej osoby. W tej polisie są takie dane jak:

imie,

nazwisko,

PESEL,

adresy,

informacje o samochodzie, w tym nr VIN i rejestracja

Po zalogowaniu się do sytemu banku, link do polisy ma postać:

https://www.bankmillennium.pl/osobiste2/Insurances/InsuranceDetails/GetDocument?policyNumber=46000000xxxx

Jak łatwo się domyślić, wystarczyło podmienić wartość parametru policyNumber na inną liczbę i pobierał się plik. Na dowód, czytelnik podesłał nam jedną z polis:

Jak pisze nasz czytelnik:

Bankowi dałem znać na infolinii ale w odpowiedzi na zgłoszenie usłyszałem coś tego typu: “A dlaczego pan zmieniał ten numer w linku, tak nie można robić”. Pani z infolinii powiedziała, że zgłosi to dalej ale nie ma możliwości żebym został poinformowany kiedy i czy w ogóle moje dane nie będą dostępne do pobrania przez obcą osobę. Sugerowała, że to nie jest żaden błąd, tylko nie powinienem zmieniać tego numeru w linku…

Tzw. enumeracja parametru, to jeden z podstawowych błędów, który często spotyka się w systemach przyjmujących pliki od użytkowników lub generujących np. faktury “z szablonu”. Błąd tego typu bardzo łatwo jest “znaleźć” i wykorzystać — generalnie jeśli w linku znajduje się jakaś wartość liczbowa, aż się prosi aby zwiększyć ją o jeden i zobaczyć, co się stanie. “Atak” nie wymaga żadnych specjalnych narzędzi, jedynie umiejętności zwiększania liczby o 1. Tym bardziej dziwi zakaz konsultantki, który, jak wiadomo, jest nie do wyegzekwowania.

Sprawna reakcja Millennium

Chcąc pomóc czytelnikowi w jego zgłoszeniu, sami postanowiliśmy zwrócić się w sprawie tego błędu do banku Millennium. Szybko otrzymaliśmy obietnicę zajęcia się błędem. A dzień później odpowiedź potwierdzającą występowanie problemu oraz jego usunięcie.

Panie Redaktorze,

Dziękujemy za zgłoszenie do biura prasowego dotyczące Bankowości Internetowej Millenet. Przekazaliśmy je niezwłocznie odpowiednim zespołom w Banku. Nieprawidłowo działająca funkcjonalność została natychmiast zablokowana, a zespół programistów opracował nową wersję, która zostanie uaktywniona w dniu dzisiejszym. Podjęliśmy kroki mające na celu identyfikację klientów dotkniętych zgłoszonym incydentem. Prosimy bardzo o przekazanie bezpośredniego kontaktu do osoby zgłaszającej w celu wyjaśnienia sytuacji. Odpowiedzi na pytania:

1. Funkcjonalność została zablokowana, przeanalizowaliśmy zgłoszenie i wprowadziliśmy zmianę w kodzie, która będzie uaktywniona w dniu dzisiejszym.

2. Zidentyfikowaliśmy nieprawidłowość w logice kodu.

3. Klienci mogą przekazywać zgłoszenia każdym kanałem kontaktu z Bankiem, który jest dla nich wygodny; jednakże takie specyficzne zgłoszenia najlepiej przekazywać poprzez formularz zgłoszeniowy w Millenecie.

Nasze pytania, jak możecie się domyślić po odpowiedzi z banku, dotyczyły usunięcia błędu i jego przyczyn technicznych. Pytanie trzecie dotyczyło tego, w jaki sposób klienci powinni zgłaszać błędy aby było to skuteczne. Co ciekawe, kilka dni później dostaliśmy od banku jeszcze jedno oświadczenie:

Chcielibyśmy jeszcze raz podziękować za zgłoszenie i przekazać jednocześnie kilka informacji dotyczących rozwiązania sprawy. Jak już wspomnieliśmy, po otrzymaniu zgłoszenia nieprawidłowo działająca funkcjonalność szybko została zablokowana. W kolejnym kroku przeanalizowaliśmy logowania do usługi od dnia jej udostępnienia, co pozwoliło zidentyfikować liczbę i dane osób dotkniętych zgłoszonym incydentem. Ustaliliśmy, że zostały wyświetlone polisy jedynie dwóch osób. Niezwłocznie skontaktowaliśmy się ze wskazanymi klientami w celu poinformowania ich o zaistniałej sytuacji oraz szczegółowo wyjaśniliśmy, jakie dane zostały ujawnione i jakie kroki zostały podjęte, by wyeliminować nieprawidłowość. Skontaktowaliśmy się również z osobą zgłaszającą problem, by podziękować za wskazanie nieprawidłowości.

Jak widać na przykładzie powyższego, jeśli już opis błędu trafi do odpowiednich osób, to sprawie nadawany jest właściwy priorytet i obsługa incydentu działa jak w szwajcarskim zegarku. Dział bezpieczeństwa w Millennium działa sprawnie — zresztą jego profesjonalne reakcje mieliśmy okazję obserwować nie tylko w przypadku tego błędu, ale również podczas badania bezpieczeństwa aplikacji mobilnych polskich banków. Przypomnijmy, że tylko pracownicy Millennium podziękowali autorowi badania za zgłoszone błędy.

Podobny problem na Uniwersytecie Gdańskim

Z podobnymi problemami enumeracji liczb w parametrach linków spotykaliśmy się częściej, choć niekoniecznie w przypadku banków. Jeszcze w ubiegłym roku pewien Czytelnik zgłosił nam, że systemy Uniwersytetu Gdańskiego “są jak ser szwajcarski, nie łączą sesji z jakimikolwiek pobieranymi danymi“. Następnie Czytelnik pokazał nam jeden z tych błędów.

Każda osoba mogła założyć konto w IRK UG, czyli w systemie do rekrutacji. Jeśli ktoś już się zalogował to mógł manipulować linkami aby uzyskać dostęp np. do nieswoich oświadczeń wygenerowanych przez system. Link do oświadczeń miał postać

https://irk.ug.edu.pl/kandKier.web?generujOswiadczenie=true&idOsobaKier=XXXXX, gdzie XXXXX

gdzie XXXXX to cyfry. Na niektórych identyfikatorach można było trafić na oświadczenia zawierające m.in. imię, nazwisko i PESEL.

Dodajmy, że PESEL był domyślnym hasłem do logowania np na stronie https://ps.ug.edu.pl/login.web gdzie można zobaczyć wszystkie możliwe dane i przebieg studiów. To swoją drogą też nie był najlepszy pomysł…

Rzecznik prasowy UG dr Beata Czechowska-Derkacz powiedziała Niebezpiecznikowi, że problem został usunięty. Dodała, że Uniwersytet nie miał wcześniej “żadnej informacji na temat tej podatności“. Tymczasem nasz Czytelnik twierdził, że zgłaszał różne błędy wielokrotnie i później zgłosił się do nas bo “nie miał już siły“.

Kardynalny błąd – ignorowanie zgłoszeń

Obserwując liczne problemy tego typu dochodzimy do wniosku, że wiele instytucji popełnia kardynalny błąd ignorowania zgłoszeń błędów bezpieczeństwa. Ślady tego błędu znajdujemy nawet w dokumentach sądowych.

24 listopada 2015 roku Sąd Rejonowy w Łodzi wydał wyrok w sprawie mężczyzny, którego dziwnie “wyrzucało z konta“. Klient zgłaszał problemy pracownikom banku a oni to zignorowali. Okazało się, że miał miejsce atak na konto i wypłynęły z niego pieniądze. Sąd przyznał rację klientowi (sygn. akt I C 1206/14).

Reakcja różnych instytucji zwykle jest szybka jeśli błąd (nawet ten sam, co już znany, ale zignorowany) zgłasza w imieniu czytelnika nasza redakcja. Musimy przyznać, że firmy i instytucje dość szybko reagują na nasze ostatnie zgłoszenia dotyczące wycieków danych osobowy, jak np. błędy w systemie PEKA. Czy firmy te zadziałałby równie szybko, gdyby błąd został zgłoszony przez “zwykłego” internautę? Miejmy nadzieję, że tak.

Przeczytaj także: