https://d226lax1qjow5r.cloudfront.net/blog/blogposts/mitigate-2fa-sms-fraud-using-vonage-apis/fraud-mitigation.jpg

Entschärfung von 2FA-SMS-Betrug mit Vonage-APIs

Zuletzt aktualisiert am January 17, 2022

Lesedauer: 7 Minuten

Die Kommunikationstechnologie entwickelt sich ständig weiter, und der Wandel hat sich in den letzten Jahren rasant vollzogen. Diese Entwicklung hat den Unternehmen, die diese Technologien nutzen, viele Vorteile gebracht, denn sie ermöglicht eine bessere Interaktion mit den Kunden und eine intelligente Automatisierung. Leider gibt es auch böswillige Akteure, die versuchen, die Veränderungen der technologischen Trends für ihre Zwecke auszunutzen. Ein Beispiel dafür ist die Zunahme des SMS-2FA-Betrugs.

Die Zwei-Faktor-Authentifizierung (2FA) per SMS gibt es schon seit einiger Zeit, und in den letzten Jahren hat sie massiv an Popularität gewonnen. Heutzutage bieten die meisten Applications 2FA an, oft über einen SMS-Kommunikationskanal implementiert. Aufgrund dieser Beliebtheit sind 2FA-Systeme zu einer Art Anziehungspunkt für Betrüger geworden, die versuchen, diese Systeme auf verschiedene Weise auszunutzen, z. B. indem sie nicht legalen Datenverkehr durch sie leiten.

Betrugsszenario: SMS 2FA Premium Rate Fraud

Ein häufiges Motiv für diese Art von betrügerischen Aktivitäten ist die Weiterleitung von Nachrichten an Premium Rate Numbers oder virtuelle Nummern, die von Betrügern als inoffizielle Premium Numbers erstellt wurden. Um zu verstehen, wie dieser Betrug begangen wird, lassen Sie uns zunächst einen typischen Arbeitsablauf für die Implementierung von 2FA per SMS durchgehen.

  1. Ein Kunde meldet sich an oder erstellt einen Account für eine Anwendung

  2. Bei der Anmeldung/Kontenerstellung gibt der Kunde eine Mobilfunknummer an, die für 2FA-Zwecke verwendet werden soll.

  3. Bei späteren Anmeldungen wird im Rahmen der 2FA-Verifizierung eine SMS mit einem Code an die Nummer gesendet, den der Kunde dann über die Benutzeroberfläche der Anwendung eingeben kann.

Diese Art von grundlegendem Arbeitsablauf kann anfällig für Betrug sein, der auf nicht legitimem Datenverkehr basiert, wie z. B. die Weiterleitung dieses Datenverkehrs an Premium Rate Numbers. Um den Betrug zu begehen, kann in Schritt 2 eine Mehrwertdienstnummer eingegeben werden. Die Betrüger würden dann versuchen, mehrere Anmeldungen für dieses oder nachfolgende Konten zu simulieren, möglicherweise unter Verwendung von Bots. Bei jeder "Anmeldung" würde als Teil des 2FA-Systems in Schritt 3 eine SMS an die Mehrwertdienstnummer gesendet, wodurch zusätzliche Kosten für jede Nachricht entstehen, die weit über die Kosten für eine Standardnachricht hinausgehen. Betrüger würden in der Regel Bots verwenden, um sich für mehrere Accounts anzumelden und für jeden Account mehrere 2FA-SMS-Nachrichten auszulösen. Die monetären Kosten eines solchen Betrugs könnten daher schnell beträchtlich werden.

Schutz vor Betrug - Was Sie tun können

Es gibt verschiedene Möglichkeiten, diese Art von Betrug einzudämmen.

Ratenbegrenzung

Ein Ansatz könnte darin bestehen, die Anzahl der innerhalb eines bestimmten Zeitraums versendeten Verifizierungs-SMS auf der Grundlage verschiedener Faktoren zu begrenzen. Zum Beispiel könnte die Anzahl der an dieselbe Nummer oder dieselbe IP-Adresse oder Gerätekennung gesendeten Nachrichten begrenzt werden.

