SMS-Betrug erkennen und verhindern

In diesem Dokument erfahren Sie, wie Sie mit reCAPTCHA SMS-Gebührenbetrugschutz SMS-Pumping-Angriffe in Unternehmen erkennen und verhindern können, die sich auf SMS für die 2-Faktor-Authentifizierung (2FA) oder Telefonbestätigung verlassen, was ein potenzielles Ziel für SMS-Gebührenbetrug ist.

SMS-2FA ist ein Branchenstandard für Anmelde- und Anmeldesicherheit, bietet jedoch keinen Schutz vor SMS-Gebührenbetrug oder SMS Pumping-Betrug.

Mit dem reCAPTCHA-Schutz für Gebührenbetrug bei SMS können Sie Ihr Unternehmen vor SMS-Gebührenbetrug oder SMS-Pumping-Betrug schützen und gleichzeitig SMS-basierte Authentifizierung nutzen. Der reCAPTCHA-SMS-Schutz vor Gebührenbetrug agiert als Filter für Ihren SMS-Traffic. Bevor Sie eine SMS senden, erhalten Sie vom reCAPTCHA-SMS-Schutz vor Gebührenbetrug einen Risikowert, der angibt, mit welcher Wahrscheinlichkeit diese Telefonnummer für SMS-Gebührenbetrug verantwortlich ist. Auf Grundlage dieser Punktzahl können Sie betrügerische SMS zulassen oder blockieren, bevor sie an Ihren SMS-Anbieter gesendet werden.

Hinweise

  • Bereiten Sie Ihre Umgebung für reCAPTCHA vor.
  • Aktivieren Sie den reCAPTCHA-Schutz vor SMS-Gebührenbetrug in Ihrem Google Cloud-Projekt:

    1. Rufen Sie in der Google Cloud Console die Seite „reCAPTCHA“ auf.

      Zu reCAPTCHA

    2. Prüfen Sie, ob der Name Ihres Projekts in der Ressourcenauswahl angezeigt wird.

      Wenn Sie den Namen Ihres Projekts nicht sehen, klicken Sie auf die Ressourcenauswahl und wählen Sie Ihr Projekt aus.

    3. Klicken Sie auf Einstellungen.

    4. Wenn reCAPTCHA Account Defender für Ihr Projekt nicht aktiviert ist, gehen Sie so vor:

      1. Klicken Sie im Bereich Account Defender auf Aktivieren.
      2. Klicken Sie im Dialogfeld Account Defender konfigurieren auf Aktivieren.
    5. Klicken Sie im Bereich Schutz vor SMS-Gebührenbetrug auf Konfigurieren.

    6. Klicken Sie auf den Schalter Aktivieren und dann auf Speichern.

    Es kann einige Minuten dauern, bis der SMS-Schutz vor Mautbetrug mit reCAPTCHA auf unsere Systeme übertragen wird. Nachdem die Featureaktivierung an unsere Systeme weitergegeben wurde, sollten Sie im Rahmen der Bewertungen Antworten zum reCAPTCHA-Schutz vor SMS-Gebührenbetrug erhalten.

  • Erstellen Sie einen wertbasierten Schlüssel für Ihre Website oder mobile App.

reCAPTCHA-Schutz vor SMS-Gebührenbetrug konfigurieren

So konfigurieren Sie den reCAPTCHA-Schutz vor SMS-Gebührenbetrug auf Ihrer Website oder in Ihrer mobilen App:

  1. reCAPTCHA in Ihre Website oder mobile App einbinden.

  2. Erstellen Sie eine Bewertung mit der Telefonnummer.

  3. Annotieren Sie die Bewertung.

reCAPTCHA einbinden

Führen Sie einen der folgenden Schritte aus, um reCAPTCHA in Ihre Website oder mobile App zu integrieren:

Bewertung mit Telefonnummer erstellen

Erstellen Sie mit dem Token, das von der Funktion execute() generiert wird, eine Bewertung mithilfe der reCAPTCHA-Clientbibliotheken oder der REST API aus Ihrem Back-End.

In diesem Dokument erfahren Sie, wie Sie mit der REST API eine Bewertung erstellen. Informationen zum Erstellen einer Bewertung mit Clientbibliotheken finden Sie unter Bewertungen erstellen.

