04.11.2017 | 21:13

Adam Haertle

Wtyczki dla sklepów obsługujących Przelewy24 z krytycznymi błędami bezpieczeństwa

Co może być gorszego od dziurawej wtyczki? Gorsze zapewne będzie wiele dziurawych wtyczek jednego dostawcy, zainstalowanych w wielu miejscach i jednocześnie odpowiadających za obsługę transakcji finansowych.

W piątek wieczorem odezwał się do nas anonimowy Czytelnik, który podesłał linka do dość długiego i mało kulturalnego wpisu blogowego, zawierającego, jak mówi sam autor, pobieżną analizę wtyczek do wielu różnych rodzajów platform handlowych, przygotowanych przez serwis Przelewy24.pl. Sam wpis został już usunięty, jednak lista nie wygląda dobrze – szczególnie dla serwisów, które podatne wtyczki zainstalowały.

Zakupy za darmo i kasowanie bazy?

Serwis Przelewy24, obsługujący płatności internetowe, oferuje bezpłatne narzędzia wspomagające integrację sklepów z jego mechanizmami płatności. Na stronie serwisu znajduje się sekcja „Pliki do pobrania” zawierająca między innymi dział „Gotowe moduły”. Znaleźć tam można wtyczki i moduły obsługujące główne platformy handlowe takie jak Magento 1.x i 2.x, PrestaShop w wersjach 1.3-1.7, WooCommerce 2.x, VirtueMart 2 i 3, OsCommerce, wp-e-Commerce czy OpenCart. Są one stworzone przez Przelewy24 i udostępniane za darmo wszystkim chętnym.

Lista modułów oferowanych przez Przelewy24

Lista modułów oferowanych przez Przelewy24

Autor omawianego przez nas wpisu twierdzi, że w wielu sprawdzonych wtyczkach znalazł krytyczne błędy, umożliwiające złośliwemu użytkownikowi zarówno dokonywanie zakupów za darmo jak i np. skasowanie całej bazy płatności sklepu korzystającego z podatnej wtyczki. W szczególności zidentyfikowane błędy wg autora odkrycia to:

  • SQLi w kilku różnych modułach (umożliwia zarówno usuwanie danych jak i zmianę statusu zamówienia),
  • brak odpowiedniej kontroli parametrów w jednym module (umożliwia zdefiniowanie statusu zamówienia),
  • brak uwzględnienia wyniku walidacji danych w w innym module (sporo kodu przeprowadza walidację danych, której wynik jest ignorowany),
  • możliwość fałszowania potwierdzenia zamówienia w innym module (da się obliczyć sumę kontrolną),
  • w archiwum kilku modułów znajduje się katalog .git, w którym można znaleźć historię commitów i dane deweloperów,
  • w archiwum innego modułu znajduje się katalog .idea, w którym można znaleźć historię commitów w tym np. „Wycofanie zmian omyłkowo wrzuconych na mastera”.

O ile pozostawione przez pomyłkę dane typu katalog .git to drobna wpadka, o tyle SQLi w kilku modułach to spora wpadka ich twórców. Byliśmy w stanie potwierdzić część błędów, a pośrednio same Przelewy24 przyznały, że problem istnieje (więcej niżej).

Co na to Przelewy24

