Rilevare e prevenire le frodi tramite SMS

Questo documento spiega come utilizzare la protezione antifrode tariffaria SMS di reCAPTCHA per rilevare e prevenire gli attacchi di SMS pumping nelle attività che si basano sugli SMS per l'autenticazione a due fattori (2FA) o la verifica telefonica, che sono potenziali bersagli di frodi tariffarie SMS.

L'autenticazione basata su SMS (2FA e accesso) è uno standard di settore per l'accesso della registrazione, ma non offre protezione contro le frodi a pagamento tramite SMS Invio di SMS fraudolenti. Prima di inviare un SMS, la protezione antifrode tariffaria SMS di reCAPTCHA ti fornisce un punteggio di rischio che indica la probabilità che il numero di telefono commi frode tariffaria SMS. In base a questo punteggio, puoi consentire o bloccare i messaggi SMS fraudolenti prima che vengano inviati al tuo provider di servizi SMS.

Per ulteriori informazioni, consulta il blog sulla protezione antifrode tariffaria SMS di reCAPTCHA.

Prima di iniziare

A seconda che tu sia un utente esistente di reCAPTCHA o un nuovo a reCAPTCHA, segui le istruzioni nella scheda appropriata:

Utente reCAPTCHA esistente

Se sei già un utente di reCAPTCHA, abilita Protezione contro le frodi del pedaggio tramite reCAPTCHA via SMS sul tuo progetto Google Cloud:

  1. Nella console Google Cloud, vai alla pagina reCAPTCHA.

    Vai a reCAPTCHA

  2. Verifica che il nome del progetto venga visualizzato nel selettore di risorse.

    Se non vedi il nome del progetto, fai clic sul selettore di risorse, quindi seleziona il progetto.

  3. Fai clic su Impostazioni.

  4. Se l'account defender di reCAPTCHA non è abilitato per il tuo progetto, procedi nel seguente modo:

    1. Nel riquadro Account Defender, fai clic su Attiva.
    2. Nella finestra di dialogo Configura Account Defender, fai clic su Attiva.
  5. Nel riquadro Protezione antifrode tariffaria SMS, fai clic su Configura.

  6. Fai clic sul pulsante di attivazione/disattivazione Abilita e poi su Salva.

    Potrebbero essere necessari alcuni minuti prima che l'abilitazione della protezione contro le frodi a pagamento tramite SMS di reCAPTCHA si propagano ai nostri sistemi. Dopo che l'abilitazione della funzione viene propagata alle nostre di fatturazione, dovresti iniziare a ricevere risposte relative alla protezione antifrode del pagamento di reCAPTCHA via SMS nell'ambito delle valutazioni.

Nuovo utente reCAPTCHA

Se non hai mai utilizzato reCAPTCHA:

  1. A seconda che tu intenda utilizzare la protezione antifrode tariffaria tramite reCAPTCHA via SMS su un sito web o un dispositivo mobile segui questi passaggi per integrare reCAPTCHA:

  2. Attiva la protezione antifrode tariffaria SMS di reCAPTCHA nel tuo progetto Google Cloud:
    1. Nella console Google Cloud, vai alla pagina reCAPTCHA.

      Vai a reCAPTCHA

    2. Verifica che il nome del progetto venga visualizzato nel selettore di risorse.

      Se non vedi il nome del progetto, fai clic sul selettore di risorse, quindi seleziona il progetto.

    3. Fai clic su Impostazioni.

    4. Se l'account defender di reCAPTCHA non è abilitato per il tuo progetto, procedi nel seguente modo:

      1. Nel riquadro Account Defender, fai clic su Attiva.
      2. Nella finestra di dialogo Configura Account Defender, fai clic su Attiva.
    5. Nel riquadro Protezione antifrode tariffaria SMS, fai clic su Configura.

    6. Fai clic sul pulsante di attivazione/disattivazione Abilita e poi su Salva.

      Potrebbero essere necessari alcuni minuti prima che l'abilitazione della protezione contro le frodi a pagamento tramite SMS di reCAPTCHA si propagano ai nostri sistemi. Una volta propagata l'attivazione della funzionalità ai nostri sistemi, dovresti iniziare a ricevere risposte relative alla protezione antifrode tariffaria SMS di reCAPTCHA nell'ambito delle valutazioni.

