W każdym banku internetowym mamy możliwość wydrukowania potwierdzenia zrealizowanego przelewu. W erze bankowości elektronicznej, potwierdzenia takie stają się coraz częściej rzetelnym dokumentem poświadczającym wpłatę należności za zakupy, usługi, rachunki itp.

Potwierdzenia takie są zazwyczaj łatwo modyfikowalne dla użytkownika mającego podstawową wiedzę na temat HTML’a, bądź dowolnego programu graficznego.

A co w wypadku, kiedy to sam bank daje nam narzędzie do drukowania fałszywych potwierdzeń realizacji przelewu? Taka sytuacja ma miejsce w BRE Banku, a dokładniej jego detalicznym brandzie – mBank.

Poniżej przedstawiam krótki opis zasady działania mBanku:
W przypadku zlecenia realizacji przelewu, trafia on do kolejki, która zostanie wysłana najbliższą sesją wychodzącą. W tym czasie użytkownik zamiast guzika „Wydruk potwierdzenia” widzi komunikat „** Przelew nie został jeszcze zrealizowany **”. Podobny komunikat widoczny jest w przypadku odwołanego zlecenia przelewu: „** Wydruk potwierdzenia jest niedostępny, gdyż przelew został odrzucony. **”.

Uwaga: Fałszowanie dokumentów bankowych jest przestępstwem

Korzystając z oprogramowania do zmiany zawartość pamięci podręcznej przeglądarki, można podmienić ww. tekst na kod odpowiadający wywołaniu drukowania potwierdzenia przelewu:

<button class="button" onclick="window.open('blank.html', 'print_window', 'toolbar=no,location=yes,directories=no,status=no,menubar=no,scrollbars=yes,resizable=yes'); document.forms[0].action = 'account_oper_print_t.aspx'; document.forms[0].target = 'print_window'; document.forms[0].submit();" id="Print">Wydruk potwierdzenia</button>

Po kliknięciu na dodany w ten sposób przycisk, uzyskujemy dokument potwierdzający realizację przelewu. Dokument taki zawiera wszystkie dane, jak w przypadku oryginalnego potwierdzenia w tym unikalny numer referencyjny.

Ww. podatność można wykorzystać w obu przypadkach: potwierdzenia niezrealizowanego jeszcze przelewu jak i potwierdzenia odwołanego już zlecenia.

BRE Bank jest operatorem marki Multibank i być może ww. sytuacja ma zastosowanie też w systemie Multibanku.

mBank został poinformowany o wyżej opisanej sytuacji 8 października 2008r.