Eine Ratenbegrenzung kann die Auswirkungen eines solchen Betrugs zwar abmildern, aber nicht völlig ausschließen. Ebenso wichtig ist eine Hygieneprüfung der für die 2FA-Einrichtung angegebenen Numbers, um die Quelle des Betrugs selbst zu verhindern. Dies kann durch eine robuste Eingabevalidierung erreicht werden.

Überprüfung der Eingaben

Betrachtet man den übergeordneten Arbeitsablauf von vorhin, so ist Schritt 3 der Ort, an dem die Auswirkungen des Betrugs auftreten. Das Potenzial für diese Auswirkungen entsteht jedoch schon früher, nämlich in Schritt 2, wenn die Mehrwertdienstnummer als die für die 2FA zu verwendende Nummer eingerichtet wird. Durch eine Eingabevalidierung an diesem Punkt des Anmelde-Workflows kann verhindert werden, dass eine Premium-Rate-Nummer in Schritt 3 weitergeleitet wird. Schauen wir uns einen aktualisierten Workflow an, der die Eingabeüberprüfung enthält:

  1. Ein Kunde meldet sich an oder erstellt einen Account für eine Anwendung

  2. Bei der Anmeldung/Kontenerstellung gibt der Kunde eine Mobilfunknummer an, die für 2FA-Zwecke verwendet werden soll.

  • Die angegebene Zahl wird anhand bestimmter vorgegebener Parameter überprüft. Wird die Zahl nach diesen Parametern als akzeptabel erachtet, wird sie hinzugefügt, andernfalls wird sie abgelehnt.

  1. Bei späteren Anmeldungen wird im Rahmen der 2FA-Verifizierung eine SMS mit einem Code an die Nummer gesendet, den der Kunde dann über die Benutzeroberfläche der Anwendung eingeben kann.

Die genauen Parameter, die zur Identifizierung potenziell betrügerischer Numbers verwendet werden, variieren je nach dem Kundenstamm der jeweiligen Anwendung. Ein gängiger Ansatz ist die Verwendung von Ländervorwahlen oder Nummernpräfixen, um festzustellen, aus welchem Land eine bestimmte Nummer stammt.

Diese Art von Zahleninformationen kann auf verschiedene Weise verwendet werden:

  • Lassen Sie nur Numbers aus bestimmten Ländern zu. Dieser Ansatz ist sinnvoll, wenn Sie beispielsweise wissen, dass alle Ihre Kunden aus einem bestimmten Land kommen, in dem die Regulierung von Premium Rate Numbers sehr streng ist und die Wahrscheinlichkeit von Betrug dieser Art daher sehr viel geringer ist.

  • Verhinderung von Numbers aus bestimmten Ländern in denen Sie nicht tätig sind oder keinen Kundenstamm haben. Darüber hinaus haben einige Länder den Ruf, ein hohes Betrugsrisiko zu bergen, entweder aufgrund von bekanntem Betrug mit Premium Rate Numbers oder weil dort Rückvergütungen bei Nummernbetrug weit verbreitet sind (mit geringen oder keinen Vorschriften für Premium Rate Numbers).

Nebenbei bemerkt: Da diese betrügerischen Eingaben häufig von Bots vorgenommen werden, kann die Implementierung eines CAPTCHA einen Teil der betrügerischen Aktivitäten verhindern.

Entschärfung des Betrugs - Wie wir helfen können

Verwenden Sie die Vonage Number Insights API

Eine Möglichkeit, Informationen zur Rufnummernidentität zu erhalten, ist die Vonage Number Insights API. Zu diesem Zweck können wir eine Anfrage an den entsprechenden API-Endpunkt senden. Es gibt verschiedene Endpunkte für Basic, Standard und Advanced Insights, die jeweils ein unterschiedliches Maß an Informationen über die Nummer liefern. Einen Überblick über die Unterschiede finden Sie in diesem Dokument. Außerdem gibt es eine API-Spezifikation die alle Endpunkte abdeckt.

