Facebook załatał lukę: mogli wykradać numery kart płatniczych z konta użytkownika

12 stycznia, 2018

Kto promował swoje artykuły, aby dotrzeć do większej ilości czytelników, ten wie, że do rozliczenia za reklamy lub inne usługi Facebook używa wprowadzonych do naszego konta kart płatniczych, konta PayPal lub kodów promocyjnych, z których są automatycznie pobierane opłaty. Płatność kartą w sieci za usługi czy zakupy ma wiele zalet — jest to metoda bardzo bezpieczna i co bardzo ważne, transakcje wykonane kartą mogą zostać cofnięte w ramach ”chargeback”.

Pranav zgłosił błąd, który polega na wyodrębnieniu ostatnich 4 znaków karty płatniczej dodanej do metody rozliczenia. Najpierw Facebook przypisuje unikalny 15-cyfrowy losowy numer do każdej dodanej karty, która jest powiązana z kontem użytkownika na Facebooku. Taki 15-cyfrowy numer ID jest następnie używany przez Facebook do wyszukiwania danych o karcie płatniczej. Niestety atakujący korzystając z technologii stworzonej przez Facebooka (GraphQL) mógł wyodrębnić taki identyfikator i uzyskać dane o karcie kredytowej:

  • 4 ostatnie cyfry;
  • datę ważności (miesiąc i rok);
  • inne szczegółowe informacje zapisane na karcie i koncie użytkownika;
REQUEST
POST /graphql?q=node(<encoded p2p_credential_id string>)
{__typename,
id,
credit_card{
credential_id,
card_association,
number,
expire_month,
expire_year,
address {
__typename,
postal_code ,
full_address,
single_line_full_address,
street,
city,
country,
postal_code
}
},
mobile_csc_verified,
zip_verified,
web_csc_verified,
method_category,
commerce_payment_eligible,
personal_transfer_eligible,
is_default_receiving
}

Spośród dostępnych metod wyodrębnienia numeru ID, autor wymienia:

  • Poprzedni bug, który został przez niego zgłoszony w ubiegłym roku. Facebook uporał się z nim, ale jak się okazało nie do końca poprawnie.
  • Atak słownikowy na odgadnięcie identyfikatora (pierwsza cyfra musi być z przedziału 0-9, pozostałe 14 cyfr mogą mieć dowolne ułożenie od 0-9, np. 9100000000000002). Autor zaznacza, że do udowodnienia metody „siłowej” wykorzystał własne testowe konta. Wygenerowanie prawdziwych identyfikatorów łamałoby postanowienia Facebooka w ramach programu BugBounty.
  • Użytkownicy z uprawnieniami administratora, którym uusnięto prawa do zarządzania kontem, mogli nadal uzyskać ID i tak samo wyodrębnić informacje o karcie.

W przedstawionej metodzie atakujący uzyskuje informację o ostatnich 4 cyfrach karty. Pozostałe 20 cyfr mogą zostać prawidłowo wygenerowane wykorzystując algorytm Luhna, który determinuje sposób generowania numerów kart płatniczych.

Adrian Ścibor

Adrian Ścibor

W ramach działań związanych z cyberbezpieczeństwem odpowiada w AVLab za przeprowadzanie testów rozwiązań ochronnych przed zagrożeniami. Opracowuje strategie oraz narzędzia, które pomagają w ochronie danych i systemów przed cyberatakami. Współuczestnik międzynarodowej grupy non-profit AMTSO, która zrzesza ekspertów IT.
Adrian Ścibor

Adrian Ścibor

W ramach działań związanych z cyberbezpieczeństwem odpowiada w AVLab za przeprowadzanie testów rozwiązań ochronnych przed zagrożeniami. Opracowuje strategie oraz narzędzia, które pomagają w ochronie danych i systemów przed cyberatakami. Współuczestnik międzynarodowej grupy non-profit AMTSO, która zrzesza ekspertów IT.

PODZIEL SIĘ:

Czy ten artykuł był pomocny?

Średnia ocena: 0 / 5. Liczba głosów: 0

guest
0 komentarzy
Inline Feedbacks
View all comments

Wyrażam zgodę na przesłanie oferty drogą telefoniczną przez IT Partners security sp. z o.o. z siedzibą Katowicach ul.Padereskiego 35 na podany przeze mnie adres e-mail zgodnie z ustawą z dnia 10 maja 2018 roku o ochronie danych osobowych (Dz. Ustaw z 2018, poz. 1000) oraz zgodnie z Rozporządzeniem Parlamentu Europejskiego i Rady (UE) 2016/679 z dnia 27 kwietnia 2016 r. w sprawie ochrony osób fizycznych w związku z przetwarzaniem danych osobowych i w sprawie swobodnego przepływu takich danych oraz uchylenia dyrektywy 95/46/WE (RODO).

Wyrażam zgodę na przesłanie oferty drogą mailową przez IT Partners security sp. z o.o. z siedzibą Katowicach ul.Padereskiego 35 na podany przeze mnie adres e-mail zgodnie z ustawą z dnia 10 maja 2018 roku o ochronie danych osobowych (Dz. Ustaw z 2018, poz. 1000) oraz zgodnie z Rozporządzeniem Parlamentu Europejskiego i Rady (UE) 2016/679 z dnia 27 kwietnia 2016 r. w sprawie ochrony osób fizycznych w związku z przetwarzaniem danych osobowych i w sprawie swobodnego przepływu takich danych oraz uchylenia dyrektywy 95/46/WE (RODO).

[ninja_tables id=”27481″]