Co doprowadziło do wycieku danych płatniczych 380 000 klientów British Airways

dodał 11 września 2018 o 14:33 w kategorii Wpadki  z tagami:
Co doprowadziło do wycieku danych płatniczych 380 000 klientów British Airways

Zakupy internetowe są dzisiaj codziennością. Płacimy kartami online w nadziei, że nie stanie się nic złego. I z reguły nic złego się nie dzieje. Oprócz tych przypadków, kiedy dane naszej karty trafiają w ręce przestępców, a ci zaczynają robić zakupy na nasze konto.

Czasem można w sieci trafić na porady rodzaju „płać kartą tylko w zaufanych sklepach online”. To nie jest zła porada – pomaga omijać sklepy fałszywe – lecz nie gwarantuje bezpieczeństwa danych karty, o czym kilka dni temu przekonali się klienci dużej linii lotniczej.

Dwa tygodnie, 380 000 klientów

Niecały tydzień temu linie lotnicze British Airways ogłosiły, że dane dotyczące płatności jej klientów zostały wykradzione przez przestępców. Komunikat był dość lakoniczny, ale zawarte w nim informacje pozwoliły prześledzić przebieg przestępstwa. Przede wszystkim dowiedzieliśmy się, że dane były wykradane wyłącznie między godziną 22:58 21 sierpnia 2018 a godziną 21:45 5 września 2018. To wyraźnie wskazuje, że nie mieliśmy do czynienia z włamaniem do bazy danych kart płatniczych, a raczej z atakiem umożliwiającym podsłuchiwanie danych na żywo. Dodatkowo ofiarami mogli paść zarówno klienci robiący zakupy przez stronę WWW, jak i z poziomu aplikacji mobilnej. Incydent ten wyglądał bardzo podobnie do niedawno przez nas opisywanego analogicznego problemu firmy Ticketmaster. Tam przestępcy dodali do pliku JavaScript wczytywanego z serwera firmy obsługującej czat na żywo bonusową linijkę, która pozwalała na kradzież danych kart płatniczych.

W przypadku British Airways scenariusz wydarzeń był bardzo podobny – tyle że zaatakowana domena prawdopodobnie należała do samej linii lotniczej. Firma RiskIQ, zarządzająca usługą PassiveTotal (polecamy do monitoringu, można tam było na przykład znaleźć dowody na październikowy atak na serwery KNF), skanuje każdego dnia 2 miliardy adresów WWW i zbiera zawartość znajdujących się tam plików. To bardzo pomaga w retrospektywnej analizie podobnych incydentów. Nie inaczej było i tym razem. Dzięki śledztwu RiskIQ wiemy, że 21 sierpnia 2018 doszło do zmiany zawartości jednego z plików JavaScriptu wczytywanego na głównej domenie British Airways. Była to biblioteka Modernizr pod adresem:

https://www.britishairways.com/cms/global/scripts/lib/modernizr-2.6.2

Do podmienionej biblioteki dodany był poniższy fragment kodu:

Kod po uporządkowaniu wyglądał następująco:

Jak widzicie, wykradzenie danych kilkuset tysięcy kart płatniczych nie wymaga rozbudowanych procedur. Po pierwsze kod uruchamia się, gdy użytkownik puszcza guzik myszki lub podnosi palec z ekranu dotykowego podczas procesu zatwierdzania danych płatności. Podwójny warunek pomaga obsłużyć zarówno klientów ze strony WWW, jak i z aplikacji mobilnej, która de facto jest „kontenerem” dla strony WWW używającej tej samej biblioteki.

Następnie kod zbiera wszystkie dane płatności i wysyła je na serwer kontrolowany przez przestępców (z pięknym adresem w ścieżce, wołającym „jestem prawdziwy, wszystko ok”). Co ciekawe, domena baways.com oraz jej certyfikat SSL zostały zakupione kilka dni przed rozpoczęciem ataku, co wskazuje, że przestępcy dostęp do witryny BA posiadali dłużej niż sam czas trwania ataku. Sam serwer, na który trafiały wykradane dane, znajduje się w Rumunii i jest obsługiwany przez litewską firmę hostingową. Co w tym ataku dość nietypowe – certyfikat SSL został przez przestępców zakupiony w firmie Comodo. Mogli użyć, jak większość ich kolegów po fachu, darmowego certyfikatu Let’s Encrypt, lecz pewnie skorzystanie z wersji płatnej miało obniżyć szansę wykrycia ich ataku (firmy takie jak BA nadal rzadko korzystają z bezpłatnych certyfikatów).

Jak ustrzec się przed takimi atakami

Za całą aferą stoi zapewne grupa Magecart, specjalizująca się w takich właśnie kradzieżach danych kart płatniczych, przejmowanych w procesie obsługi płatności za pomocą dodanych fragmentów JavaScriptu. Jako klienci wielkich firm, robiący zakupy w internecie, jesteśmy wobec takich ataków bezradni. Nikt nie będzie studiował setek kilobajtów zminimalizowanego JavaScriptu, by sprawdzić, czy ktoś nie czyha na dane jego karty. Możliwość uniknięcia tego rodzaju ataków leży całkowicie w rękach firm prowadzących internetową sprzedaż. Z jednej strony czas zrezygnować z zewnętrznych skryptów JS osadzanych jak popadnie (są strony, gdzie bywa ich nawet kilkadziesiąt) lub przynajmniej umieścić je w tagu IFRAME, z drugiej – czas zacząć monitorować integralność swoich stron WWW. Prosty skrypt w cronie uruchamiany co 5 minut rozwiązałby problemy obu wspominanych powyżej ataków. Takie proste, a takie trudne.

O takich i innych problemach z bezpieczeństwem stron WWW możecie posłuchać na naszym szkoleniu z bezpieczeństwa aplikacji WWW, które zaczyna się już za tydzień w Warszawie – zostały tylko 3 miejsca, na hasło „Magecart” 10% zniżki.