Die Number Insights API kann auch über die Vonage SDKs verwendet werden. Nachfolgend finden Sie ein Beispiel für die Verwendung des Node.js SDK, um Informationen zu einer Nummer über den Advanced Insights Endpunkt zu erhalten.

vonage.numberInsight.get({level: 'advancedSync', number: '447700900000'}, (error, result) => {
  if(error) {
    console.error(error);
  }
  else {
    console.log(result);
  }
});

Eine typische Antwort auf eine Anfrage an die API würde etwa so aussehen:

{
      "status": 0,
      "status_message": "Success",
      "lookup_outcome": 0,
      "lookup_outcome_message": "Success",
      "request_id": "55a7ed8e-ba3f-4730-8b5e-c2e787cbb2b2",
      "international_format_number": "447700900000",
      "national_format_number": "07700 900000",
      "country_code": "GB",
      "country_code_iso3": "GBR",
      "country_name": "United Kingdom",
      "country_prefix": "44",
      "request_price": "0.03000000",
      "remaining_balance": "1.97",
      "current_carrier": {
        "network_code": "23410",
        "name": "Telefonica UK Limited",
        "country": "GB",
        "network_type": "mobile"
      },
      "original_carrier": {
        "network_code": "23410",
        "name": "Telefonica UK Limited",
        "country": "GB",
        "network_type": "mobile"
      },
      "valid_number": "valid",
      "reachable": "reachable",
      "ported": null,
      "roaming": "unknown"
    }

Diese Antwort enthält Datenpunkte über die Nummer, wie z. B. country_code, country_code_iso3, und country_prefix, die zur Identifizierung des Herkunftslandes verwendet werden können. Zusätzlich zu den Länderdaten können andere Datenpunkte manchmal auf potenziell betrügerische Nummern hinweisen. A network_type von undefinedoder eine, die auf eine virtuelle Nummer anspielt, kann manchmal ein Indikator sein. Ein weiterer nützlicher Datenpunkt ist die reachable Eigenschaft; wenn diese den Wert unknownoder einen anderen Wert als "reachable"hat, könnte dies auf eine potenziell betrügerische Nummer hinweisen.

Ein aktualisierter Arbeitsablauf, der Number Insights API einbezieht, könnte etwa so aussehen:

  1. Ein Kunde meldet sich an oder erstellt einen Account für eine Anwendung

  2. Bei der Anmeldung/Kontenerstellung gibt der Kunde eine Mobilfunknummer an, die für 2FA-Zwecke verwendet werden soll.

  • Stellen Sie eine HTTP-Anfrage an die Number Insights API, um Informationen zu dieser Nummer zu erhalten

  • Verwenden Sie die Daten in der Antwort, um die Zahl anhand bestimmter vorgegebener Parameter zu überprüfen. Wird die Zahl nach diesen Parametern als akzeptabel erachtet, wird sie hinzugefügt, andernfalls wird sie abgelehnt.

  1. Bei späteren Anmeldungen wird im Rahmen der 2FA-Verifizierung eine SMS mit einem Code an die Nummer gesendet, den der Kunde dann über die Benutzeroberfläche der Anwendung eingeben kann.

Obwohl die Verwendung der Number Insight API zur Identifizierung potenziell betrügerischer Numbers einige unmittelbare Vorteile in Bezug auf die Betrugsbekämpfung haben kann, ist dieser Ansatz in Bezug auf die Gesamtwirkung leider etwas begrenzt. Die von Number Insights bereitgestellten Informationen sind in hohem Maße von den einzelnen Anbietern abhängig. Es müssen auch schwierige Entscheidungen darüber getroffen werden, welche Datenpunkte verwendet werden sollen; das Sperren ganzer Länder kann beispielsweise aus geschäftlichen Gründen keine Option sein, selbst wenn Nummern, die aus diesen Ländern stammen, ein größeres Risiko für betrügerische Aktivitäten darstellen.

