In diesem Dokument erfahren Sie, wie Sie SMS Defense verwenden, um SMS-Pumping-Angriffe in Unternehmen zu erkennen und zu verhindern, die auf SMS für die 2‑Faktor-Authentifizierung (2FA) oder die Bestätigung der Telefonnummer angewiesen sind. Diese sind ein potenzielles Ziel für SMS-Gebührenbetrug.
Die SMS-basierte Authentifizierung (2FA und Anmeldung) ist ein Branchenstandard für die Sicherheit bei der Anmeldung und Registrierung, bietet jedoch keinen Schutz vor SMS-Gebührenbetrug oder SMS-Pumping-Betrug. Bevor Sie eine SMS senden, erhalten Sie von SMS Defense einen Risikowert, der angibt, wie wahrscheinlich es ist, dass mit der Telefonnummer SMS-Gebührenbetrug begangen wird. Anhand dieser Punktzahl können Sie betrügerische SMS-Nachrichten zulassen oder blockieren, bevor sie an Ihren SMS-Anbieter gesendet werden.
Der Risikowert für SMS Defense funktioniert umgekehrt im Vergleich zum globalen reCAPTCHA-Wert. Ein SMS Defense-Risikowert von 0,0 bedeutet, dass das Risiko für SMS-Gebührenbetrug gering ist. Ein Risikowert von 1,0 bedeutet, dass das Risiko für SMS-Gebührenbetrug hoch ist. Weitere Informationen zu reCAPTCHA-Werten finden Sie unter Bewertungen für Websites interpretieren. Wenn Sie Firebase Authentication oder Identity Platform verwenden, lesen Sie die Identity Platform-Dokumentation.
Weitere Informationen finden Sie im SMS Defense-Blog.
Hinweis
Folgen Sie je nachdem, ob Sie bereits reCAPTCHA-Nutzer sind oder reCAPTCHA zum ersten Mal verwenden, der Anleitung auf dem entsprechenden Tab:
Vorhandener reCAPTCHA-Nutzer
Wenn Sie reCAPTCHA bereits verwenden, aktivieren Sie SMS Defense für Ihr Google Cloud Projekt:
Rufen Sie in der Google Cloud Console die reCAPTCHA-Seite auf.
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.
Klicken Sie auf Einstellungen.
Klicken Sie im Bereich SMS defense auf Konfigurieren.
Klicken Sie auf den Schalter Aktivieren und dann auf Speichern.
Es kann einige Minuten dauern, bis die Aktivierung der SMS-Abwehr in unseren Systemen übernommen wird. Nachdem die Aktivierung der Funktion in unseren Systemen erfolgt ist, sollten Sie im Rahmen der Bewertungen Antworten zur SMS Defense erhalten.
Neuer reCAPTCHA-Nutzer
Wenn Sie reCAPTCHA noch nicht kennen, gehen Sie so vor:
-
Je nachdem, ob Sie SMS Defense auf einer Website oder in einer mobilen Anwendung verwenden möchten, gehen Sie so vor, um reCAPTCHA einzubinden:
Website
Mobile Anwendung
- Erstellen Sie einen auf Punktzahlen basierenden Schlüssel für Ihre mobile Anwendung.
- reCAPTCHA in eine iOS-App oder eine Android-App einbinden
- Aktivieren Sie SMS Defense für Ihr Google Cloud -Projekt:
Rufen Sie in der Google Cloud Console die reCAPTCHA-Seite auf.
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.
Klicken Sie auf Einstellungen.
Klicken Sie im Bereich SMS defense auf Konfigurieren.
Klicken Sie auf den Schalter Aktivieren und dann auf Speichern.
Es kann einige Minuten dauern, bis die Aktivierung der SMS-Abwehr in unseren Systemen übernommen wird. Nachdem die Aktivierung der Funktion in unseren Systemen erfolgt ist, sollten Sie im Rahmen der Bewertungen Antworten zur SMS Defense erhalten.
Bewertung mit der Telefonnummer erstellen
Erstellen Sie für SMS Defense Bewertungen mit dem Token, das von der Funktion execute() generiert wurde, und der Telefonnummer. Verwenden Sie dazu entweder die reCAPTCHA-Clientbibliotheken oder die REST API aus Ihrem Backend.
In diesem Dokument wird beschrieben, 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 Prüfung die folgenden Schritte aus:
Richten Sie die Authentifizierung für reCAPTCHA ein.
Die von Ihnen gewählte Authentifizierungsmethode hängt von der Umgebung ab, in der reCAPTCHA eingerichtet ist. Die folgende Tabelle hilft Ihnen bei der Auswahl der geeigneten Authentifizierungsmethode und der unterstützten Schnittstelle zum Einrichten der Authentifizierung:
Umgebung Schnittstelle Authentifizierungsmethode Google Cloud - REST
- Clientbibliotheken
Angehängte Dienstkonten verwenden. 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 schützen.
Clientbibliotheken Verwenden Sie:
- Verwenden Sie für Python oder Java API-Schlüssel oder die Identitätsföderation von Arbeitslasten.
Wenn Sie API-Schlüssel verwenden möchten, empfehlen wir, sie durch Einschränkungen für API-Schlüssel zu schützen.
- Verwenden Sie für andere Sprachen die Workload Identity-Föderation.
Wählen Sie eine stabile Konto-ID
accountIdaus, die vom Nutzer nicht oft geändert wird, und geben Sie sie in der Methodeprojects.assessments.createfür die Bewertung 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:Nutzer-IDs
Wenn jedes Konto eindeutig mit einem stabilen Nutzernamen, einer E‑Mail-Adresse oder einer Telefonnummer verknüpft werden kann, können Sie diese als
accountIdverwenden. Wenn Sie solche websiteübergreifenden Kennungen (Kennungen, die auf mehreren Websites wiederverwendet werden können) angeben, verwendet reCAPTCHA diese Informationen, um den Schutz für Ihre Nutzerkonten auf Grundlage von websiteübergreifenden Modellen zu verbessern. Dazu werden missbräuchliche Konto-IDs gekennzeichnet und Informationen zu websiteübergreifenden Missbrauchsmustern im Zusammenhang mit diesen Kennungen verwendet.Alternativ können Sie die
accountIdangeben, wenn Sie eine interne Nutzer-ID haben, die eindeutig jedem Konto zugeordnet ist.Gehasht oder verschlüsselt
Wenn Sie keine interne Nutzer-ID haben, die eindeutig mit jedem Konto verknüpft ist, können Sie jede stabile ID in eine undurchsichtige, websitespezifische Konto-ID umwandeln. Diese Kennung ist weiterhin für reCAPTCHA Account Defender erforderlich, um Nutzeraktivitätsmuster zu verstehen und anomales Verhalten zu erkennen. Sie wird jedoch nicht auf anderen Websites geteilt.
Wählen Sie eine beliebige stabile Konto-ID aus und machen Sie sie undurchsichtig, bevor Sie sie an reCAPTCHA senden. Verwenden Sie dazu Verschlüsselung oder Hash-Technologie:
Verschlüsselung (empfohlen): Verschlüsseln Sie die Konto-ID mit einer deterministischen Verschlüsselungsmethode, die einen stabilen Chiffretext erzeugt. Eine ausführliche Anleitung finden Sie unter Daten deterministisch verschlüsseln. Wenn Sie sich für die symmetrische Verschlüsselung anstelle des Hashings entscheiden, müssen Sie keine Zuordnung zwischen Ihren Nutzerkennungen und den entsprechenden undurchsichtigen Nutzerkennungen vornehmen. Entschlüsseln Sie die intransparenten Kennzeichnungen, die von reCAPTCHA zurückgegeben werden, um sie in die Nutzer-ID umzuwandeln.
Hashing: Wir empfehlen, die Konto-ID mit der SHA256-HMAC-Methode und 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 zurückgegebenen gehashten Konto-IDs 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 in der Überprüfung mit der Methode projects.assessments.create zu bestätigen.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- PROJECT_ID: Projekt-ID in Google Cloud .
- TOKEN: vom Aufruf
grecaptcha.enterprise.execute()zurückgegebenes Token. - KEY_ID: der schlüsselbasierte Schlüssel, den Sie auf Ihrer Website installiert haben.
- ACCOUNT_ID: Eine für Ihre Website eindeutige Kennung für ein Nutzerkonto.
- PHONE_NUMBER: Die Telefonnummer, die auf Bösartigkeit 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 eine JSON-Antwort ähnlich wie diese erhalten:
{
"event": {
…
},
"name": "ASSESSMENT_ID",
"phoneFraudAssessment": {
"smsTollFraudVerdict": {
"risk": 0.3
}
}
}
Die Antwort, die Sie erhalten, enthält die risk-Punktzahl im Feld phoneFraudAssessment.smsTollFraudVerdict . 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 phoneFraudAssessment.smsTollFraudVerdict.risk festlegen, um Ihre Entscheidung zu treffen.
Bewertung annotieren
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 der erfolgreichen Bestätigung der Telefonnummer mit Anmerkungen versehen.
Sie merken eine Bewertung an, 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 im Feld phoneAuthenticationEvent an.
So fügen Sie einer Bewertung eine Anmerkung hinzu:
Legen Sie die Informationen und Labels fest, die Sie je nach Anwendungsfall in den JSON-Anfragetext einfügen möchten.
In der folgenden Tabelle sind die Labels und Werte aufgeführt, die Sie zum Annotieren von Ereignissen verwenden können:
Label Beschreibung Beispielanfrage reasonsErforderlich. Ein Label zur Unterstützung Ihrer Analysen.
Stellen Sie innerhalb weniger Sekunden oder Minuten nach dem Ereignis Echtzeit-Ereignisdetails im Label
reasonsbereit, 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 bestätigt.FAILED_TWO_FACTOR: Der Bestätigungscode ist ungültig.
{ "reasons": ["INITIATED_TWO_FACTOR"], "phoneAuthenticationEvent": { "phoneNumber": "+18005550175" } }annotationOptional. Ein Label zur Angabe der Rechtmäßigkeit von Bewertungen.
Geben Sie Fakten zu Anmelde- und Registrierungsereignissen an, um Ihre Risikobewertungen im
annotation-Label zu validieren oder zu korrigieren.Mögliche Werte:
LEGITIMATEoderFRAUDULENT.Wir empfehlen, diese Informationen einige Sekunden oder Minuten nach dem Ereignis zu senden, da sie sich auf die Echtzeiterkennung auswirken.
{ "annotation": "LEGITIMATE" }Erstellen Sie eine Annotate-Anfrage mit den entsprechenden Labels.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- ASSESSMENT_ID: Wert des Felds
name, der vomprojects.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 unterstützen. Eine Liste der möglichen Werte finden Sie unter Werte für „reasons“.
- PHONE_NUMBER: Die Telefonnummer, die bewertet 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.jsonund 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.jsonund 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 ContentSie sollten einen erfolgreichen Statuscode (2xx) und eine leere Antwort als Ausgabe erhalten.
- ASSESSMENT_ID: Wert des Felds