SMS-Betrug erkennen und verhindern

In diesem Dokument erfahren Sie, wie Sie mit dem SMS-Gebührenbetrugsschutz von reCAPTCHA SMS-Pumping-Angriffe in Unternehmen erkennen und verhindern können, die SMS für die Zwei-Faktor-Authentifizierung (2FA) oder die Telefonbestätigung nutzen. Dies ist ein potenzielles Ziel für SMS-Gebührenbetrug.

Die SMS-basierte Authentifizierung (2FA und Anmeldung) ist ein Branchenstandard für die Sicherheit von Anmeldungen und Registrierungen. Sie bietet jedoch keinen Schutz vor SMS-Gebührenbetrug oder SMS-Pumping-Betrug. Bevor Sie eine SMS senden, erhalten Sie mit dem SMS-Gebührenbetrugsschutz von reCAPTCHA einen Risikowert, der die Wahrscheinlichkeit angibt, dass mit dieser Telefonnummer SMS-Gebührenbetrug begangen wird. Anhand dieses Werts können Sie betrügerische SMS zulassen oder blockieren, bevor sie an Ihren SMS-Anbieter gesendet werden.

Weitere Informationen finden Sie im Blogpost SMS-Gebührenbetrugsschutz von reCAPTCHA.

Hinweise

Folgen Sie der Anleitung auf dem entsprechenden Tab, je nachdem, ob Sie reCAPTCHA bereits verwenden oder neu dabei sind:

Bestehender reCAPTCHA-Nutzer

Wenn Sie bereits reCAPTCHA verwenden, aktivieren Sie den SMS-Gebührenbetrugsschutz von reCAPTCHA 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. Klicke auf Einstellungen.

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

    1. Klicken Sie im Bereich Kontoschutz auf Aktivieren.
    2. Klicken Sie im Dialogfeld Kontoschutz konfigurieren auf Aktivieren.
  5. Klicken Sie im Bereich SMS-Gebührenbetrugsschutz auf Konfigurieren.

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

    Es kann einige Minuten dauern, bis die Aktivierung des SMS-Gebührenbetrugsschutzes von reCAPTCHA in unseren Systemen übernommen wird. Nachdem die Aktivierung der Funktion in unseren Systemen übernommen wurde, sollten Sie im Rahmen der Bewertungen Antworten im Zusammenhang mit dem SMS-Gebührenbetrugsschutz von reCAPTCHA erhalten.

Neuer reCAPTCHA-Nutzer

Wenn Sie reCAPTCHA noch nicht verwendet haben, gehen Sie so vor:

  1. Je nachdem, ob Sie den SMS-Gebührenbetrugsschutz von reCAPTCHA auf einer Website oder in einer mobilen Anwendung verwenden möchten, gehen Sie so vor, um reCAPTCHA einzubinden:

  2. So aktivieren Sie den SMS-Gebührenbetrugsschutz von reCAPTCHA 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. Klicke auf Einstellungen.

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

      1. Klicken Sie im Bereich Kontoschutz auf Aktivieren.
      2. Klicken Sie im Dialogfeld Kontoschutz konfigurieren auf Aktivieren.
    5. Klicken Sie im Bereich SMS-Gebührenbetrugsschutz auf Konfigurieren.

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

      Es kann einige Minuten dauern, bis die Aktivierung des SMS-Gebührenbetrugsschutzes von reCAPTCHA in unseren Systemen übernommen wird. Nachdem die Aktivierung der Funktion in unseren Systemen übernommen wurde, sollten Sie im Rahmen der Bewertungen Antworten im Zusammenhang mit dem SMS-Gebührenbetrugsschutz von reCAPTCHA erhalten.

Bewertung mit der Telefonnummer erstellen

Wenn Sie den reCAPTCHA-Betrugsschutz für SMS-Maut nutzen möchten, erstellen Sie Bewertungen mit dem Token, das von der execute()-Funktion generiert wird, und der Telefonnummer. Verwenden Sie dazu entweder die reCAPTCHA-Clientbibliotheken oder die REST API aus Ihrem Backend.