Ein weiterer Schritt, der eine längerfristige und übergreifende Entschärfung bewirken kann, ist der Beitrag zu robusten Routing-Daten über die Vonage Conversion API.

Verwenden Sie die Vonage Conversion API

Die Conversion API ermöglicht es Ihnen, Vonage über die Zuverlässigkeit und Qualität Ihrer 2FA-Kommunikation zu informieren.

Im Zusammenhang mit der 2FA ist die Konvertierung ein Maß dafür, ob der an den Kunden gesendete Authentifizierungscode tatsächlich verwendet wurde oder nicht. Wurde er verwendet, so gilt dies als Umwandlung.

Da das Ziel von Betrügern eher darin besteht, die SMS zu versenden, als den Code tatsächlich zu verwenden, können niedrige Konvertierungsraten Ihrer 2FA ein starker Indikator für ein betrügerisches Abfangen in Ihrer Kommunikationsverbindung sein und helfen, angegriffene Routen zu identifizieren. Wenn Sie die Conversion API verwenden, können Ihre Konversionsraten-Daten in den Adaptive Routing™ Algorithmus von Vonage eingespeist werden, der den Datenverkehr von der von Betrug betroffenen Route auf eine andere, nicht betroffene Route umleitet. Der Adaptive Routing™ Algorithmus bestimmt automatisch die besten Carrier-Routen für die Zustellung von SMS- und Voice-Anrufen zu einem bestimmten Zeitpunkt.

Innerhalb des High-Level-Workflows würde die Conversion API bei Schritt 3 ins Spiel kommen. Sobald der Kunde den Verifizierungscode in die Anwendung eingibt, können Details zu dieser Aktion über einen mit der Aktion verbundenen Webhook empfangen werden. Einen ausführlicheren Überblick über einen typischen 2FA-Workflow finden Sie in diesem Dokument. Für die Zwecke unseres High-Level-Workflows könnte eine aktualisierte Version etwa wie folgt aussehen:

  1. Ein Kunde meldet sich an oder erstellt einen Account für eine Anwendung

  2. Bei der Anmeldung/Kontenerstellung gibt der Kunde eine Mobilfunknummer an, die für 2FA-Zwecke verwendet werden soll.

  • Stellen Sie eine HTTP-Anfrage an die Number Insights API, um Informationen zu dieser Nummer zu erhalten

  • Verwenden Sie die Daten in der Antwort, um die Zahl anhand bestimmter vorgegebener Parameter zu überprüfen. Wird die Zahl nach diesen Parametern als akzeptabel erachtet, wird sie hinzugefügt, andernfalls wird sie abgelehnt.

  1. Bei späteren Anmeldungen wird im Rahmen der 2FA-Verifizierung eine SMS mit einem Code an die Nummer gesendet, den der Kunde dann über die Benutzeroberfläche der Anwendung eingeben kann.

  • Sobald die Bestätigung, dass der Kunde den Verifizierungscode erfolgreich eingegeben hat, über den zugehörigen Webhook eingegangen ist, senden Sie eine HTTP-Anfrage mit der entsprechenden Message-ID an die Conversion API.

Bitte wenden Sie sich an Ihren Account Manager oder den Vertrieb, wenn Sie die Conversion API implementieren möchten.

Teilen Sie:

https://a.storyblok.com/f/270183/373x376/e8d3211236/karl-lingiah.png
Karl LingiahRuby-Entwickler Advocate

Karl ist Developer Advocate bei Vonage und kümmert sich um die Wartung unserer Ruby Server SDKs und die Verbesserung der Entwicklererfahrung für unsere Community. Er liebt es zu lernen, Dinge zu entwickeln, Wissen zu teilen und alles, was allgemein mit Webtechnologie zu tun hat.