Führen Sie vor dem Erstellen einer Bewertung die folgenden Schritte aus:

  • Richten Sie die Authentifizierung bei reCAPTCHA ein.

    Die ausgewählte Authentifizierungsmethode hängt von der Umgebung ab, in der reCAPTCHA eingerichtet ist. Die folgende Tabelle hilft Ihnen, die geeignete Authentifizierungsmethode und die unterstützte Schnittstelle zum Einrichten der Authentifizierung auszuwählen:

    Umgebung Schnittstelle Authentifizierungsmethode
    Google Cloud
    • REST
    • Clientbibliotheken
    Verwenden Sie angehängte Dienstkonten.
    Lokal oder ein anderer Cloud-Anbieter REST Verwenden Sie API-Schlüssel oder die Workload Identity-Föderation.

    Wenn Sie API-Schlüssel verwenden möchten, empfehlen wir, die API-Schlüssel durch Anwenden von Einschränkungen für API-Schlüssel zu sichern.

    Clientbibliotheken

    Verwenden Sie:

  • Wählen Sie eine stabile Konto-ID accountId, die vom Nutzer nicht oft geändert wird, und stellen Sie sie in der Methode projects.assessments.create für die Bewertung bereit. Diese stabile Konto-ID sollte für alle Ereignisse, die sich auf denselben Nutzer beziehen, denselben Wert haben. Als Konto-ID können Sie Folgendes angeben:

    Nutzerkennungen

    Wenn jedes Konto eindeutig mit einem stabilen Nutzernamen, einer E-Mail-Adresse oder einer Telefonnummer verknüpft werden kann, können Sie sie als accountId verwenden. Wenn du Website-übergreifende Kennungen (Kennungen, die websiteübergreifend wiederverwendet werden können) zur Verfügung stellen, verwendet reCAPTCHA diese Informationen, um den Schutz deiner Nutzerkonten auf der Grundlage von websiteübergreifenden Modellen zu verbessern. Dazu werden missbräuchliche Konto-IDs gemeldet und die Kenntnis von websiteübergreifenden Missbrauchsmustern im Zusammenhang mit diesen Kennungen genutzt.

    Wenn Sie eine interne Nutzer-ID haben, die jedem Konto eindeutig zugeordnet ist, können Sie sie auch als accountId angeben.

    Gehasht oder verschlüsselt

    Wenn Sie keine interne Nutzer-ID haben, die jedem Konto eindeutig zugeordnet ist, können Sie eine beliebige stabile ID in eine intransparente, websitespezifische Konto-ID umwandeln. Diese Kennung wird weiterhin benötigt, damit reCAPTCHA Account Defender Nutzeraktivitätsmuster verstehen und ungewöhnliches Verhalten erkennen kann. Sie wird jedoch nicht an andere Websites weitergegeben.

    Wählen Sie eine beliebige stabile Konto-ID aus und machen Sie sie vor dem Senden an reCAPTCHA durch Verschlüsselung oder Hash-Technologie undurchsichtig:

    • Verschlüsselung (empfohlen): Verschlüsseln Sie die Kontokennung mit einer deterministischen Verschlüsselungsmethode, die einen stabilen Geheimtext erzeugt. Eine ausführliche Anleitung finden Sie unter Daten deterministisch verschlüsseln. Wenn Sie symmetrische Verschlüsselung statt Hashing verwenden, müssen Sie keine Zuordnung zwischen Ihren Nutzerkennungen und den entsprechenden intransparenten Nutzerkennungen vornehmen. Entschlüsseln Sie die von reCAPTCHA zurückgegebenen intransparenten Kennungen, um sie in die Nutzer-ID umzuwandeln.

    • Hashing: Wir empfehlen, die Konto-ID mithilfe der SHA256-HMAC-Methode mit einem benutzerdefinierten Salt Ihrer Wahl zu hashen. Da Hashes nur in eine Richtung gelten, müssen Sie eine Zuordnung zwischen den generierten Hashes und Ihren Nutzer-IDs vornehmen, damit Sie die gehashte Konto-ID zuordnen können, die an die ursprünglichen Konten zurückgegeben wird.

Fügen Sie den Parameter accountId und die Telefonnummer im E.164-Format als UserId hinzu, um sie bei der Bewertung mit der Methode projects.assessments.create zu bestätigen.

Bevor Sie die Anfragedaten verwenden, ersetzen Sie die folgenden Werte:

  • PROJECT_ID ist Ihre Google Cloud-Projekt-ID.
  • TOKEN: vom grecaptcha.enterprise.execute()-Aufruf zurückgegebenes Token.
  • KEY_ID: Der auf Punktzahlen basierende Schlüssel, den Sie auf Ihrer Website installiert haben.
  • ACCOUNT_ID: Eine Kennung für ein Nutzerkonto, die für Ihre Website eindeutig ist.
  • PHONE_NUMBER: Die Telefonnummer, die auf Malware geprüft werden muss. Die Telefonnummer muss im E.164-Format vorliegen und darf nicht gehasht oder verschlüsselt sein.

HTTP-Methode und URL:

POST https://recaptchaenterprise.googleapis.com/v1/projects/PROJECT_ID/assessments

JSON-Text der Anfrage:


{
  "event": {
    "token": "TOKEN",
    "siteKey": "KEY_ID",
    "userInfo": {
      "accountId": "ACCOUNT_ID",
      "userIds": [
        {
          "phoneNumber": "PHONE_NUMBER"
        }
      ]
    }
  }
}

Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:

curl

Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json und führen Sie den folgenden Befehl aus:

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://recaptchaenterprise.googleapis.com/v1/projects/PROJECT_ID/assessments"

PowerShell

Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json und führen Sie den folgenden Befehl aus:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://recaptchaenterprise.googleapis.com/v1/projects/PROJECT_ID/assessments" | Select-Object -Expand Content

Sie sollten in etwa folgende JSON-Antwort erhalten:


{
  "event": {
     …
  },
  "name": "ASSESSMENT_ID",
  "smsFraudAssessment": {
    "smsFraudRisk": 0.3
  }
}

Die Antwort, die Sie erhalten, enthält den smsFraudRisk-Wert im Feld smsFraudAssessment . Je höher der Wert, desto wahrscheinlicher ist die Telefonnummer riskant. Je niedriger sie ist, desto höher ist die Wahrscheinlichkeit, dass die Telefonnummer zulässig ist.

Sie sind für die Maßnahmen verantwortlich, die Sie auf Grundlage der Bewertung ergreifen. Für die einfachste Einbindung können Sie Grenzwerte für smsFraudRisk festlegen, die zu Ihrer Entscheidung beitragen.

Bewertung mit Anmerkungen versehen

Um den SMS-Traffic im Blick zu behalten und die Betrugserkennung zu verbessern, müssen Sie die Bewertungen innerhalb von 10 Minuten nach dem Senden der SMS oder nach erfolgreicher Bestätigung der Telefonnummer mit Anmerkungen versehen.

Sie können eine Bewertung annotieren, indem Sie eine Anfrage mit der Bewertungs-ID an die Methode projects.assessments.annotate senden. Geben Sie im Text dieser Anfrage die Telefonnummer im E.164-Format in das Feld phoneAuthenticationEvent ein.

So annotieren Sie eine Bewertung:

  1. Legen Sie je nach Anwendungsfall die Informationen und Labels fest, die dem JSON-Anfragetext hinzugefügt werden sollen.

    In der folgenden Tabelle sind die Labels und Werte aufgeführt, mit denen Sie Ereignisse annotieren können:

    Label Beschreibung Anfragebeispiel
    reasons

    Erforderlich. Ein Label zur Unterstützung Ihrer Bewertungen.

    Geben Sie wenige Sekunden oder Minuten nach dem Ereignis mit dem Label reasons Echtzeitdetails zu Ereignissen an, da sie die Echtzeiterkennung beeinflussen.

    Mögliche Werte:

    • INITIATED_TWO_FACTOR: Ein Bestätigungscode wird per SMS gesendet.
    • PASSED_TWO_FACTOR: Der Bestätigungscode wurde erfolgreich verifiziert.
    • FAILED_TWO_FACTOR: Der Bestätigungscode ist ungültig.
        {
        "reasons": ["INITIATED_TWO_FACTOR"],
        "phoneAuthenticationEvent": {
          "phoneNumber": "+18005550175"
        }
      }
    annotation

    Optional. Ein Label zur Angabe der Rechtmäßigkeit von Bewertungen.

    Geben Sie im Label annotation Informationen zu Anmelde- und Registrierungsereignissen an, um Ihre Risikobewertungen zu validieren oder zu korrigieren.

    Mögliche Werte: LEGITIMATE oder FRAUDULENT.

    Wir empfehlen, diese Informationen innerhalb weniger Sekunden oder Minuten nach dem Ereignis zu senden, da sie die Echtzeiterkennung beeinflussen.

      {
       "annotation": "LEGITIMATE"
      }
      
  2. Erstellen Sie eine Anmerkungsanfrage mit den entsprechenden Labels.

    Bevor Sie die Anfragedaten verwenden, ersetzen Sie die folgenden Werte:

    • ASSESSMENT_ID: Wert des Feldes name, das vom projects.assessments.create-Aufruf zurückgegeben wurde.
    • ANNOTATION: Optional. Ein Label zur Angabe, ob die Bewertung legitim oder betrügerisch ist
    • REASONS: Gründe, die Ihre Anmerkung unterstützen. Eine Liste der möglichen Werte finden Sie unter Werte für die Gründe.
    • PHONE_NUMBER: die Telefonnummer, die geprüft wurde Die Telefonnummer muss im E.164-Format vorliegen und darf nicht gehasht oder verschlüsselt sein.

    HTTP-Methode und URL:

    POST https://recaptchaenterprise.googleapis.com/v1/ASSESSMENT_ID:annotate

    JSON-Text der Anfrage:

    {
      "annotation": ANNOTATION,
      "reasons": REASONS,
      "phoneAuthenticationEvent": {
        "phoneNumber": "PHONE_NUMBER"
      }
    }
    

    Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:

    curl

    Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json und führen Sie den folgenden Befehl aus:

    curl -X POST \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json; charset=utf-8" \
    -d @request.json \
    "https://recaptchaenterprise.googleapis.com/v1/ASSESSMENT_ID:annotate"

    PowerShell

    Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json und führen Sie den folgenden Befehl aus:

    $cred = gcloud auth print-access-token
    $headers = @{ "Authorization" = "Bearer $cred" }

    Invoke-WebRequest `
    -Method POST `
    -Headers $headers `
    -ContentType: "application/json; charset=utf-8" `
    -InFile request.json `
    -Uri "https://recaptchaenterprise.googleapis.com/v1/ASSESSMENT_ID:annotate" | Select-Object -Expand Content

    Sie sollten einen erfolgreichen Statuscode (2xx) und eine leere Antwort als Ausgabe erhalten.

Nächste Schritte