Creare una valutazione con il numero di telefono

Per la protezione antifrode per gli SMS di reCAPTCHA, crea valutazioni con il token generato dalla funzione execute() e dal numero di telefono utilizzando le librerie client reCAPTCHA o l'API REST dal tuo backend.

Questo documento mostra come creare una valutazione utilizzando l'API REST. Per scoprire come creare una valutazione utilizzando le librerie client, consulta Creare valutazioni.

Prima di creare una valutazione, segui questi passaggi:

  • Configura l'autenticazione per reCAPTCHA.

    Il metodo di autenticazione che scegli dipende dall'ambiente in cui è configurato reCAPTCHA. La seguente tabella ti aiuta a scegliere il metodo di autenticazione appropriato e l'interfaccia supportata per configurare l'autenticazione:

    Ambiente Interfaccia Metodo di autenticazione
    Google Cloud
    • REST
    • Librerie client
    Utilizza gli account di servizio collegati.
    On-premise o un altro provider cloud REST Utilizza le chiavi API o la federazione delle identità per i carichi di lavoro.

    Se vuoi utilizzare le chiavi API, ti consigliamo di proteggerle applicando limitazioni relative alle chiavi API.

    Librerie client

    Utilizza quanto segue:

  • Scegli un identificatore account stabile accountId che non viene modificato spesso dall'utente e fornirlo alla valutazione nel projects.assessments.create. Questo identificatore di account stabile deve avere lo stesso valore per tutti gli eventi correlati allo stesso utente. Puoi specificare quanto segue come account identificatore:

    Identificatori utente

    Se ogni account può essere associato in modo univoco a un nome utente, un indirizzo email o un telefono stabile numero, puoi usarlo come accountId. Quando fornisci questi identificatori cross-site (identificatori che possono essere riutilizzati su più siti), reCAPTCHA utilizza queste informazioni per migliorare la protezione dei tuoi account utente in base a modelli cross-site, segnalando gli identificatori di account illeciti e utilizzando la conoscenza dei pattern di abusi cross-site correlati a questi identificatori.

    In alternativa, se hai un ID utente interno associato in modo univoco a ogni account, puoi fornirlo come accountId.

    Con hash o criptato

    Se non disponi di un ID utente interno associato in modo univoco a ogni account, puoi trasformare qualsiasi identificativo stabile in un identificativo account opaco e specifico per il sito. Questo identificatore è ancora necessario per il difensore dell'account reCAPTCHA per comprendere i pattern di attività utente e rilevare comportamenti anomali, ma non viene condiviso con altri siti.

    Scegli un identificatore account stabile e rendilo opaco prima di inviarlo a reCAPTCHA utilizzando la crittografia o l'hashing:

    • crittografia (consigliata): cripta l'identificatore dell'account utilizzando una crittografia deterministica di crittografia che produce un testo crittografato stabile. Per istruzioni dettagliate, vedi criptare i dati in modo deterministico. Quando scegli la crittografia simmetrica rispetto all'hashing, non è necessario mantenere una mappatura tra gli identificatori utente e i corrispondenti identificatori utente opaci. Decripta gli identificatori opachi restituiti da reCAPTCHA per trasformarli nell' identificatore utente.

    • hashing: ti consigliamo di eseguire l'hashing dell'identificatore dell'account utilizzando il metodo SHA256-HMAC con un valore salt personalizzato a tua scelta. Poiché gli hash sono solo unidirezionali, devi mantenere una mappatura tra gli hash generati e gli identificatori utente per consentirti di mappare gli hash generati identificatore di account restituiti agli account originali.

Aggiungi il parametro accountId e il numero di telefono nel formato E.164 come UserId da verificare nella valutazione nel metodo projects.assessments.create.

Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:

  • PROJECT_ID: il tuo ID progetto Google Cloud.
  • TOKEN: token restituito dalla chiamata grecaptcha.enterprise.execute().
  • KEY_ID: la chiave basata sul punteggio installata sul tuo sito web.
  • ACCOUNT_ID: un identificatore per un account utente univoco per il tuo sito web.
  • PHONE_NUMBER: il numero di telefono da verificare per rilevare eventuali attività dannose. Il numero di telefono deve essere nel formato E.164 e non deve essere sottoposto ad hashing o criptato.