In diesem Dokument wird gezeigt, wie Sie eine Bewertung mit der REST API 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 für reCAPTCHA ein.

    Die Authentifizierungsmethode, die Sie auswählen, hängt von der Umgebung ab, in der reCAPTCHA eingerichtet ist. In der folgenden Tabelle finden Sie Informationen zur Auswahl der geeigneten Authentifizierungsmethode und der unterstützten Benutzeroberfläche für die Authentifizierung:

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

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

    Clientbibliotheken

    Verwenden Sie:

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

    Nutzerkennungen

    Wenn jedes Konto eindeutig mit einem stabilen Nutzernamen, einer E-Mail-Adresse oder einer Telefonnummer verknüpft werden kann, können Sie diese als accountId verwenden. Wenn Sie solche websiteübergreifenden IDs angeben (IDs, die auf Websites wiederverwendet werden können), verwendet reCAPTCHA diese Informationen, um den Schutz Ihrer Nutzerkonten auf der Grundlage von websiteübergreifenden Modellen zu verbessern. Dazu werden missbräuchliche Konto-IDs gemeldet und Kenntnisse zu websiteübergreifenden Missbrauchsmustern in Bezug auf diese IDs genutzt.

    Wenn Sie eine interne Nutzer-ID haben, die eindeutig mit jedem Konto verknüpft ist, können Sie diese als accountId angeben.

    Gehasht oder verschlüsselt

    Wenn Sie keine interne Nutzer-ID haben, die eindeutig mit jedem Konto verknüpft ist, können Sie jede stabile Kennung in eine undurchsichtige, websitespezifische Konto-ID umwandeln. Diese Kennung ist weiterhin erforderlich, damit reCAPTCHA Account Defender die Nutzeraktivitätsmuster nachvollziehen und anormales Verhalten erkennen kann. Sie wird jedoch nicht für andere Websites freigegeben.

    Wählen Sie eine stabile Konto-ID aus und machen Sie sie undurchsichtig, bevor Sie sie an reCAPTCHA senden, indem Sie sie verschlüsseln oder hashen:

    • Verschlüsselung (empfohlen): Verschlüsseln Sie die Konto-ID mit einer deterministischen Verschlüsselungsmethode, die einen stabilen Geheimtext erzeugt. Eine ausführliche Anleitung finden Sie unter Daten deterministisch verschlüsseln. Wenn Sie die symmetrische Verschlüsselung anstelle des Hashwerts verwenden, müssen Sie keine Zuordnung zwischen Ihren Nutzer-IDs und den entsprechenden undurchsichtigen Nutzer-IDs beibehalten. Entschlüsseln Sie die intransparenten Kennungen, die von reCAPTCHA zurückgegeben werden, um sie in die Nutzer-ID umzuwandeln.

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

Fügen Sie den Parameter accountId und die Telefonnummer im E.164-Format als UserId hinzu, um sie bei der Prüfung in der Methode projects.assessments.create zu überprüfen.

Ersetzen Sie diese Werte in den folgenden Anfragedaten:

  • PROJECT_ID ist Ihre Google Cloud-Projekt-ID.
  • TOKEN: vom Aufruf grecaptcha.enterprise.execute() zurückgegebenes Token
  • KEY_ID: der leistungsbasierte Schlüssel, den Sie auf Ihrer Website installiert haben.
  • ACCOUNT_ID: Eine eindeutige Kennung für ein Nutzerkonto auf Ihrer Website.
  • PHONE_NUMBER: Die Telefonnummer, die auf Schadsoftware überprüft werden soll. 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 der Wert, desto wahrscheinlicher ist die Telefonnummer legitim.

Sie sind für die Maßnahmen verantwortlich, die Sie auf Grundlage der Bewertung ergreifen. Für die einfachste Integration können Sie Schwellenwerte für smsFraudRisk festlegen, um Ihre Entscheidung zu unterstützen.

Bewertung mit Anmerkungen versehen

Damit Sie den SMS-Traffic im Blick behalten und die Betrugserkennung verbessern können, müssen Sie die Bewertungen innerhalb von 10 Minuten nach dem Senden der SMS oder nach der erfolgreichen Bestätigung der Telefonnummer annotieren.

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

So fügen Sie Anmerkungen zu einer Bewertung hinzu:

  1. Legen Sie die Informationen und Labels fest, die Sie je nach Anwendungsfall in den JSON-Text der Anfrage einfügen möchten.

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

    Label Beschreibung Beispielanfrage
    reasons

    Erforderlich. Ein Label, das Ihre Bewertungen unterstützt.

    Geben Sie Echtzeit-Ereignisdetails im reasons-Label innerhalb weniger Sekunden oder Minuten nach dem Ereignis an, da sie die Echtzeiterkennung beeinflussen.

    Mögliche Werte:

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

    Optional. Ein Label, das die Legitimität von Bewertungen angibt.

    Geben Sie Fakten zu Anmelde- und Registrierungsereignissen an, um Ihre Risikobewertungen im Label annotation zu bestätigen 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.

    Ersetzen Sie diese Werte in den folgenden Anfragedaten:

    • ASSESSMENT_ID: Wert des name-Felds, der vom projects.assessments.create-Aufruf zurückgegeben wurde.
    • ANNOTATION: Optional. Ein Label, das angibt, ob die Bewertung legitim oder betrügerisch ist.
    • REASONS: Gründe, die Ihre Anmerkung stützen. Eine Liste der möglichen Werte finden Sie unter Werte für „Grund“.
    • 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