W ciągu kilkunastu minut od lektury listy błędów poprosiliśmy o kontakt przedstawiciela Przelewy24 i po kolejnych parunastu minutach udało się dotrzeć do właściwej osoby. Wysłaliśmy wczoraj kilka pytań i dzisiaj od pani mecenas reprezentującej Przelewy24 otrzymaliśmy następujące odpowiedzi:

  1. Czy autor odkryć kontaktował się wcześniej z Państwa firmą? 

    Autor powołuje się na rzekomy kontakt z CTO w naszej firmie, z naszej strony nieo dnotowaliśmy takiego kontaktu.  Przekazanie do producenta kodu informacji o wykrytych podatnościach jest normalną praktyką w podobnych sytuacjach, tutaj informacja w pierwszej kolejności trafiła do Państwa.

  2. Czy jego zarzuty dotyczące błędów znajdujących się w przykładowych wtyczkach dla wielu platform są prawdziwe? 

    Z przeprowadzonej przez nas analizy wynika, iż wystąpiły pewne luki na niewielką skalę.Kod głównego systemu rozliczeniowego jest całkowicie niezależny od kodu wtyczek inie zostały wskazane w nim żadne podatności. Nasz zespół już dokonał niezbędnych zmian w kodzie i nowe wersje wtyczek, które wcześniej zostały przetestowane przez niezależnych audytorów, są sukcesywnie udostępniane kontrahentom.

  3. Czy użycie kodu z wymienionych wtyczek przez sprzedawców stanowi dla nich zagrożenie bezpieczeństwa? 

    Sprawa dotyczyła wyłącznie części wtyczek, a więc jedynie ograniczonej – do kilku procent – grupy naszych kontrahentów. Niemniej wszyscy partnerzy korzystający z tych produktów zostali przez nas niezwłocznie poinformowani mailowo oraz telefonicznie o konieczności instalacji aktualizacji i wyłączeniu lub usunięciu poprzedniej wersji. Kod tych wtyczek jest niezależny od kodu Przelewy24, wobec czego nie istnieje żadne zagrożenie dla działania systemu transakcyjnego i bezpośrednich integracji.

  4. Jakie działania zamierzacie Państwo podjąć w związku z tą publikacją? 

    Kluczowe działania już podjęliśmy – przeprowadziliśmy audyt bezpieczeństwa,niezbędna aktualizacja została przygotowana, a kontrahenci korzystający z produktów podlegających aktualizacji zostali poinformowani. Zespół niezwłocznie przystąpił do poprawiania kodu wtyczek. Nowe wtyczki zostały poddane zewnętrznemu audytowi. Po jego zakończeniu są na bieżąco udostępniane sklepom.

  5. Co mają zrobić firmy które wskazanego kodu z błędami użyły w swoim serwisie? 

    Zalecamy: do czasu otrzymania informacji o udostępnieniu nowej wersji wtyczek należy wyłączyć lub odinstalować wtyczkę PrestaShop zaś pozostałe usunąć ze sklepu . Wszyscy nasi partnerzy korzystający z wtyczek wymagających aktualizacji zostali przez nas niezwłocznie poinformowani drogą mailową i telefoniczną,opublikowaliśmy również informację na ten temat na naszej stronie internetowej.Kontrahenci otrzymali informację drogą e-mail o udostępnieniu nowej wtyczki.

Czy to poważne i o co chodzi

Cała sprawa ma kilka aspektów wartych poruszenia. Zacznijmy od tego, że błędy nie dotyczą kluczowych funkcji serwisu Przelewy24, a jedynie wtyczek instalowanych po stronie sprzedawców. Sama platforma Przelewy24 jest zatem w świetle tych doniesień bezpieczna, problem za to mogą mieć właściciele sklepów, którzy skorzystali z wtyczek opublikowanych przez Przelewy24. Jest to, wg samej firmy, zaledwie kilka procent jej kontrahentów, a problem, jak sama firma wskazuje, ma niewielką skalę. Dodatkowo firma zdążyła już większość z nich ostrzec o problemie.

Błędy znajdujące się w kodzie wtyczek są niestety karygodne. Nie mówimy tutaj o kodzie obsługującym turniej w kółko i krzyżyk, a o kodzie obsługującym kwestie płatności za zakupy internetowe, który powinien spełniać dużo wyższe wymagania bezpieczeństwa. Rzut oka w kod wtyczek pozwala ocenić, że ich autorzy nie stosowali najlepszych praktyk bezpiecznego programowania. To spora wpadka Przelewy24, któremu jakaś część sprzedawców zaufała i wtyczki wdrożyła bez dodatkowej kontroli ich jakości.

Intencje naszego informatora nie są dla nas jasne. O ile wskazane przez niego błędy faktycznie istnieją, o tyle jego zachowanie budzi wątpliwości. Po pierwsze w swoim (już usuniętym) wpisie twierdził, że informował Przelewy24 o problemie. Poproszony o dowód nie był w stanie go przekazać, wymyślając głupie wymówki. Po drugie wpis na blogu, w którym wyliczył ze szczegółami wszystkie problemy, znienacka zniknął a kontakt z autorem się urwał, mimo iż wcześniej szybko odpisywał na emaile. Nie wiemy, czy zniknięcie wpisu było wynikiem jego decyzji czy zewnętrznej interwencji, ale wygląda to dziwnie. Po trzecie nie znamy jego motywacji – gdyby chciał po prostu wskazać błędy, mógł skontaktować się bezpośrednio z ich autorami. Po czwarte termin zgłoszenia problemów był możliwie najmniej korzystny dla Przelewy24. Po piąte pierwszy raz spotkaliśmy się z sytuacją, że błędy tej kategorii zostały opublikowane na publicznie dostępnym blogu – z reguły dostajemy je w PGP. Po szóste autor zgłoszenia poinformował, że w niedzielę zamierza rozesłać linka do innych serwisów. Wszystkie te zachowania możemy uznać za nietypowe dla analogicznych sytuacji. Z tych powodów postanowiliśmy nie publikować szczegółów technicznych odkrytych błędów.