Metodo HTTP e URL:

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

Corpo JSON della richiesta:


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

Per inviare la richiesta, scegli una delle seguenti opzioni:

curl

Salva il corpo della richiesta in un file denominato request.json, quindi esegui il comando seguente:

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

Salva il corpo della richiesta in un file denominato request.json, quindi esegui il comando seguente:

$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

Dovresti ricevere una risposta JSON simile alla seguente:


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

La risposta che ricevi include il punteggio smsFraudRisk nel Campo smsFraudAssessment . Più alto è il punteggio, maggiori sono le probabilità numero di telefono è rischioso; più basso è il punteggio, più è probabile che il numero di telefono sia legittimi.

Sei responsabile delle azioni intraprese in base alla valutazione. Per l'integrazione più semplice, puoi impostare soglie su smsFraudRisk per contribuiscano alla tua decisione.

Annotare la valutazione

Per monitorare il traffico SMS e migliorare il rilevamento delle frodi, devi: annota i test entro 10 minuti dall'invio dell'SMS o dopo la verifica del numero di telefono.

Puoi annotare una valutazione inviando una richiesta al projects.assessments.annotate con l'ID valutazione. Nel corpo della richiesta, includi il numero di telefono in formato E.164 nel campo phoneAuthenticationEvent.

Per annotare un test:

  1. Determina le informazioni e le etichette da aggiungere nel corpo JSON della richiesta a seconda del caso d'uso.

    La seguente tabella elenca le etichette e i valori che puoi utilizzare per inserire annotazioni eventi:

    Etichetta Descrizione Esempio di richiesta
    reasons

    Obbligatorio. Un'etichetta a supporto delle tue valutazioni.

    Fornisci i dettagli dell'evento in tempo reale nel Etichetta reasons entro pochi secondi o minuti dopo l'evento perché influenzano il rilevamento in tempo reale.

    Valori possibili:

    • INITIATED_TWO_FACTOR: viene inviato un codice di verifica via SMS.
    • PASSED_TWO_FACTOR: il codice di verifica è stato verificato correttamente.
    • FAILED_TWO_FACTOR: il codice di verifica non è valido.
        {
        "reasons": ["INITIATED_TWO_FACTOR"],
        "phoneAuthenticationEvent": {
          "phoneNumber": "+18005550175"
        }
      }
    annotation

    Facoltativo. Un'etichetta per indicare la legittimità delle valutazioni.

    Fornisci informazioni sugli eventi di accesso e registrazione per convalidare o correggere le valutazioni del rischio nell'etichetta annotation.

    Valori possibili: LEGITIMATE o FRAUDULENT.

    Ti consigliamo di inviare queste informazioni pochi secondi o minuti dopo l'evento perché influiscono sul rilevamento in tempo reale.

      {
       "annotation": "LEGITIMATE"
      }
      
  2. Crea una richiesta di annotazione con le etichette appropriate.

    Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:

    • ASSESSMENT_ID: valore del campo name restituito dalla chiamata projects.assessments.create.
    • ANNOTATION: facoltativo. Un'etichetta per indicare se la valutazione è legittima o fraudolenta.
    • REASONS: motivi a supporto della tua annotazione. Per l'elenco dei valori possibili, consulta i valori dei motivi.
    • PHONE_NUMBER: numero di telefono valutato. Il numero di telefono deve essere nel formato E.164 e non deve essere sottoposto ad hashing o criptato.

    Metodo HTTP e URL:

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

    Corpo JSON della richiesta:

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

    Per inviare la richiesta, scegli una delle seguenti opzioni:

    curl

    Salva il corpo della richiesta in un file denominato request.json, quindi esegui il comando seguente:

    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

    Salva il corpo della richiesta in un file denominato request.json, quindi esegui il comando seguente:

    $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

    Dovresti ricevere un codice di stato di operazione riuscita (2xx) e una risposta vuota.

Passaggi successivi