Preorder drugiego tomu książki sekuraka: Wprowadzenie do bezpieczeństwa IT. -15% z kodem: sekurak-book
Jak odzyskać numer CVV i datę ważności karty płatniczej VISA? Wystarczy kilka sekund…
Niedawno opublikowana praca: Does The Online Card Payment Landscape Unwittingly Facilitate Fraud, pokazuje słabość obecnego systemu VISA (niepodatny okazał się Mastercard). Niektórzy sugerują wręcz, że całość mogła zostać użyta w ostatnim ataku na Tesco Bank.
Standardowa akceptacja płatności on-line wygląda mniej więcej tak – podajemy numer karty płatniczej, numer CVV2 oraz ważność karty. Może to czasem być również imię, nazwisko oraz adres.
Które z tych pól są realnie weryfikowane? Rozpocznijmy układankę:
- „We found that no website checks that a name entered is correct.” – to mamy pierwszy low hanging fruit :) Możecie już zawsze wpisywać w imię i nazwisko – Miś Koralgol – i tak tego nie sprawdza ;)
- Kolejna ciekawostka w adresie: „Address verification is performed only on the numerical values of the street/house and postcode fields; any alphabetical characters are ignored”. Tutaj czasem sprawdzane są tylko określone wartości numeryczne, często nie mamy w ogóle całego pola.
Co z CVV2 oraz datą ważności karty?
- W pierwszym przypadku możliwości mamy 1000 (trzycyfrowe liczby). I tutaj kolejna niespodzianka. Praktycznie istnieje możliwość bruteforce bez limitu:
„A handful of payment sites allowed unlimited attempts while most of the other payment sites allowed 5, 10 or even 50 attempts to enter a correct CVV2.”.Jeśli limit jest – to daje radę zrównoleglenie ataku… - Ważność karty – tu w ogóle kombinacji nie ma za dużo – wg autorów badania – najczęstszym maksymalnym terminem ważności karty jest 60 miesięcy – czyli mamy raptem 60 prób…
I przechodząc do samego końca. Co z samym numerem karty płatniczej? Badacze użyli kilku swoich kart (i ze 100% skutecznością odzyskali datę ważności / numer CVV2). Przypominamy – nawet jeśli była weryfikacja ilości niepoprawnych płatności w danym serwisie – nie było sprawdzenia globalnego (po wielu serwisach):
ale autorzy wskazują kilka innych możliwości:
- NFC skimming. Tutaj np. jeden z rozgorączkowanych komentatorów wpisze tak:”This is a bunch of crap. I am an engineer working with a company on secure NFC cards that use one time password transactions. Even if your card number is stolen, which it is easy to do it is of absolutely no use.” Zalecamy koledze zerknąć na ten research.
- Można użyć generatora numeru karty (serwisy tego typu ostrzegają oczywiście żeby tego nie używać – użycie nielegalne!!!). Pamiętajmy, że realny numer wcale nie jest długi – z 16 znaków aż 7 to typ karty / ID Banku / suma kontrolna. Jeśli duży bank ma wydanych milion kart to prób aby trafić w tą dobrą nie ma aż tak dużo.
Na koniec, jeszcze krótki opis wprawki w zgłaszaniu podatności do sklepów:
Since the total number of vulnerable websites was very high, we selected the 12 biggest players from each category (in terms of the highest number of users), taking the total number of notified websites to 36. (…) Out of the 36 websites we contacted, eight never responded.
Z 36 wielkich graczy nigdy na zgłoszenie nie odpowiedziało 8. Pomyślmy więc jak odpowiedzieliby maluczcy… ?
–Michał Sajdak
A co jeśli aktywowana jest opcja 3D-Secure na karcie? Z tego co wiem, wtedy jest 2FA?
Wygląda że bezpieczne (przynajmniej autorom badania nie udało tam się AFAIR nic sensownego znaleźć)
Jeśli na karcie / u issuera jest włączony 3DS, ale acquirer (bank przyjmujący płatność) go nie obsługuje, albo pośrednik nie zażąda autentykacji u MPI, to transakcja i tak może spokojnie przejść. Wszystko zależy od umowy między stronami, a user niewiele tu zdziała. Po prostu nie wszystkie payment processory obsługują 3DS (proces nie jest super skomplikowany, ale też nie jest bardzo prosty, no i generuje koszty za licencję dostępową, które są w pierwszej kolejności naliczane pośrednikowi).
Mała errata…nawet jeśli Procesor obsługuje MPI to decyzję (ryzyko) może podjąć sklep i puścić taka transakcję (np. przy wystąpieniu błędów w komunikacji z 3DS. Należy też pamiętać, że 3DS działa tylko w kanale „internet” – są inne kanały płatności :-) BTW: o jakich kosztach dostępu do 3DS mowa? Chyba nieprawdę Pan piszesz.
(A tak swoją drogą, to sprawdzanie kodu CVV też jest opcjonalne i wynika z umowy. Są banki, które „ściągną” kasę i bez tego – obciążanie karty odbywa się bowiem w ogólności na zasadzie „pull” a nie „push” i to nie my wysyłamy kasę od siebie, tylko bank przyjmujący płatności ją ściąga. Dlatego banków wydających karty jest dużo, a przyjmujących płatności – „banków rozliczeniowych” – względnie mało, ponieważ mają możliwość obciążenia dowolnej karty na całym świecie dowolną kwotą, więc muszą być zaufane.)
Dokładnie. Nie szukać daleko – w linode jest taka opcja – mamy tam parę naszych serwerków.
3D Secure to iluzja, dopóki będą normą sklepy które umożliwiają płatność poza tym systemem, dopóty nie będzie on nawet w najmniejszym stopniu podnosił bezpieczeństwa, tak samo jak dopóki w wielu miejscach na świecie nadal są normą płatności kartą z paskiem magnetycznym, dopóty dane pasków magnetycznych będą wykradane i sprzedawane na czarnym rynku. Tutaj na szczęście jesteśmy już na tyle daleko w odchodzeniu od tego rozwiązania, że systemy antyfraudowe zaczynają sobie całkiem dobrze radzić, ale nadal co jakiś czas słyszy się o tym, że ktoś „zrobił zakupy” w Brazylii będąc na wakacjach w Egipcie…
Co ciekawe nawet gdy 3D secure jest aktywne, wiele transakcji nie jest w ogóle autoryzowane na niektórych stronach. Ja na przykład mam włączoną autoryzację dla każdej płatności przez internet. Z niewyjaśnionych przyczyn – płacąc przez PayPala (jako niezarejestrowany użytkownik!) bank nic nie weryfikuje, płatność jest realizowana, a nie powinna.
A co z 3D Secure ?
Dobre pytanie. W cytowanym badaniu autorzy wskazywali 3d secure jako *bezpieczny*.
Raz mi sie trafilo ze weryfikowali adres, udalo im sie sprawdzic ze wlasciciel karty nie mieszka w USA. Podajac karte z USA zweryfikowali ze wlasciciel nie mieszka pod wskazanym adresem dostawy.
PEBBLE :)
Ale wiecie, że tak naprawdę przekręciliście moje imię? :-)
to po to, żeby ograniczyć Ci możliwości ciągania strony po sądach za nakłanianie do używania Twoich danych osobowych.
Sugeruję najpierw nauczyć się zapisu swojego imienia: https://pl.wikipedia.org/wiki/Colargol
W komentarzach wszyscy tak o zabezpieczeniach, a zapominacie, że dane z karty nie służą do uwierzytelnienia, tylko zapewnienia dupochronu sklepowi. Których z nich sklep używa wynika z ich wewnętrznej polityki bezpieczeństwa. Jeśli uznają, że wystarczy im podanie koloru karty, to ich sprawa. Amazon, dla przykładu, przyjmuje ślepo dowolną kartę bez sprawdzenia CVV.
To zależy pewnie jak jest umowa zrobiona. Bo wyobrażam sobie że czasem jest jak piszesz, a czasem info idzie przez x filtrów (broker / organizacja kartowa / bank) i może się odbić na końcu (brak autoryzacji).
Tak tylko powiem że dzisiaj płaciłem kartą Visa w Sklepie Play. Adres podałem zupełnie inny niż w banku (nawet inne województwo). Przeszło bezproblemowo.
Bo w EU nie ma wspólnego mechanizmu weryfikującego te dane (centralnej bazy pozwalającej to sprawdzić).
to proste .jak dostajesz nową kartę to robisz im selfie