Mam sklep z obsługą Przelewy24, co robić

Jest spora szansa, ze nie musisz nic zrobić. Jak sama firma wskazuje, tylko kilka procent użytkowników korzystało z jej wtyczek. Jeśli należysz do tych kilku procent, to pewnie masz w skrzynce emaila z na telefonie kilka nieodebranych połączeń od Przelewy24. Wyłącz lub usuń wtyczki i poczekaj na kolejną wersję (lub zainstaluj nową, bo kilka firma zdążyła już poprawić).

Jak oceniamy zachowanie Przelewy24

Co prawda zaczęło się niezbyt fajnie, bo błędy są poniżej poziomu firmy zajmującej się przepływami pieniężnymi, ale potem szło już znacznie lepiej. Pierwszy kontakt udało się nawiązać w ciągu kilkunastu minut, po kolejnych kilkunastu mieliśmy już pewność, że firma zajmuje się problemem. Czas reakcji – wzorowy. Również sposób rozwiązania wygląda bardzo dobrze – firma natychmiast, mimo weekendu, zabrała się nie tylko do naprawiania kodu, ale także do informowania klientów. To warte pochwały. Widać, że w trudnej sytuacji potrafią zachować się prawidłowo. Jedynym zgrzytem była komunikacja z mecenas reprezentującą firmę (z reguły rozmawiamy z rzecznikiem prasowym lub kimś z zarządu) – szczególnie sugestia, że publikując informacje o błędach, możemy być współodpowiedzialni za ewentualne straty. Jest to niezbyt trafiony wniosek, skoro informacja o krytycznej aktualizacji wtyczek została już opublikowana na stronie Przelewy24, a także w serwisach branżowych i specjalistycznych, a nawet na Wykopie.

Powrót

