Jedną z metod jaką wykorzystują cyberprzestępcy do kradzież poufnych danych są tzw. skimmery. Pisaliśmy już o nich trochę tutaj. Jest to złośliwy kod, który zaraża witrynę za pośrednictwem innej strony trzeciej. Najczęściej jest to wtyczka do płatności lub inna strona e-commerce – w opisywanym przypadku wtyczka Magento2. Taka metoda infekcji jest łatwiejsza dla cyberprzestępców, gdyż za jednym razem może dotknąć wielu słabo zabezpieczonym witryn e-commerce. Gdy skrypt zainfekuję taką stronę, przekierowuje wpisywane poświadczenia, dane osobowe i numery kart kredytowych na serwery cyberprzestępców.

Niedawne dochodzenie w sprawie zhackowanej witryny Magento 2 ujawniło złośliwy, wstrzyknięty kod, który przechwytywał dane żądań POST od odwiedzających witrynę. Działał na stronie płatności pobierał zakodowane dane kart kredytowych i zapisywał je w pliku .JPG.


Złośliwa infekcja witryny

Na zaatakowanej stronie Magento znaleziono następujący kod PHP wstrzyknięty do pliku ./vendor/magento/module-customer/Model/Session.php. Aby załadować resztę złośliwego kodu do zaatakowanego środowiska, tworzona jest i wywoływana funkcja getAuthenticates widoczna poniżej: x

źródło: blog.sucuri.net

Kod tworzy również plik graficzny (pub / media / tmp / design / file / default_luma_logo.jpg), którego malware używa do przechowywania wszelkich przechwyconych danych. Ta funkcja pozwala napastnikowi na łatwy dostęp i pobranie skradzionych informacji w dogodnym dla siebie czasie, jednocześnie ukrywając je w pozornie nieszkodliwym pliku JPG:

źródło: blog.sucuri.net

Kradzież danych kard kredytowych

Aby pomyślnie przechwycić dane POST, kod PHP musi korzystać ze struktury kodu Magento. Opiera się na funkcji Magento getPostValue do przechwytywania danych strony płatności w ramach parametru Customer_POST.

Korzystając z funkcji Magento isLoggedIn, kod PHP sprawdza również, czy ofiara, która wysłała dane żądania POST, jest zalogowana jako użytkownik. Jeśli zdarzy się, że osoba jest zalogowana to przechwytuje również jej adres e-mail.

źródło: blog.sucuri.net

Przechwycone dane POST są kodowane przy użyciu base64, zanim operator PHP „^” zostanie użyty do operacji XOR dla skradzionych informacji, zapisując je w tym samym pliku JPG.

źródło: blog.sucuri.net

Prawie wszystkie informacje przesłane przez ofiarę na stronę płatności są przechowywane w parametrze Customer_, w tym imiona i nazwiska oraz adresy, dane karty płatniczej, numery telefonów i dane agenta użytkownika:

źródło: blog.sucuri.net

Takie dane są niezwykle cenne dla atakującego. Poza tym, że posiada on wszystkie niezbędne elementy do oszustw bankowych i kradzieży pieniędzy, to może wykorzystać zdobyte informacje w kampaniach phishingowych.


Konkluzja

Przestępcy zawsze aktywnie poszukują nowych metod, aby zapobiec wykryciu ich złośliwego zachowania na zaatakowanych witrynach internetowych. Kreatywne wykorzystanie fałszywego pliku JPG pozwala napastnikowi na ukrycie i przechowywanie zebranych danych karty kredytowej do wykorzystania w przyszłości bez zwracania uwagi właściciela witryny.

Chociaż takie podejście może utrudnić początkowe wykrycie infekcji, właściciele witryn internetowych, którzy wdrażają usługi monitorowania witryn lub kontrole integralności, będą mieli znacznie łatwiejsze zadanie. Warto więc zainteresować się zaawansowanymi systemami WAF, które z pewnością uchroniłyby witrynę Magento przed takim oszustwem.

Podziel się z innymi tym artykułem!