Questo documento mostra come utilizzare l'account defender dell'account reCAPTCHA Enterprise per rilevare e impedire attività fraudolente relative all'account.
reCAPTCHA Enterprise ti aiuta a proteggere le azioni critiche, come l'accesso e il pagamento. Tuttavia, esistono diverse forme sottili di abuso dell'account che possono essere rilevate osservando il comportamento di un utente specifico sul sito per un determinato periodo di tempo. Il dispositivo di difesa degli account reCAPTCHA Enterprise contribuisce a identificare questi tipi di uso illecito creando un modello specifico per il tuo sito web al fine di rilevare una tendenza di comportamento sospetto o un cambiamento di attività. Usando il modello specifico per il sito, reCAPTCHA Enterprise defender consente di rilevare quanto segue:
- Attività sospette
- Account con comportamenti simili
- Richieste provenienti da dispositivi contrassegnati come attendibili per utenti specifici
Sulla base dell'analisi dell'account defender di reCAPTCHA Enterprise e del modello specifico per il sito, puoi eseguire le seguenti azioni:
- Limitare o disattivare gli account fraudolenti.
- Impedisci i tentativi di violazione degli account.
- Mitigare i tentativi di violazione dell'account riusciti.
- Concedere l'accesso solo alle richieste provenienti da account utente legittimi.
- Riduci le difficoltà per gli utenti che accedono da uno dei loro dispositivi attendibili.
Prima di iniziare
- Scegli il metodo migliore per configurare reCAPTCHA Enterprise nel tuo ambiente e completa la configurazione.
- Crea una chiave del sito basata sul punteggio.
Configura le tue pagine web per l'account defender di reCAPTCHA Enterprise
Account defender reCAPTCHA Enterprise richiede una comprensione completa delle attività dell'account per consentire un rilevamento efficace. Per iniziare a fornire attività relative agli account al framework di difesa degli account reCAPTCHA Enterprise e per creare e migliorare il tuo modello specifico per il sito, segui questi passaggi:
- Abilita la raccolta dei dati di telemetria orizzontale.
- Generare report sulle azioni critiche degli utenti.
- Valuta gli eventi utente critici.
- Annota gli eventi utente per ottimizzare il modello specifico per il sito.
Attiva la raccolta dei dati di telemetria orizzontale
L'account defender reCAPTCHA Enterprise richiede una visione completa delle azioni dell'utente, ad esempio se l'utente ha eseguito l'accesso o se sta eseguendo l'accesso. Per attivare la raccolta passiva di dati di telemetria orizzontale da parte dell'account defender reCAPTCHA Enterprise, carica lo script JavaScript di reCAPTCHA Enterprise con la chiave del sito basata sul punteggio che hai creato in background di tutte le pagine web che fanno parte del flusso di lavoro degli utenti.
L'esempio seguente mostra come caricare lo script JavaScript di reCAPTCHA Enterprise in una pagina web.
<head> <script src="https://www.google.com/recaptcha/enterprise.js?render=site_key"></script> .... </head>
Report sulle azioni fondamentali degli utenti
Per rilevare pattern di attività sospetti e comprendere meglio i pattern di attività tipici sul tuo sito, il difensore dell'account reCAPTCHA Enterprise ha bisogno di informazioni sulle azioni critiche degli utenti. Pertanto, segnala le azioni critiche degli utenti nelle pagine web richiamando grecaptcha.enterprise.execute()
su tali azioni.
Ti consigliamo di segnalare tutte le azioni critiche degli utenti perché contribuiscono a una raccolta di indicatori aggiuntiva. Per ogni azione dell'utente che vuoi segnalare, sostituisci il valore del parametro action
di grecaptcha.enterprise.execute()
con un nome di azione che descrive l'azione dell'utente.
La seguente tabella elenca i nomi delle azioni che puoi utilizzare durante la segnalazione delle azioni utente critiche.
Nome azione | Evento o azione dell'utente avviati dall'utente |
---|---|
LOGIN |
Accedi al sito web. |
REGISTRATION |
Registrazione sul sito web. |
SECURITY_QUESTION_CHANGE |
Richiedi di modificare la domanda di sicurezza. |
PASSWORD_RESET |
Richiedi di reimpostare la password. |
PHONE_NUMBER_UPDATE |
Richiedi di aggiornare il numero di telefono. |
EMAIL_UPDATE |
Richiedi di aggiornare l'indirizzo email. |
ACCOUNT_UPDATE |
Richiedi di aggiornare le informazioni relative all'account, ad esempio i dati di contatto. |
TRIGGER_MFA |
Azione che attiva una verifica MFA. |
REDEEM_CODE |
Richiedi di utilizzare codice. |
LIST_PAYMENT_METHODS |
Recupera l'elenco dei metodi di pagamento. |
L'esempio seguente mostra come chiamare grecaptcha.enterprise.execute()
con un aggiornamento del numero di telefono:
<script> function onClick(e) { e.preventDefault(); grecaptcha.enterprise.ready(async () => { const token = await grecaptcha.enterprise.execute('site_key', {action: 'PHONE_NUMBER_UPDATE'}); }); } </script>
Valutare gli eventi utente critici
Quando chiami grecaptcha.enterprise.execute()
su un'azione dell'utente, viene generato un token. Per gli eventi utente critici, ad esempio accessi riusciti e non riusciti, registrazioni e azioni degli utenti che hanno eseguito l'accesso, crea una valutazione con un identificatore dell'account per valutare i risultati della chiamata grecaptcha.enterprise.execute()
. Fornire un identificatore account (identificatore di account opaco) per ogni evento utente che ha origine o scelto come target un account consente alle richieste di attributi Account defender di reCAPTCHA Enterprise di creare account per proteggere meglio la tua piattaforma e i tuoi utenti da comportamenti illeciti.
La valutazione fornisce un esito del rischio basato su cui puoi prendere una decisione su come gestire le potenziali attività fraudolente. Alcune delle azioni che puoi intraprendere sono il blocco di richieste sospette, la verifica di accessi rischiosi, la verifica degli account di interesse e la rimozione delle difficoltà per gli utenti legittimi.
Per creare una valutazione utilizzando un identificatore dell'account opaco:
Per generare un identificatore dell'account opaco
hashedAccountId
associato in modo univoco all'account utente a cui è correlata la richiesta in entrata:Scegli un identificatore dell'account stabile che non può essere modificato dall'utente, di solito un ID utente, un nome utente o un indirizzo email.
Convertilo in un identificatore opaco utilizzando la crittografia (consigliata) o l'hashing:
- Crittografia (consigliata): cripta l'identificatore dell'account utilizzando un metodo di crittografia deterministico 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 gli identificatori utente opachi corrispondenti. Decripta gli identificatori opachi che potrebbero essere restituiti per trasformarli in identificatori utente.
- hashing: ti consigliamo di eseguire l'hashing dell'account account utilizzando il metodo SHA256-HMAC con un salt personalizzato a tua scelta. Poiché gli hash sono solo unidirezionali, devi mantenere una mappatura tra gli hash generati e gli identificatori utente in modo da poter mappare l'identificatore dell'account sottoposto ad hashing che potrebbe essere restituito agli account originali.
Aggiungi l'identificatore dell'account opaco al parametro
hashedAccountId
nel metodoprojects.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: chiave reCAPTCHA associata al sito/all'app.
- HASHED_ACCOUNT_ID: un identificatore utente con hash stabile generato utilizzando il metodo SHA256-HMAC per un account utente nel tuo sito web
Metodo e URL HTTP:
POST https://recaptchaenterprise.googleapis.com/v1/projects/PROJECT_ID/assessments
Corpo JSON richiesta:
{ "event": { "token": "TOKEN", "siteKey": "KEY", "hashedAccountId": "HASHED_ACCOUNT_ID" } }
Per inviare la richiesta, scegli una delle seguenti opzioni:
ricci
Salva il corpo della richiesta in un file denominato
request.json
ed esegui il seguente comando: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
ed esegui il seguente 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/projects/PROJECT_ID/assessments" | Select-Object -Expand ContentDovresti 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", "expectedAction": "USER_ACTION" }, "name": "projects/PROJECT_NUMBER/assessments/b6ac310000000000", "accountDefenderAssessment": { labels: ["SUSPICIOUS_LOGIN_ACTIVITY"] } }
Esempio di codice
Java
Per eseguire l'autenticazione in reCAPTCHA Enterprise, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Interpretare l'esito del rischio degli eventi utente critici
Quando crei una valutazione con l'account defender attivato, account defender restituisce accountDefenderAssessment
come parte della risposta del test.
Il valore accountDefenderAssessment
consente di valutare se l'attività utente è legittima o fraudolenta. Restituisce anche un ID valutazione che devi utilizzare quando annotazione degli eventi utente.
L'esempio seguente è una risposta JSON di esempio:
{ "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", "expectedAction": "USER_ACTION" }, "name": "projects/PROJECT_ID/assessments/b6ac310000000000X", "accountDefenderAssessment": { labels: ["SUSPICIOUS_LOGIN_ACTIVITY"] } }
Il campo accountDefenderAssessment
può contenere uno qualsiasi dei seguenti valori:
Valore | Descrizione |
---|---|
SUSPICIOUS_LOGIN_ACTIVITY |
Indica che la richiesta rappresenta un rischio elevato di credential stuffing o violazione di account. |
SUSPICIOUS_ACCOUNT_CREATION |
Indica che la richiesta rappresenta un rischio elevato di creare un account illecito. |
PROFILE_MATCH |
Indica che gli attributi dell'utente corrispondono agli attributi che sono stati visualizzati in precedenza per questo utente specifico. Questo valore indica che l'utente utilizza un dispositivo attendibile utilizzato in precedenza per accedere al tuo sito web.
|
RELATED_ACCOUNTS_NUMBER_HIGH |
Indica che la richiesta ha un numero elevato di account correlati. Ciò non significa necessariamente che l'account sia difettoso, ma potrebbe richiedere ulteriori indagini. |
Annota gli eventi per perfezionare il modello specifico per il sito
Per fornire ulteriori informazioni a defender degli account reCAPTCHA Enterprise e per migliorare il modello di rilevamento specifico del sito, devi annotare gli eventi valutati creando valutazioni.
Per annotare una valutazione, invia una richiesta al metodo
projects.assessments.annotate
con l'ID valutazione. Nel corpo di questa richiesta, includi le etichette che forniscono informazioni aggiuntive su un evento descritto nel test.
Per annotare una valutazione:
Determina le informazioni e le etichette da aggiungere al corpo JSON della richiesta in base al caso d'uso.
Nella tabella seguente sono elencate le etichette e i valori che puoi utilizzare per annotare gli eventi:
Etichetta Descrizione Esempio di richiesta reasons
Obbligatorio. Un'etichetta per supportare le valutazioni. Fornisci i dettagli dell'evento in tempo reale nell'etichetta
reasons
pochi secondi o minuti dopo l'evento, perché questo influisce sul rilevamento in tempo reale.Per l'elenco dei valori possibili, consulta Valori dei motivi.
Esempio: per rilevare i takeover dell'account, annota se la password inserita è corretta con valori di
CORRECT_PASSWORD
oINCORRECT_PASSWORD
. Se hai eseguito il deployment della 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 la legittimità delle valutazioni. Fornisci informazioni sugli eventi di accesso e di registrazione per convalidare o correggere le valutazioni dei rischi nell'etichetta
annotation
.Valori possibili:
LEGITIMATE
oFRAUDULENT
.Puoi inviare queste informazioni in qualsiasi momento o come parte di un job batch. Tuttavia, ti consigliamo di inviare queste informazioni pochi secondi o minuti dopo l'evento, perché influiscono sul rilevamento in tempo reale.
{ "annotation": "LEGITIMATE" }
hashedAccountId
Facoltativo. Un'etichetta per associare un [ID account opaco](##provide-account-id) a un evento.
Se hai creato una valutazione senza un ID account opaco, utilizza questa etichetta per fornire l'ID account opaco di un evento ogni volta che è disponibile.
{ "hashedAccountId": "HASHED_ACCOUNT_ID" }
Crea una richiesta di annotazione con le etichette appropriate.
Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:
- ASSESSMENT_ID: valore del campo
name
restituito dalla chiamataprojects.assessments.create
. - ANNOTATION: facoltativo. Un'etichetta per indicare se il test è legittimo o fraudolento.
- REASONS: facoltativo. I motivi che supportano l'annotazione. Per l'elenco dei possibili valori, vedi Valori dei motivi.
- HASHED_ACCOUNT_ID: facoltativo. Un identificatore utente con hash stabile generato utilizzando il metodo SHA256-HMAC per un account utente sul tuo sito web
Per maggiori informazioni, consulta la pagina relativa alle etichette per le annotazioni.
Metodo e URL HTTP:
POST https://recaptchaenterprise.googleapis.com/v1/ASSESSMENT_ID:annotate
Corpo JSON richiesta:
{ "annotation": ANNOTATION, "reasons": REASONS, "hashedAccountId": HASHED_ACCOUNT_ID }
Per inviare la richiesta, scegli una delle seguenti opzioni:
ricci
Salva il corpo della richiesta in un file denominato
request.json
ed esegui il seguente comando: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 il seguente 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 (2xx) completato e una risposta vuota.
- ASSESSMENT_ID: valore del campo
Esempio di codice
Java
Per eseguire l'autenticazione in reCAPTCHA Enterprise, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Attiva la protezione degli account reCAPTCHA Enterprise
Dopo aver configurato le pagine web per il servizio di difesa degli account reCAPTCHA Enterprise, puoi abilitarlo.
Nella console Google Cloud, vai alla pagina reCAPTCHA Enterprise.
Verifica che il nome del tuo progetto venga visualizzato nel selettore di risorse nella parte superiore della pagina.
Se non vedi il nome del tuo progetto, fai clic sul selettore di risorse, quindi seleziona il tuo progetto.
Fai clic su
Impostazioni.Nel riquadro Account defender, fai clic su Enable (Attiva).
Nella finestra di dialogo Configura account defender, fai clic su Attiva.
La propagazione dell'abilitazione del difensore degli account reCAPTCHA Enterprise ai nostri sistemi potrebbe richiedere alcune ore. Una volta che l'attivazione delle funzionalità è stata propagata ai nostri sistemi, dovresti iniziare a ricevere risposte relative ai difensori dell'account nell'ambito delle valutazioni.