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

dodał 4 listopada 2017 o 21:13 w kategorii Wpadki  z tagami:
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.