Questo documento spiega come utilizzare reCAPTCHA Account Defender per rilevare e prevenire attività fraudolente relative all'account sui siti web.
reCAPTCHA ti aiuta a proteggere azioni fondamentali come l'accesso e il pagamento. Tuttavia, esistono molte forme sottili di abuso dell'account che possono essere rilevate osservando il comportamento di un utente specifico su un sito web per un determinato periodo di tempo. reCAPTCHA Account Defender aiuta a identificare questi tipi di abusi sottili creando un modello specifico per il tuo sito web per rilevare una tendenza di comportamento sospetto o un cambiamento di attività. Utilizzando il modello di attività modello reCAPTCHA, il defender dell'account di reCAPTCHA ti aiuta a rilevare quanto segue:
- Attività sospette
- Account con comportamenti simili
- Richieste provenienti da dispositivi contrassegnati come attendibili per utenti specifici
In base all'analisi di reCAPTCHA account defender e alle modello specifico per il sito, puoi eseguire le seguenti azioni:
- Limitare o disattivare gli account fraudolenti.
- Impedisci i tentativi di violazione dell'account.
- Mitiga le violazioni degli account riuscite.
- Concedere l'accesso solo alle richieste provenienti da account utente legittimi.
- Riduci i problemi per gli utenti che accedono da uno dei loro dispositivi attendibili.
Prima di iniziare
Configurare le pagine web per l'account defender di reCAPTCHA
Per un rilevamento efficace, Account Defender di reCAPTCHA richiede una conoscenza completa delle attività dell'account. Per iniziare a fornire attività correlate all'account all'account defender di reCAPTCHA e per creare e migliorare il tuo modello specifico per il sito, segui questi passaggi:
- Abilita la raccolta di dati di telemetria orizzontali.
- Genera report sulle azioni critiche degli utenti.
- Valuta gli eventi critici degli utenti.
- Annota gli eventi utente per ottimizzare il modello specifico del tuo sito.
Attivare la raccolta dei dati di telemetria orizzontale
L'account defender di reCAPTCHA richiede una visione completa dell'utente azioni, ad esempio se l'utente ha effettuato o meno l'accesso. Per attivare raccolta passiva di dati di telemetria orizzontali tramite reCAPTCHA account defender, carica lo script JavaScript reCAPTCHA con chiave di sito basata sul punteggio creata in background su tutte le pagine web che fanno parte del tuo flusso di lavoro utente.
L'esempio seguente mostra come caricare lo script JavaScript reCAPTCHA in una pagina web.
<head> <script src="https://www.google.com/recaptcha/enterprise.js?render=KEY_ID"></script> .... </head>
Report sulle azioni critiche degli utenti
Per rilevare pattern di attività sospette e comprendere meglio i pattern di attività tipici sul tuo sito, reCAPTCHA Account Defender ha bisogno delle informazioni sulle azioni utente critiche. Pertanto, segnala le azioni utente critiche sulle pagine web chiamando grecaptcha.enterprise.execute() su queste azioni utente critiche.
Consigliamo di segnalare tutte le azioni critiche degli utenti, perché sono utili per
raccolta di indicatori aggiuntiva. Per ogni azione utente che vuoi segnalare,
sostituisci il valore del parametro action
di grecaptcha.enterprise.execute()
con il nome di un'azione che la descriva.
Nella tabella seguente sono elencati i nomi delle azioni che puoi utilizzare per segnalare le azioni utente critiche.
Nome azione | Evento o azione avviata dall'utente |
---|---|
LOGIN |
Accedi al sito web. |
REGISTRATION |
Registrazione sul sito web. |
SECURITY_QUESTION_CHANGE |
Richiedi di cambiare la domanda di sicurezza. |
PASSWORD_RESET |
Richiedi la reimpostazione della password. |
PHONE_NUMBER_UPDATE |
Richiedi l'aggiornamento del numero di telefono. |
EMAIL_UPDATE |
Richiedi l'aggiornamento dell'indirizzo email. |
ACCOUNT_UPDATE |
Richiedere l'aggiornamento delle informazioni relative all'account, ad esempio i dati di contatto. |
TRIGGER_MFA |
Un'azione che attiva una verifica MFA. |
REDEEM_CODE |
Richiedi l'utilizzo del codice. |
LIST_PAYMENT_METHODS |
Recupera l'elenco dei metodi di pagamento. |
L'esempio seguente mostra come chiamare grecaptcha.enterprise.execute()
su un
aggiornamento del numero di telefono:
<script> function onClick(e) { e.preventDefault(); grecaptcha.enterprise.ready(async () => { const token = await grecaptcha.enterprise.execute('KEY_ID', {action: 'PHONE_NUMBER_UPDATE'}); }); } </script>
Valutare gli eventi critici degli utenti
Quando chiami grecaptcha.enterprise.execute()
su un'azione dell'utente, viene generato un token. Per le critiche
Eventi utente, ad esempio accessi riusciti e non riusciti, registrazioni e azioni di utenti che hanno eseguito l'accesso
Gli utenti possono creare una valutazione per valutare i risultati della chiamata grecaptcha.enterprise.execute()
. La
valutazione fornisce un verdetto sul rischio, che puoi utilizzare per decidere come gestire
le attività potenzialmente fraudolente. Ad esempio, puoi bloccare le richieste sospette, contestare gli accessi rischiosi e indagare sugli account di tuo interesse.
reCAPTCHA Account Defender richiede di fornire un identificatore di account stabile per attribuire l'attività utente, ad esempio richieste di accesso, richieste di accesso e richieste di registrazione, a un account specifico. Questo consente all'account defender di reCAPTCHA di comprendere l'attività utente pattern di attività e verrà creato un modello di attività per ciascun account al fine di rilevare meglio le per via del traffico.
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 fornire quanto segue come identificatore account:
Identificatori degli utenti
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 un modello di attività
(identificatori che possono essere riutilizzati in più siti), reCAPTCHA utilizza
informazioni per migliorare la protezione degli account utente in base ai modelli cross-site
Segnalare identificatori di account illeciti e usare la conoscenza di modelli di comportamento illecito tra siti 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 hai un ID utente interno associato in modo univoco a ciascun account, puoi attivare qualsiasi identificatore stabile in un identificatore di account opaco 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, consulta 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 convertirli nel identificatore utente.
hashing: consigliamo di eseguire l'hashing dell'identificatore dell'account utilizzando il metodo SHA256-HMAC con un sale personalizzato a tua scelta. Poiché gli hash sono unidirezionali, devi mantenere una mappatura tra gli hash generati e gli identificatori utente in modo da poter mappare l'identificatore account sottoposto ad hashing restituito agli account originali.
Oltre a fornire un identificatore account stabile per tutte le richieste relative all'account, puoi fornire identificatori account aggiuntivi, potenzialmente non stabili, per alcune richieste specifiche.
Identificatori dell'account specifici per il contesto forniti in aggiunta alla guida di accountId
L'account defender di reCAPTCHA comprende meglio l'attività utente e rileva l'account
tentativi di violazione per proteggere gli account utente. Quando fornisci identificatori aggiuntivi,
reCAPTCHA utilizza queste informazioni per migliorare la protezione dei tuoi account utente in base ai seguenti dati:
cross-site mediante la segnalazione di identificatori di account illeciti e l'utilizzo della conoscenza di comportamenti illeciti tra siti
pattern correlati a questi identificatori. Ad esempio, puoi fornire quanto segue:
Il nome utente, l'indirizzo email o il numero di telefono utilizzato come handle di accesso per l'accesso. richieste
L'indirizzo email o il numero di telefono verificato per una richiesta di autenticazione a più fattori
Un indirizzo email o un numero di telefono (principale o secondario) fornito dall'utente durante una richiesta di aggiornamento dell'account
Gli indirizzi email e i numeri di telefono forniti dall'utente durante una registrazione richiesta
Aggiungi l'identificatore dell'account stabile scelto al parametro accountId
nel metodo
projects.assessments.create
per tutte le richieste relative all'account. Se vuoi,
fornisci identificatori account aggiuntivi per le richieste pertinenti utilizzando il campo userIds
nella valutazione.
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- PROJECT_ID: l'ID del tuo progetto Google Cloud
- TOKEN: token restituito dalla chiamata
grecaptcha.enterprise.execute()
- KEY_ID: chiave reCAPTCHA associata al sito
- ACCOUNT_ID: l'identificatore associato in modo univoco all'account utente per un account utente al sito web
- EMAIL_ADDRESS: facoltativo. Un indirizzo email associato a questa richiesta, se qualsiasi
- PHONE_NUMBER: facoltativo. Un numero di telefono associato a questa richiesta, se presente
- USERNAME: facoltativo. Un nome utente associato a questa richiesta, se presente
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": [ { "email": "EMAIL_ADDRESS" }, { "phoneNumber": "PHONE_NUMBER" }, { "username": "USERNAME" } ] } } }
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:
{ "tokenProperties": { "valid": true, "hostname": "www.google.com", "action": "login", "createTime": "2019-03-28T12:24:17.894Z" }, "riskAnalysis": { "score": 0.6, }, "event": { "token": "TOKEN", "siteKey": "KEY", "userInfo": { "accountId": "ACCOUNT_ID" } }, "name": "projects/PROJECT_NUMBER/assessments/b6ac310000000000", "accountDefenderAssessment": { "labels": ["SUSPICIOUS_LOGIN_ACTIVITY"] } }
Esempio di codice
Java
Per eseguire l'autenticazione a reCAPTCHA, configura le credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Interpreta l'esito del rischio degli eventi utente critici
Quando crei una valutazione con account defender abilitato, account defender
restituisce accountDefenderAssessment
come parte della risposta della valutazione.
Il valore di accountDefenderAssessment
ti aiuta a valutare se l'attività utente è legittima o fraudolenta. Restituisce inoltre un ID valutazione da utilizzare per annotare gli eventi utente.
Di seguito è riportato un esempio di risposta JSON:
{ "tokenProperties": { "valid": true, "hostname": "www.google.com", "action": "login", "createTime": "2019-03-28T12:24:17.894Z" }, "riskAnalysis": { "score": 0.6, }, "event": { "token": "TOKEN", "siteKey": "KEY_ID", "expectedAction": "USER_ACTION" }, "name": "projects/PROJECT_ID/assessments/b6ac310000000000X", "accountDefenderAssessment": { labels: ["SUSPICIOUS_LOGIN_ACTIVITY"] } }
Il campo accountDefenderAssessment
può avere uno qualsiasi dei seguenti valori:
Valore | Descrizione |
---|---|
SUSPICIOUS_LOGIN_ACTIVITY |
Indica che la richiesta rappresenta un rischio elevato di stuffing delle credenziali o di compromissione dell'account. |
SUSPICIOUS_ACCOUNT_CREATION |
Indica che la richiesta rappresenta un rischio elevato di creazione di account illeciti. |
PROFILE_MATCH |
Indica che gli attributi dell'utente corrispondono agli attributi rilevati in precedenza per questo utente specifico. Questo valore indica che l'utente si trova su un dispositivo attendibile utilizzato in precedenza per per accedere al tuo sito web.
|
RELATED_ACCOUNTS_NUMBER_HIGH |
Indica che la richiesta ha un numero elevato di account correlati. Ciò non implica necessariamente che l'account sia dannoso, ma potrebbe richiedere ulteriori indagini. |
Aggiungi annotazioni agli eventi per ottimizzare il modello specifico del sito
Per fornire ulteriori informazioni a reCAPTCHA account defender e migliorare il modello di rilevamento specifico del tuo sito, devi annotare gli eventi che che hai valutato creando valutazioni.
Puoi annotare una valutazione inviando una richiesta al metodo projects.assessments.annotate
con l'ID valutazione. Includi le etichette nel corpo della richiesta
fornendo ulteriori informazioni su un evento descritto nella valutazione.
Per aggiungere annotazioni a una valutazione:
-
Determina le informazioni e le etichette da aggiungere nel corpo della richiesta JSON a seconda del caso d'uso.
La tabella seguente elenca le etichette e i valori che puoi utilizzare per annotare gli eventi:
Etichetta Descrizione Esempio di richiesta reasons
Obbligatorio. Un'etichetta a supporto e valutazioni. Fornisci i dettagli degli eventi in tempo reale nell'etichetta
reasons
entro pochi secondi o minuti dall'evento, in quanto influiscono sul rilevamento in tempo reale.Per l'elenco dei valori possibili, consulta valori reasons.
Esempio: per rilevare le acquisizioni di account, annota se la password inserita era corretta con i valori
CORRECT_PASSWORD
oINCORRECT_PASSWORD
. Se hai implementato la tua MFA, puoi aggiungere i seguenti valori:INITIATED_TWO_FACTOR
ePASSED_TWO_FACTOR
oFAILED_TWO_FACTOR
.{ "reasons": ["INCORRECT_PASSWORD"] }
annotation
Facoltativo. Un'etichetta per indicare 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
oFRAUDULENT
.Puoi inviare queste informazioni in qualsiasi momento o nell'ambito di un job batch. Tuttavia, ti consigliamo di inviare queste informazioni in pochi secondi o minuti al termine dell'evento perché influenzano il rilevamento in tempo reale.
{ "annotation": "LEGITIMATE" }
accountId
Facoltativo. Un'etichetta per associare un ID account a un evento.
Se hai creato una valutazione senza un ID account, utilizza questa etichetta per fornire l'account L'ID di un evento, ogni volta che è disponibile.
{ "accountId": "ACCOUNT_ID" }
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 chiamataprojects.assessments.create
. - ANNOTATION: facoltativo. Un'etichetta per indicare se la valutazione è legittima o fraudolenta.
- REASONS: facoltativo. Motivi a sostegno dell'annotazione. Per l'elenco dei valori possibili, consulta i valori dei motivi.
- ACCOUNT_ID: facoltativo. L'identificatore associato in modo univoco all'account utente sul tuo sito web.
Per ulteriori informazioni, consulta le Etichette per le annotazioni.
Metodo HTTP e URL:
POST https://recaptchaenterprise.googleapis.com/v1/ASSESSMENT_ID:annotate
Corpo JSON della richiesta:
{ "annotation": ANNOTATION, "reasons": REASONS, "accountId": ACCOUNT_ID }
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
. ed esegui questo comando:$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 ContentDovresti ricevere un codice di stato di operazione riuscita (2xx) e una risposta vuota.
- ASSESSMENT_ID: valore del campo
Esempio di codice
Java
Per eseguire l'autenticazione a reCAPTCHA, configura le credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Attivare l'account defender di reCAPTCHA
Dopo aver configurato le pagine web per l'account defender di reCAPTCHA, puoi abilitare il servizio di difesa dell'account reCAPTCHA.
Nella console Google Cloud, vai alla pagina reCAPTCHA.
Verifica che il nome del progetto venga visualizzato nel selettore di risorse nella parte superiore della pagina.
Se non vedi il nome del progetto, fai clic sul selettore di risorse e poi seleziona il progetto.
- Fai clic su Impostazioni.
Nel riquadro Difensore dell'account, fai clic su Configura.
Nella finestra di dialogo Configura account defender, fai clic su Attiva e fai clic su Salva.
Potrebbero essere necessarie alcune ore prima che il difensore dell'account reCAPTCHA la propagazione ai nostri sistemi. Una volta che l'abilitazione della funzionalità nei nostri sistemi, dovresti iniziare a ricevere risposte relative all'account, il difensore nell'ambito delle valutazioni.