SMS

Czym jest SMS pumping i jak go zatrzymać?

SMS pumping to oszustwo, które sprawia, że Twój produkt wysyła płatne wiadomości na numery kontrolowane przez atakującego.

Formularz weryfikacji może wyglądać na prawidłowy, podczas gdy atakujący używa go do wywoływania płatnych wysyłek. Atakujący celuje w procesy rejestracji, kodu weryfikacyjnego lub weryfikacji numeru, które pozwalają każdemu wywołać wysyłkę. Atak generuje koszty wiadomości, a podmiot na trasie na tym korzysta.

Branża nazywa SMS pumping również sztucznym zawyżaniem ruchu (artificially inflated traffic).

Po co ktoś to robi?

Ponieważ wysłanie SMS do określonych destynacji przenosi pieniądze, a część z nich można przechwycić dalej w łańcuchu.

Doręczenie wiadomości kosztuje nadawcę i przynosi zapłatę podmiotom na trasie. Gdy atakujący kontroluje jeden z tych podmiotów lub jest przez niego opłacany, generowanie do niego ruchu jest bezpośrednio opłacalne. Atakujący nie musi odczytywać kodów weryfikacyjnych ani przejmować żadnego konta: sama wysyłka jest produktem.

Właśnie to odróżnia pumping od większości nadużyć. Nie ma przejęcia konta do wykrycia ani danych do ochrony. Szkodą jest rachunek, a rośnie on, gdy każde pojedyncze żądanie wygląda na prawidłowe.

Jak to wygląda?

Skok o charakterystycznym kształcie, a kształt ma większe znaczenie niż rozmiar.

  • Skoncentrowany na nietypowych destynacjach. Żądania grupują się na kodach krajów i zakresach numerów, które normalnie nie są obsługiwane, często z wysokimi stawkami terminacji.
  • Prawie zero ukończonych weryfikacji. Kody weryfikacyjne są zamawiane i nigdy wpisywane, więc stosunek wysyłek do udanych weryfikacji gwałtownie spada.
  • Numery wyglądające na syntetyczne. Sekwencyjne lub wzorcowe zakresy zamiast rozrzutu typowego dla prawdziwych klientów.
  • Źródło trudne do zablokowania po tożsamości. Żądania przychodzą z wielu adresów, ponieważ nadużywany proces nie wymaga konta.

Ostatni punkt wyjaśnia, dlaczego ograniczanie liczby żądań per użytkownik samo w sobie jest słabe: nie ma użytkownika. Nadużycie żyje w tej części produktu, która celowo działa dla obcych.

Jak to zatrzymać?

Cztery środki, mniej więcej w kolejności od najlepszego stosunku efektu do wysiłku.

  • Ogranicz destynacje do tych, które obsługujesz. Jeśli Twoi klienci są w pięciu krajach, wysyłanie do pozostałych dwustu to strata bez żadnej korzyści. Bird kontroluje wysyłkę per destynacja, więc kraj musi być włączony, zanim ruch w ogóle do niego dotrze.
  • Ogranicz na podstawie tego, co masz, a nie tego, kim są. Per numer telefonu, per prefiks numeru, per adres, per sesja. Oszustwo, którego nie da się powiązać z kontem, zwykle da się powiązać z zakresem destynacji.
  • Dodaj tarcie przed wysyłką. Wyzwanie przed żądaniem kodu weryfikacyjnego kosztuje prawdziwego użytkownika chwilę, a zautomatyzowanego atakującego pozbawia opłacalności.
  • Obserwuj stosunek ukończonych weryfikacji, a nie sam wolumen. Rosnąca liczba wysyłek jest niejednoznaczna. Rosnąca liczba wysyłek przy stałej liczbie ukończonych weryfikacji to sygnał i pojawia się wcześniej niż faktura.

Bird wymusza też własny pułap niezależnie od tego, co skonfigurujesz. Przewodnik po wysyłce weryfikacji mówi wprost:

Independent of your settings, Verify enforces platform caps to keep OTP traffic from being weaponized, whether against your wallet (SMS pumping) or against a victim's inbox

Warto o tym wiedzieć z dwóch powodów: źle ustawiony własny limit to nie jedyna rzecz między Tobą a rachunkiem, a limit, którego sam nie ustawiłeś, może być przyczyną odrzucania prawidłowego ruchu.

Czy to to samo co atak typu passcode flooding?

Powiązane, ale wymierzone w inną ofiarę.

Ten sam fragment wymienia oba. Pumping jest wymierzony w Twój portfel: atakujący chce, żeby wiadomości były wysyłane, a odbiorca jest przypadkowy. Flooding jest wymierzony w telefon konkretnej osoby: atakujący chce zasypać jedną ofiarę wiadomościami z kodami weryfikacyjnymi, często jako nękanie lub żeby ukryć prawdziwy alert.

Pumping objawia się wieloma destynacjami i brakiem ukończonych weryfikacji; flooding objawia się jedną destynacją i wieloma żądaniami. Limit per odbiorca ogranicza powtarzane żądania do jednego numeru. Nie powstrzyma ataku rozłożonego na wiele numerów. Połącz go z ograniczeniem destynacji.

Szerszy kontekst procesów weryfikacji znajdziesz w artykule co oznacza OTP, który opisuje mechanizm, na którym to nadużycie bazuje.

W skrócie

  1. Przychód atakującego to Twój koszt wysyłki.

    Ruch jest pompowany na numery na trasach, na których ktoś dalej w łańcuchu pobiera prowizję, więc wiadomości są celem, a nie efektem ubocznym.

  2. Celem jest każdy mechanizm wysyłający SMS bez logowania.

    Formularze rejestracji, żądania kodów weryfikacyjnych i procesy weryfikacji numeru to powierzchnia ataku, bo pozwalają obcemu wywołać wysyłkę płatnej wiadomości.

  3. Sygnatura jest powiązana z destynacją, nie z wolumenem.

    Skok skoncentrowany na nietypowych kodach krajów i zakresach numerów, przy prawie zerowej liczbie ukończonych weryfikacji, to właśnie wskaźnik.

  4. Limity platformy działają pod Twoimi własnymi ustawieniami.

    Bird wymusza limity na ruch weryfikacyjny niezależnie od Twojej konfiguracji, więc źle ustawiony limit to nie jedyna linia obrony.

Zastosuj w praktyce.

Kontynuuj z dokumentacją, przewodnikami i przykładami dotyczącymi tego tematu. Zasoby są w języku angielskim.

Uzyskaj brief wdrożeniowy

Buduj na tej samej sieci.

Testowy klucz API otrzymasz od razu. Dostęp produkcyjny odblokujesz po dodaniu metody płatności i zweryfikowaniu nadawcy.

Twój kolejny pomysł.
Gotowy do połączenia.