15 odpowiedzi na “mBank i potwierdzenia przelewów”
  1. Michał pisze:

    „mBank został poinformowany o wyżej opisanej sytuacji 8 października 2008r.”

    Nie zgodzę się z tym faktem. Wysyłałem im informację o tym „błędzie” już w lipcu i nie dostałem żadnej odpowiedzi. Poza tym nie zostało to nadal zmienione. Rozmawiałem również z konsultantem na mlinii.

  2. Michał pisze:

    Poza tym opisałem im jeszcze inną sytuację. Otóż wydruk potwierdzenia przelewu można sfałszować poprzez przerobienie dowolnego innego wydruku. Wystarczy pozmieniać wszystkie dane w kodzie na te pożądane, zapisać stronę i wyeksportować do pdf. Zasugerowałem w moim mailu do mbanku, aby generowanie potwierdzenia odbywało się po stronie serwera, a nie przeglądarki. Załączyłem również przykładowy druk z przelewem na kwotę 1 miliona złotych do Świętego Mikołaja :-) Ten problem również do tej pory nie został rozwiązany.

    Pozdrawiam,
    Michał

  3. Podobny problem dotyczy Multibanku.

  4. Mariusz Dalewski pisze:

    @Michał:
    Edycja html’owego potwierdzenia możliwa jest od wielu lat (pewnie od początku mBanku). mBank wprowadził niedawno pobieranie historii rachunku w pdf’ie, a wiec technologie generowania dokumentów już mają. Pewnie lada chwila pojawi się zmiana w systemie potwierdzeń przelewów, i będziemy je też w pdf’ach pobierać.

    Sytuację można by w miarę szybko „poprawić” dodając do potwierdzenia przelewu, jego stan np.: „Zrealizowany”. To czy użytkownik dopuści się sfałszowania dokumentu bankowego (html’a) czy nie, leży już po jego stronie.

    Jedno w tej sprawie jest zastanawiające: systemy bankowe powinny mieć 100% weryfikację wszelkiego rodzaju danych, może nawet z redundancją niektórych elementów. Opisana wyżej sytuacja nie powinna mieć nigdy miejsca.

  5. bronek pisze:

    Mam problem ze zrozumieniem problemu ;)

    Przecież nie istnieje żadna metoda zabezpieczenia się przed fałszywym potwierdzenie… może inaczej, są pewne metody utrudniające fałszerstwo, ale powiem, czy raczej napiszę, tak – dla osoby czy instytucji czekającej na jakąś wpłatę jedynym pewnym i ostatecznym potwierdzeniem wpłaty jest stan konta powiększony o oczekiwaną kwotę. Oczywiście możemy dywagować o odpowiedzialności, zabezpieczeniach, funkcjonalności banków ale w wypadku takiego dokumentu jak potwierdzenie przelewu fałszerstwo będzie zawsze możliwe. Dokonać go może, koder, haker czy grafik… To trochę jak z DRMami czy zabezpieczeniami gier, które miały być takie doskonałe, ale tylko doskonale utrudniły życie zwykłym, uczciwym, użytkownikom.

    Nie możemy zakładać, że i każdy i zawsze i wszędzie knuje jak kogo oszukać, pewne zabezpieczenia trzeba stosować to oczywiste, ale paranoja na ich punkcie jest… paranoją :)

  6. Grzesiek pisze:

    Najlepszym rozwiazaniem tego typu problemów byłby system który pozwolilby zweryfikowac orginalnosc takiego potwierdzenia przelewu w systemie banku.Na przyklad jedy ktos ma mi przelac kase, i twierdzi ze przelew wyszedl z banku powinien moc dostarczyc mi potwierdzenie zawierajace link w stylu „mbank/x=jakis bezpieczny ciag znakowdhfhdhdhc ” klikajac w taki link kazdy moglby zobaczyc potwierdzenie przelewy, wraz z jego statusem na stronie banku z certyfikatem
    taki link moglby dzialac np maksymalnie x dni od wykonania przelewu , moglby tez wymagac dodatkowo podania nr rachunku odbiorcy aby sie wyswietlil.

  7. bronek pisze:

    @Grzesiek: Pomysł fajny choć „dotyczy tylko internetu”, a podejrzewam że jak ktoś korzysta z netu to realizuje operacje przez net… Tu większość transakcji idzie „elixirem” – czyli w ciągu kilku godzin (lub w wypadku takich usług jak mTransfer – „w tym samym momencie”) czyli potwierdzeniem są właśnie środki na koncie. Idąc dalej tym tropem – większość banków sesje wychodzące ma przed południem a przychodzące po południu – wystarczy trzymać się tej zasady i wysyłać pieniądze przed ostatnią sesją wychodzącą i przed pierwszą przychodzącą i można mieć pewność, że cała transakcja będzie trwała kilka godzin. W niektórych sytuacjach (dobra korelacja między sesjami w bankach) może nawet pół godziny/godzinę

  8. Mariusz Dalewski pisze:

    Taki system powinien też być dodatkowo dostępny via telefon. Wystarczyło by wprowadził unikalny i odpowiednio długi numer referencyjny przelewu, wraz z dodatkowym numerem (hasłem) do weryfikacji. System taki pozwolił by zweryfikować każdy przelew, nawet ten historyczny. Całkowicie rozwiązało by to problem posługiwania się fałszywym dokumentem.

    Inny temat do dalszy ciąg tej historii: na ekranie potwierdzenia przelewu jest bardzo dużo pól typu „hidden”, w których znajdują się wszystkie informacje do wydrukowania potwierdzenia. Wystarczy zmienić ich zawartość i na potwierdzeniu będzie to co wpisaliśmy.

    Przed kilkoma minutami dostałem też wiadomość z mBanku, od pracownika mLinii:
    „Witam,

    Uprzejmie informuje, ze wydrukowanie potwierdzenia przelewu jest mozliwe dopiero po jego realizacji. Wydrukowanie potwierdzenia przelewu od razu po jego wykonaniu w systemie jest mozliwe jedynie w przypadku jesli przelew jest wykonywany na inne konto w mBanku.

    W przypadku dalszych pyta prosz o kontakt.”
    … pozostawię to bez komentarza.

  9. bronek pisze:

    No tak, to wygląda sensownie, „Wystarczyło by wprowadził unikalny i odpowiednio długi numer referencyjny przelewu, wraz z dodatkowym numerem (hasłem) do weryfikacji.”, ale potwierdzić(i kto ma to zrobić że numer sms to jest ten numer (banków są naprawdę poważne ilości) i na przykład, że unikalnu kod jaki wysyłamy służy temu czemu ma służyć… itd itp…

    Wydaje mi się że dochodzimy do paranoi o jakiej wspominałem to co teoretycznie ma usprawnić (uwiarygonić) w rzeczywistości może tylko utrudnic i skomplikować system… A im mechanizm bardziej złożony tym trudniej go uszkodzić :)

  10. Mariusz Dalewski pisze:

    Czyli podsumowując: tematu nie przeskoczymy i tyle :)
    Wracam do nowego materiału związanego z rachunkami za telefon w Orange. Premiera za 4-5 dni.

  11. some0ne pisze:

    „Korzystając z oprogramowania do zmiany zawartość pamięci podręcznej przeglądarki” – jakiego typu oprogramowanie? brzmi dość tajemniczo i nic mi do głowy nie przychodzi?

  12. dr_bonzo pisze:

    Hehe

    Zaplacilem na wydanie prawa jazdy przelewem, po czasie zajrzalem do UMiasta i sie okazalo ze potrzebuja potwierdzenia przelewu [WTF! nie bylem akurat w swoim miescie gdy placilem, wiec tylko taka opcja wchodzila w gre].

    Wystarczylo wydrukowac PDFa wygenerowanego przez bank, i im takie potwierdzenie wystarcza. fok.
    Ja bym nigdy takiego papierka niezakceptowal :)

    No coz, brak odpowiedniego systemu powiadamiajacego o wplatach przelewem.

  13. zuo pisze:

    some0ne – firebug dla firefoxa.

    Drogi Mariuszu – zapomniałeś dodać że korzystając z tego narzędzia można również zainclude’ować dowolną stronę. Ale – szczerze mówiąc – nie widzę w tym miejscu żadnego błędu po stronie mBanku. Równie dobrze mógłbyś informować świat, że podmieniłeś stronę mbanku.

    vide: http://img148.imageshack.us/my.php?image=zrzutekranurb8.png

  14. Mariusz Dalewski pisze:

    @zuo: Wskazany błąd, nie jest krytyczną podatności w systemie mBanku. Ma na celu wykazanie pewnej zasady działania mBanku, która moim zdaniem nie powinna tak funkcjonować.

    Jeżeli bank blokuje pewną funkcję swojego systemu, to powinien to robić skutecznie, a nie na zasadzie zaufania do użytkownika. Systemy tego typu powinny cechować się najwyższym poziomem weryfikacji danych.

  15. Wojtek pisze:

    teraz jak widze po dodaniu buttona jest potwierdzenie zlozenia dyspozycji przelewu wiec nie jest to potwierdzenie wykonania go :D

  16.