SMS-Pumping-Betrug: wie ein Telefonverifizierungsformular das Nachrichtenbudget einer Kleinanzeigenseite still leerlaufen lassen kann

Die SMS-Rechnung kommt, und sie ist drei- bis viermal so hoch wie sonst. Sonst hat sich nichts bewegt: Die Zahl der neuen Inserenten sieht normal aus, das Anzeigenbrett sieht normal aus, das Zahlungskonto zeigt keinerlei ungewoehnliche Aktivitaet. Der naheliegende erste Verdacht ist ein Abrechnungsfehler, also eroeffnet der Betreiber ein Ticket beim Messaging-Anbieter und wartet. Die Antwort, die zurueckkommt, ist schlimmer als ein Abrechnungsfehler, denn sie bedeutet, dass jede einzelne dieser Nachrichten tatsaechlich verschickt wurde, und der Anbieter wird eine Gebuehr fuer eine wirklich zugestellte SMS nicht zuruecknehmen.
Was passiert ist, hat einen Namen: SMS-Pumping, auch SMS-Toll-Fraud oder kuenstlich aufgeblaehter Traffic genannt. Es zielt genau auf die Art von Formular, auf das sich ein Kleinanzeigenverzeichnis verlaesst, um Anzeigen ehrlich zu halten, jenes Formular, in dem ein Inserent eine Telefonnummer eintippt und einen Button mit der Aufschrift Code senden drueckt. Dieser Blog hat bereits erklaert, warum diese Pruefung ueberhaupt existiert, denn Telefon- und Identitaetspruefungen sind es, die ein Anzeigenbrett tatsaechlich davor bewahren, sich mit gefaelschten Konten zu fuellen. Der hier beschriebene Betrug kuemmert sich ueberhaupt nicht um die Anzeige. Ihm geht es nur um den Button.
Wie der Betrug tatsaechlich funktioniert
SMS-Pumping ist eine Variante eines viel aelteren Telekom-Schemas namens International Revenue Share Fraud, und der Mechanismus ist alles andere als subtil, sobald man ihn offenlegt. Ein Betrueger schliesst eine Vereinbarung, formell oder ausgenutzt, mit einem Netzbetreiber, der an Terminierungsgebuehren fuer Nachrichten verdient, oft in einem Land weit entfernt von dort, wo das Geschaeft taetig ist. Der Betrueger setzt dann Bots ein, um die Code-senden-Aktion der Seite immer wieder auszuloesen, gerichtet auf echte Telefonnummern im Netz dieses Betreibers. Jede dieser Nummern ist eine aktive SIM-Karte, die eine SMS empfangen kann, also prallen die Nachrichten nicht ab und schlagen nicht fehl. Sie kommen an.
Weil die Nachrichten tatsaechlich zugestellt werden, gibt es auf der Telekom-Seite kein Betrugssignal, das einen Netzbetreiber dazu bringen wuerde, den Versand zu verweigern, oder einen Messaging-Anbieter, die Abrechnung zu verweigern. Der Netzbetreiber kassiert fuer jede zugestellte Nachricht eine Terminierungsgebuehr, und im Rahmen der Umsatzbeteiligungsvereinbarung fliesst ein Teil dieser Gebuehr zurueck an denjenigen, der den Bot-Traffic betreibt. Das Unternehmen, das fuer die Nachrichten bezahlt, ist aus Sicht des Netzes schlicht ein Kunde, der den Versand einer sehr grossen Zahl von SMS angefordert hat. Niemand weiter oben hat einen Grund, das von sich aus zu stoppen.
Keine Partei oberhalb des Geschaefts ist motiviert, das aus eigenem Antrieb zu stoppen, und das ist ein Detail, bei dem es sich zu verweilen lohnt. Der Netzbetreiber wird fuer Nachrichten bezahlt, die er tatsaechlich zustellt, also sieht in seinen Aufzeichnungen nichts falsch aus. Die Messaging-API steht zwischen Geschaeft und Netzbetreiber und rechnet getreulich ab, was sie zu senden aufgefordert wurde. Die Verantwortung, zu bemerken, dass der Traffic auf dem Anmeldeformular nicht nach Inserenten aussieht, landet am Ende bei der einzigen Partei, die sowohl den Anlass als auch die Sichtbarkeit hat, es zu bemerken: dem Geschaeft, das die Rechnung bezahlt.
Was das fuer Betrueger attraktiv und fuer ein Verzeichnis teuer macht, ist, dass nichts davon ein echtes Konto braucht. Der Bot muss die Verifizierung nicht abschliessen, muss keine Anzeige veroeffentlichen, und der Code muss nie in ein Feld eingetippt werden. Er braucht nur, dass das Formular der Seite eine Telefonnummer akzeptiert und eine Nachricht verschickt. Ein Anmeldeprozess, der nie eine einzige erfolgreiche Verifizierung abschliesst, kann trotzdem einen vollen Monat abrechnungsfaehigen Traffic erzeugen.
Warum die Rechnung vor allem anderen ankommt
Die meisten SMS- und Verifizierungs-APIs, darunter die von Twilio, berechnen pro gesendeter oder versuchter Nachricht, nicht pro tatsaechlich abgeschlossener Verifizierung. Dieses Abrechnungsmodell ist kein Designfehler eines einzelnen Anbieters: So berechnet das zugrunde liegende Telefonnetz dem Unternehmen bereits die Zustellung einer Nachricht, und die API reicht diese Kosten einfach weiter. Der praktische Effekt ist, dass eine Betrugskampagne den Betreiber schon ab der ersten Nachricht Geld kostet, Stunden oder Tage bevor jemand bemerkt, dass die Abschlussrate auf dem Anmeldeformular still eingebrochen ist.
Das Ausmass, das das erreichen kann, ist nicht theoretisch. Im Dezember 2022 erklaerte Elon Musk oeffentlich, waehrend einer Twitter-Spaces-Sitzung, dass Twitter jaehrlich etwa sechzig Millionen Dollar genau durch dieses Schema verliere, und nannte rund 390 Telekom-Betreiber, die seiner Aussage nach an der Aufblaehung von betruegerischem Zwei-Faktor-Authentifizierungs-Traffic auf die Plattform beteiligt waren. Diese Zahl war Musks eigene Behauptung und keine gepruefte Unternehmensangabe, aber die Reaktion war real und wurde weit ueber Marketing von Betrugspraevention-Anbietern hinaus berichtet: Twitter kappte die Beziehungen zu Netzbetreibern, deren Traffic betruegerisch aussah, und schraenkte wenige Monate spaeter die kostenlose SMS-Zwei-Faktor-Authentifizierung genau wegen der Kosten auf zahlende Abonnenten ein. Ein Unternehmen mit Twitters Volumen und technischem Personal brauchte trotzdem Monate, um es zu bemerken und zu reagieren. Ein Verzeichnis, das auf einem einzigen unabhaengigen Messaging-Konto laeuft, ohne ein Betrugsteam, das jeden Morgen die Logs liest, hat weit weniger eingebaute Vorwarnung.
Die Zahl, die den Betrug wirklich offenbart, ist nicht das Volumen der versendeten Nachrichten, denn auch ein echter Marketingschub oder eine wirklich geschaeftige Woche kann diese Zahl steigen lassen. Es ist das Verhaeltnis zwischen gesendeten Codes und erfolgreich eingegebenen Codes. Eine Abschlussrate, die still gegenueber ihrem ueblichen Wert faellt, selbst waehrend das Gesamtvolumen steigt, ist das Signal, dass der Traffic auf dem Formular nicht aus Menschen besteht, die die Anmeldung tatsaechlich abschliessen wollen.
Warum ein offenes Anzeigenformular genau das Zielprofil ist
Ein Kleinanzeigenverzeichnis hat einen strukturellen Grund, den Code-senden-Button leicht erreichbar zu machen: Jede Reibung, die der Anmeldung eines Erstinserenten hinzugefuegt wird, kostet Conversions, und dieser Blog hat bereits erklaert, warum diese Reibung genau an der Tuer sorgfaeltig verteidigt werden sollte, noch bevor die Zahlung ins Spiel kommt. Ein Telefonverifizierungsschritt, der fuer einen legitimen Inserenten schnell und einladend ist, ist durch dasselbe Design auch fuer einen Bot schnell und einladend, der nicht die geringste Absicht hat, einer zu werden.
Die Anfaelligkeit ist fuer einen kleinen, unabhaengigen Betreiber auch schaerfer, als es von aussen aussieht. Eine grosse Plattform handelt Volumenpreise aus und hat meist einen Vertrag, der eine gewisse Betrugsueberwachung als Teil der Beziehung einschliesst. Ein Verzeichnis, das seinen Anmeldeprozess ueber eine standardmaessige Pay-as-you-go-Messaging-API abwickelt, hat kein solches Polster: Jede betruegerische Nachricht wird zum gleichen Preis pro Nachricht abgerechnet wie jede legitime, direkt auf die hinterlegte Karte, ohne dass irgendetwas den Ausschlag abfedert, bis ein Mensch die Rechnung bemerkt.
Nichts davon bedeutet, dass das Blockieren eines Laendervorwahlbereichs eine Entscheidung ist, die man einmal festlegt und dann vergisst. Ein Verzeichnis, das in eine neue Stadt expandiert oder Inserenten gewinnt, die reisen, kann feststellen, dass eine legitime Gruppe von Anmeldungen hinter einer Vorwahl steckt, die ein Jahr zuvor aus gutem Grund blockiert wurde. Die Liste der eingeschraenkten Vorwahlen als etwas zu behandeln, das alle paar Monate ueberprueft wird, zusammen mit allem anderen, das in diesem Rhythmus ueberprueft wird, verhindert, dass sich die Verteidigung still in eine zweite Quelle verlorener Anmeldungen verwandelt.
Das ist ein anderer Fehler als der, den dieser Blog beschrieben hat, als er behandelte, warum eine Verifizierungs-E-Mail manchmal nie im Posteingang eines Inserenten ankommt. Jener Beitrag handelte von einer Nachricht, die still scheitert und nichts kostet ausser einer verlorenen Anmeldung. Dieser hier handelt von einer Nachricht, die laut erfolgreich ist, genau wie beabsichtigt ankommt und jedes einzelne Mal, wenn sie das tut, echtes Geld kostet.
Was ihn tatsaechlich stoppt
Die erste Schicht ist Rate-Limiting fuer die Code-senden-Aktion selbst, serverseitig durchgesetzt statt dem Browser anvertraut: eine harte Obergrenze, wie viele Codes eine einzelne IP-Adresse, Sitzung oder Telefonnummer innerhalb eines kurzen Zeitfensters anfordern kann. Das allein stoppt kein ueber viele IP-Adressen verteiltes Bot-Netzwerk, entfernt aber die billigste, traegste Version des Angriffs und zwingt alles Entschlossenere, mehr Aufwand zu treiben.
Die zweite Schicht ist eine Bot-Pruefung, die vor dem Ausloesen der Sende-Aktion platziert wird, nicht danach: etwas, das bestaetigt, dass ein Mensch die Anfrage ausgeloest hat, ohne diesen Menschen zu bitten, etwas Laestiges zu loesen, etwa eine unsichtbare Herausforderung, die die Anfrage im Hintergrund bewertet. Da der gesamte Betrug davon abhaengt, Sendungen automatisiert und in grossem Volumen auszuloesen, senkt alles, was die automatisierte Ausloesung spuerbar verlangsamt, direkt die Kosten des Angriffs, selbst wenn dabei einige Bots durchkommen.
Die dritte Schicht besteht darin, Reibung, nicht unbedingt eine vollstaendige Sperre, auf Telefonvorwahlen anzuwenden, die die tatsaechliche Inserentenbasis eines Verzeichnisses so gut wie nie nutzt. Eine Seite, die Staedte in einem Land bedient, hat wenig Grund, ohne eine zweite Pruefung eine Welle von Verifizierungsanfragen zu akzeptieren, die auf eine Landesvorwahl abzielt, in der die Inserentenbasis nie eine nennenswerte Praesenz hatte.
Die vierte Schicht besteht darin, jeden bereits vom Messaging-Anbieter angebotenen Betrugsschutz zu aktivieren, statt anzunehmen, dass die Standardeinstellungen das schon abdecken. Twilio bietet zum Beispiel eine Funktion namens Verify Fraud Guard, die Traffic-Muster analysiert, um vermutete Pumping-Aktivitaet zu erkennen und automatisch zu blockieren, und die fuer Verify-Kunden standardmaessig aktiviert ist, mit einstellbaren Schutzstufen, die eine kleine Falsch-Positiv-Rate gegen eine hoehere Blockierrate eintauschen. Zu bestaetigen, dass eine solche Funktion eingeschaltet und auf ein zum tatsaechlichen Traffic der Seite passendes Niveau eingestellt ist, kostet nichts und faengt ab, was die eigene Logik der Seite durchlaesst.
Die fuenfte Schicht ist ein Ausgabenalarm, der direkt beim Anbieter eingerichtet wird, nicht einen Monat spaeter auf einer Rechnung entdeckt. Ein Schwellenwert, der eine Benachrichtigung ausloest, sobald die taegliche Messaging-Ausgabe ein Niveau ohne gewoehnliche Erklaerung ueberschreitet, verwandelt eine Betrugskampagne, die sonst wochenlang still laufen wuerde, in eine, die innerhalb von Stunden bemerkt wird.
Was diese Woche zu tun ist
Ziehe die Messaging-Logs des letzten Monats und berechne das tatsaechliche Verhaeltnis von gesendeten zu erfolgreich verifizierten Codes, nicht nur das Gesamtvolumen. Eine Zahl, die in der Summe in Ordnung aussieht, kann trotzdem eine bestimmte Woche oder eine bestimmte Laendervorwahl verbergen, in der das Verhaeltnis eingebrochen ist. Diese eine Berechnung sagt einem Betreiber mehr darueber, ob dieser Betrug bereits stattfindet, als alles andere in diesem Beitrag.
Pruefe dann drei Einstellungen direkt beim Messaging-Anbieter: ob ein Betrugsschutz wie Fraud Guard aktiv ist und auf welchem Niveau, ob ein Ausgabenalarm existiert und bei welchem Schwellenwert, und ob der Code-senden-Endpunkt ein serverseitiges Ratenlimit hat, das von nichts abhaengt, was man dem Browser sagen kann zu ignorieren. Keine dieser drei Pruefungen erfordert neue Software oder eine neue Anbieterbeziehung, nur die Zeit, den Anbieter direkt zu fragen und die Antwort zu lesen, die zurueckkommt.