Komentarze

  • 2017.11.04 22:52 incomplete

    Jeśli chodzi o zachowanie mecenas reprezentującej P24, to raczej nie ma się czemu dziwić, oni mają swój świat, jak lekarze, nie ma tam dobra ani zła, jest tylko Jedna Słuszna Nasza Prawda i układy [tak, wiem, w „Prawo Agaty” (żona kazała oglądać) było zupełnie inaczej]. Choć wiadomo, że ta ich pisanina ma niezłą moc sprawczą, w końcu usunęliście jeden artykuł po naciskach prawnika, na szczęście udało mi się go wcześniej przeczytać :P Niemniej jednak reakcja P24 całkiem dobra. Czy nie mogło być tak, że odkrywca błędów przekazał info kumplowi pracującemu w P24, tamten nie miał siły przebicia (no nie oszukujmy się, są firmy, gdzie masz pracować, a nie myśleć) i temat upadł a teraz nie chce podać szczegółów, żeby kolega nie miał problemów.

    Odpowiedz
  • 2017.11.04 23:14 wk

    To grubo. Nawet jeśli problem dotyczy małej grupy kontrahentów (w sumie powinny być dane ile osób pobrało daną wtyczkę), to nie powinien był wystąpić. Taka porządna firma jednak powinna weryfikować co jest wrzucane do działu download i robić testy tego, pod czym się podpisuje.
    A ciekawi mnie, czy dane kupujących były narażone na wyciek? Czy też problem dotyczył tylko (i aż – no bo dla sprzedawcy to katastrofa) możliwości dopisywania / modyfikacji potwierdzeń zakupu bez udziału api banku?

    Odpowiedz
  • 2017.11.04 23:27 belzebup

    wtyczki, wtyczkami, ciekawe jak się mają one do integracji płatności na aliexpress

    Odpowiedz
  • 2017.11.04 23:45 rebahas

    No ja bym tak tych P24 nie chwalił, bo akurat pomagam z doskoku przy hostowaniu kilkudziesięciu stron i tam gdzie są wtyczki do P24 nikt na pewno poinformowany nie został (info z pierwszej ręki). No i jakieś dziwne info pani mecenas, bo w PrestaShop widzę:
    # Change Log
    ## [3.3.20] – 2017-11-04 ##
    – Security fix.

    A zalecają niby odinstalować.
    Także całe to info niby ładnie i profesjonalnie napisane, i podjeście, i podjęte działania … ale to trochę wygląda na wydmuszkę.

    Odpowiedz
    • 2017.11.05 12:52 wk

      to by wskazywało na wadliwą procedurę publikacji typu „commitujemy na master, a skrypt kompilujący automatycznie aktualizuje pliki, do których prowadzą linki „download” z naszej witryny”; może być ona przyczyną pozostałych problemów

      Odpowiedz
  • 2017.11.05 01:12 Lu

    Przelewy24- korzystam. Do mnie nawet zadzwonili. Więc poważna sprawa…

    Odpowiedz
  • 2017.11.05 02:22 kontrahent

    Używamy oficjalnych wtyczek ze strony Przelewy24 i żadnego maila nie otrzymaliśmy…

    Odpowiedz
  • 2017.11.05 02:23 kontrahent

    Używamy oficjalnych wtyczek ze strony Przelewy24 i żadnego maila od nich nie otrzymaliśmy…

    Odpowiedz
  • 2017.11.05 09:37 Marek

    Tak się robi czarny PR. Nic nie sugeruję ale PayU też musi zostać prześwietlone tak samo jak Dotpay. To pokazuje globalny problem w tej branży jakim jest brak bezpieczeństwa. Czekam na audyt kolejnych pośredników z niecierpliwością

    Odpowiedz
    • 2017.11.09 16:08 R

      To przeswietlaj. Ktos Ci broni?

      Odpowiedz
  • 2017.11.05 09:53 Kamil

    Mamy sklep na Presta 1.6 i zintegrowana obsluge Przelewy24. Potwierdzam, ze byl zarowno mail jak i telefon od nich. Po kilku godzinach podeslali informacje o poprawionej wtyczce.

    Odpowiedz
  • 2017.11.05 11:01 uzytkownik

    A do mnie wysłali maila w nocy, rano zadzwonili, popołudniu udostępnili poprawioną wtyczkę.

    Odpowiedz
  • 2017.11.05 12:43 wk

    Czyli tak jakby część osób otrzymało powiadomienia, a część nie otrzymało. Ciekawe, od jakiego czynnika to zależy.

    Odpowiedz
    • 2017.11.05 18:05 malpiadama

      Od obrotu? ;)

      Odpowiedz
  • 2017.11.05 13:09 widzący_inaczej

    Mnie intryguje ocena autora tego wpisu w kontekście doszukiwania się drugiego … trzeciego…n-tego dna w motywacji osoby, która publicznie dokonała wpisu gdzieś tam w sieci o znalezionych błędach.
    Po prostu nasze prawo jest tak obecnie skonstruowane i żyjemy w takim reżimie informacyjnym/bezpieczeństwa/swobód obywatelskich/itd., jakiego ten kraj jeszcze nie doświadczał (to nie jest żaden apel polityczny i nie ma znaczenia jaka partia u steru – to jest po prostu moje prywatne spostrzeżenie) – nic dziwnego, że autor starał się za bardzo nie wychylać i Ci co mięli korzyść z tej informacji, jak widać po opisie całej historii zdarzenia, zainteresowali się tym i podjęli stosowne działania. A czy to była prowokacja polityczna (ten opisywany wpis), czy jakiekolwiek inne wrogie działanie w jakimkolwiek innym kontekście to zapewne są od tego specjalne służby, które to zbadają i wykluczą takie działania lub będą drążyć temat dotąd, aż takie ewentualne działania zostaną wyeliminowane.

    Odpowiedz
  • 2017.11.05 16:13 Mati

    Ktoś wie czy gdzieś jest dostępna stara wtyczka aby ja oraz potomni mogli się przyjrzeć jakich błędów nie popełniać podczas kodowania :)

    Odpowiedz
    • 2017.11.05 20:25 Paweł

      Prawdopodobnie mogło po części chodzić o tą starą funkcję:
      private function filterValue($field, $value) {
      $this->validateField($field, $value);
      return $value;
      }

      Odpowiedz
  • 2017.11.06 12:06 LOL

    Interfejsy Banków są dziurawe, a wy wymagacie od jakichś pośredników profesjonalizmu :)

    Odpowiedz
    • 2017.11.06 21:04 K6T

      O, ekspert fachowiec

      Odpowiedz
  • 2017.11.06 14:44 Łukasz

    Dobra dobra, napisali maila żeby zaktualizować wtyczkę. Olane bo to tylko mail, ale dzwonili późnym wieczorem. Tak też poczyniliśmy.
    (Presta 1.6)
    Problem w tej zaktualizowanej wtyczce wygląda tak, że wchodząc w historię zamówień nie działa przycisk szczegóły:
    error 500 exception i… pół bazy danych przez print_r bo :przelewy24_extracharges’ doesn’t exist. Nie wiem czy problem wziął się z źle dokonanej aktualizacji czy to po stronie dialcomu, ale myślę, że osoba która aktualizowała wtyczkę raczej zrobiła to przez panel admina a tam chyba dziecko potrafi to zrobić.

    CREATE TABLE IF NOT EXISTS `prefix_przelewy24_extracharges` (
    `id_extracharge` int(11) NOT NULL AUTO_INCREMENT,
    `id_order` int(10) unsigned NOT NULL,
    `extracharge_amount` float NOT NULL,
    PRIMARY KEY (`id_extracharge`)

    To naprawi błąd ale raczej polecam sprawdzić całą wtyczkę

    Odpowiedz
  • 2017.11.09 00:29 wilga

    „nowe wersje wtyczek, które wcześniej zostały przetestowane przez niezależnych audytorów, są sukcesywnie udostępniane kontrahentom.”

    Czegoś tu nie rozumiem Pani Mecenas. Jeżeli te nowe wtyczki zostały „przetestowane przez niezależnych audytorów” i DOPIERO wtedy udostępnione do pobrania jako pewne i bezpieczne to co było przed tym ? Czy poprzednie wtyczki nie podlegały takiej samej procedurze a jeżeli podlegały to audytorzy byli po prostu do d…y i zostaną wyciągnięte jakieś konsekwencje wobec nich lub ? a co jeżeli ci obecnie reprezentują podobny poziom ?
    W związku z tym że w niektórych bankach są jaja jak berety (i nie trzeba być wcale informatykiem, programistą itp. aby je zauważyć) to jaki sens ma wypuszczanie absolwentów informatyki na poziomie dostatecznym czy dobrym, jeżeli życie pokazuje, ze owocuje to w dalszej działalności „krytycznymi błędami” ???
    Jeżeli jest tak jak myślę, to tzw. audyt, to kolejny listek figowy……

    Odpowiedz
    • 2017.11.09 20:10 wk

      Wg mnie co poniektórzy absolwenci z oceną „bardzo dobry” też totalnie nie zdają sobie sprawy z wpływu swoich działań na rzeczywiste procesy & interesariuszy… To raczej kwestia osobistej dojrzałości, którą przeegzaminować może dopiero konfrontacja z rzeczywistością pozauczelnianą.

      Odpowiedz
  • 2017.11.09 16:06 R.

    Pitolony prawnik wypowiada sie o sprawach IT. To wszystko mowi, wiecej nie trzeba. Przelewy24 = szambo.

    Odpowiedz
  • 2017.11.16 10:39 Fenex

    Masakra. Mnie to na szczęście nie dotyczy, u mnie śmiga dotpay i do tej pory nie mam żadnych zarzutów. Ale mniejsza z tym, jak wgl można takie rzeczy zamiatać pod dywan? Gdyby przyznali się do błędów, to chyba jednak lepiej by to wyglądało. Chociaż z drugiej strony – przyznanie sie do takich luk… Mam nadzieję, że teraz każdy z dostawców takich usług sprawdza wtyczki i wyjdzie nam to wszystkim na dobre ;)

    Odpowiedz
  • 2017.12.07 09:22 Sebastian

    Tpay.com wysyła login i hasło mailem… Po odpisaniu, że tak być nie powinno, zero kontaktu zwrotnego.

    Odpowiedz
    • 2018.09.02 19:37 Robert

      a inni pośrednicy wysyłają je gołębiami pocztowymi?

      Odpowiedz
  • 2020.08.28 23:02 Beata

    Wczoraj zainstalowałam wtyczkę płatności przelewy24 dla najnowszej wersji woocommerce na WP. Wszystko niby zgodne i zalecane. A jednak. Serwer został nagle przeciążony, wystąpił błąd krytyczny, fatal error, brak połączenia z bazą danych. Tylko po wywaleniu wtyczki płatności z katalogu plików wszystko wróciło do normy.
    Tyle czasu już minęło od kiedy system przelewy24 zaczął szwankować i nadal są jakieś jaja. Żenujące.

    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.

Wtyczki dla sklepów obsługujących Przelewy24 z krytycznymi błędami bezpieczeństwa

Komentarze