En este documento, se muestra cómo usar el defensor de la cuenta de reCAPTCHA Enterprise para detectar y evitar actividades fraudulentas relacionadas con la cuenta.
reCAPTCHA Enterprise te ayuda a proteger acciones críticas, como el acceso y la confirmación de la compra. Sin embargo, existen muchas formas sutiles de abuso en las cuentas que se pueden detectar si se observa el comportamiento de un usuario específico en el sitio durante un período. El defensor de cuentas de reCAPTCHA Enterprise permite identificar estos tipos de abusos sutiles mediante la creación de un modelo específico del sitio para que tu sitio web detecte una tendencia de comportamiento sospechoso o un cambio de actividad. Si usas el modelo específico del sitio, el defensor de la cuenta de reCAPTCHA Enterprise te ayudará a detectar lo siguiente:
- Actividades sospechosas
- Cuentas con comportamientos similares
- Solicitudes provenientes de dispositivos marcados como de confianza para usuarios específicos
Según el análisis del defensor de la cuenta de reCAPTCHA Enterprise y el modelo específico del sitio, puedes hacer lo siguiente:
- Restringe o inhabilita cuentas fraudulentas.
- Evite los intentos de apropiación de cuentas.
- Mitigue las apropiaciones de cuentas exitosas.
- Otorgue acceso solo a las solicitudes provenientes de cuentas de usuario legítimas.
- Reduce la fricción para los usuarios que acceden desde uno de sus dispositivos de confianza.
Antes de comenzar
Elige el mejor método para configurar reCAPTCHA Enterprise en tu entorno y completa la configuración.
Habilitar el defensor de la cuenta de reCAPTCHA Enterprise
En Google Cloud Console, ve a la página reCAPTCHA Enterprise.
Verifica que el nombre de tu proyecto aparezca en el selector de recursos en la parte superior de la página.
Si no ves el nombre de tu proyecto, haz clic en el selector de recursos y, luego, selecciona tu proyecto.
Haz clic en
Configuración.En el panel Defensor de la cuenta, haz clic en Habilitar.
En el diálogo Configure account defender, haz clic en Enable.
Es posible que la habilitación del defensor de cuentas de reCAPTCHA Enterprise tarde unas horas en propagarse a nuestros sistemas. Después de que la habilitación de funciones se propague a nuestros sistemas, debes comenzar a recibir respuestas relacionadas con el defensor de la cuenta como parte de las evaluaciones.
Comprende el flujo de trabajo
Para usar el defensor de la cuenta de reCAPTCHA Enterprise, sigue estos pasos:
- Instala claves de sitios basadas en puntuaciones en los clientes (páginas web o aplicaciones para dispositivos móviles).
- Crea evaluaciones con
hashedAccountId
. - Interpreta los detalles de la evaluación.
- Anota las evaluaciones con metadatos relacionados con la cuenta.
Después de completar estos pasos, tiene la opción de identificar las cuentas con comportamientos similares.
Instala claves de sitios basadas en puntuaciones en los clientes
Para usar el defensor de la cuenta de reCAPTCHA Enterprise, instala claves de sitio basadas en la puntuación en las páginas de acceso y de registro. Para ello, sigue las instrucciones específicas de la plataforma:
Para obtener resultados precisos, te recomendamos que instales claves de sitios basadas en la puntuación en las páginas que aparecen antes y después de acciones importantes, como las de acceso y confirmación de compras. Por ejemplo, considera un flujo de trabajo de cliente que incluye visitar la página principal, la página de acceso y la página de bienvenida en un sitio web. En este flujo de trabajo, debes proteger la página de acceso mediante la instalación de una clave de sitio basada en puntuaciones. Te recomendamos que instales claves de sitio basadas en puntuaciones en la página principal y en la de bienvenida para obtener resultados precisos.
Cuando instalas claves de sitios basadas en puntuaciones con acciones únicas en varias páginas de tu sitio web o aplicación para dispositivos móviles, el defensor de cuentas de reCAPTCHA Enterprise crea un modelo personalizado específico del sitio basado en los comportamientos de las cuentas legítimas y fraudulentas. Para aprender a instalar claves de sitio basadas en puntuaciones con acciones únicas, consulta cómo instalar claves de sitios basadas en puntuaciones para acciones de usuarios.
Crear evaluaciones con hashedAccountId
Crea evaluaciones para las acciones críticas. Entre las acciones críticas, se incluyen los accesos exitosos y fallidos, los registros y las acciones adicionales de los usuarios que accedieron.
Para crear una evaluación con hashedAccountId
, haz lo siguiente:
Genera un identificador de usuario con hash estable único mediante el método SHA256-HMAC para una cuenta de usuario en tu sitio web. Puedes generar este identificador desde un ID de usuario, un nombre de usuario o una dirección de correo electrónico.
Agrega el identificador de usuario con hash al parámetro
hashedAccountId
en el métodoprojects.assessments.create
.hashedAccountId
permite que el defensor de la cuenta de reCAPTCHA Enterprise detecte cuentas fraudulentas y usurpadas.Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- PROJECT_ID: El ID del proyecto de Google Cloud.
- TOKEN: Token que se muestra a partir de la llamada
grecaptcha.enterprise.execute()
- KEY: Clave reCAPTCHA asociada con el sitio/aplicación
- HASHED_ACCOUNT_ID: un identificador de usuario con hash estable generado mediante el método SHA256-HMAC para una cuenta de usuario en tu sitio web
HTTP method and URL:
POST https://recaptchaenterprise.googleapis.com/v1/projects/PROJECT_ID/assessments
Cuerpo JSON de la solicitud:
{ "event": { "token": "TOKEN", "siteKey": "KEY", "hashedAccountId": "HASHED_ACCOUNT_ID" } }
Para enviar tu solicitud, elige una de estas opciones:
curl
Guarda el cuerpo de la solicitud en un archivo llamado
request.json
y ejecuta el siguiente comando:curl -X POST \
-H "Authorization: Bearer "$(gcloud auth application-default print-access-token) \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://recaptchaenterprise.googleapis.com/v1/projects/PROJECT_ID/assessments"PowerShell
Guarda el cuerpo de la solicitud en un archivo llamado
request.json
y ejecuta el siguiente comando:$cred = gcloud auth application-default 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 ContentDeberías recibir una respuesta JSON similar a la que se muestra a continuación:
{ "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/b6ac310000000000", "accountDefenderAssessment": { labels: ["SUSPICIOUS_LOGIN_ACTIVITY"] } }
Muestra de código
Java
Interprete los detalles de la evaluación
Después de crear una evaluación, recibirás una respuesta como la del siguiente ejemplo de JSON. El defensor de la cuenta de reCAPTCHA Enterprise muestra accountDefenderAssessment
como parte de la respuesta de la evaluación. El valor de accountDefenderAssessment
te ayuda a evaluar si la actividad del usuario es legítima o fraudulenta.
{ "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/b6ac310000000000", "accountDefenderAssessment": { labels: ["SUSPICIOUS_LOGIN_ACTIVITY"] } }
El campo accountDefenderAssessment
puede tener cualquiera de los siguientes valores:
PROFILE_MATCH
: Indica que los atributos del usuario coinciden con los atributos que se vieron anteriormente para este usuario en particular. Este valor indica que este usuario está en un dispositivo de confianza que se usó antes para acceder a tu sitio web.PROFILE_MATCH
solo se muestra en las siguientes situaciones:Usas la autenticación de dos factores(MFA) o la autenticación de dos factores(2FA), y el defensor de cuentas de reCAPTCHA Enterprise marca los perfiles de usuario como de confianza después de que los usuarios pasan el desafío de MFA o 2FA.
Las anotaciones se pueden evaluar como
LEGITIMATE
, y el defensor de la cuenta reCAPTCHA Enterprise marca el perfil de usuario correspondiente como de confianza.
SUSPICIOUS_LOGIN_ACTIVITY
: Indica que la solicitud coincidió con un perfil que antes tenía una actividad de acceso sospechosa. Este valor podría indicar que hubo ataques de uso excesivo de credenciales similares a esta solicitud.SUSPICIOUS_ACCOUNT_CREATION
: Indica que la solicitud coincidió con un perfil que antes tenía un comportamiento de creación de cuenta sospechoso. Este valor podría indicar que esta cuenta es falsa o fraudulenta.
Anotar evaluaciones con metadatos relacionados con la cuenta
Anota tus evaluaciones para permitir que el defensor de la cuenta de reCAPTCHA Enterprise realice las siguientes acciones:
- Analiza todas las interacciones con un identificador específico y muestra puntuaciones precisas y códigos de motivo.
- Crea un modelo específico para los atacantes.
Cuando anotes una evaluación, confirma las anotaciones de verdaderos positivos y negativos verdaderos agregando etiquetas a los eventos conocidos. Lo mejor es anotar el evento que evalúa si la solicitud es legítima o fraudulenta y, luego, incluir el motivo de la evaluación. Sin embargo, también puedes aplicar anotaciones a cualquier evaluación anterior sin una razón.
Cuando anotas una evaluación, envías una solicitud al método projects.assessments.annotate
con el ID de evaluación. En el cuerpo de la solicitud, incluye etiquetas con información adicional sobre un evento que se describe en la evaluación.
Para anotar una evaluación, haz lo siguiente:
Determina las etiquetas que deseas agregar al cuerpo de JSON de la solicitud según tu caso de uso.
La siguiente tabla te ayudará a comprender las etiquetas que puedes usar para anotar las evaluaciones:
Etiqueta Descripción Caso práctico de muestra annotation
Una etiqueta que indica la legitimidad de las evaluaciones. Los valores posibles son
LEGITIMATE
oFRAUDULENT
.Úsala cuando quieras indicar la legitimidad de acciones críticas, como el acceso.
Para indicar que un evento de acceso fue legítimo, usa el siguiente cuerpo de solicitud JSON de JSON:
{ "annotation": "LEGITIMATE" }
reasons
Una etiqueta que respalda tus evaluaciones. Para obtener una lista de valores posibles, consulta valores de motivos.
Usa esta etiqueta para proporcionar motivos que admitan tus anotaciones de acciones críticas. Recomendamos usar
INCORRECT_PASSWORD
en las solicitudes que se realizan para cuentas que no existen.Para diferenciar un intento de acceso fallido, usa el siguiente cuerpo de solicitud JSON de JSON:
{ "reasons": ["INCORRECT_PASSWORD"] }
Para indicar que un usuario aprobó correctamente un desafío de dos factores, usa el siguiente cuerpo de solicitud JSON:
{ "annotation": "LEGITIMATE", "reasons": ["PASSED_TWO_FACTOR"] }
hashedAccountId
Una etiqueta para asociar un ID de cuenta con hash a un evento. Un ID de cuenta con hash es un identificador de usuario con hash estable que se genera mediante el método SHA256-HMAC para una cuenta de usuario en tu sitio web.
Si creaste una evaluación sin un ID de cuenta con hash, usa esta etiqueta para proporcionar el ID de cuenta con hash de un evento.
Para indicar que un evento está asociado con un ID de cuenta con hash determinado, usa el siguiente cuerpo de solicitud JSON:
{ "hashedAccountId": "HASHED_ACCOUNT_ID" }
Crea una solicitud de anotación con las etiquetas apropiadas.
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- ASSESSMENT_ID: El valor del campo
name
que se muestra en la llamadaprojects.assessments.create
. - ANNOTATION: Opcional. Una etiqueta que indica si la evaluación es legítima o fraudulenta.
- REASONS: Opcional. Motivos que admiten tu anotación. Para obtener una lista de valores posibles, consulta valores de motivos.
- HASHED_ACCOUNT_ID: Opcional. Identificador de usuario con hash estable que se genera con el método SHA256-HMAC para una cuenta de usuario en tu sitio web
Para obtener más información, consulta Etiquetas para anotaciones.
HTTP method and URL:
POST https://recaptchaenterprise.googleapis.com/v1/ASSESSMENT_ID:annotate
Cuerpo JSON de la solicitud:
{ "annotation": ANNOTATION, "reasons": REASONS, "hashedAccountId": HASHED_ACCOUNT_ID }
Para enviar tu solicitud, elige una de estas opciones:
curl
Guarda el cuerpo de la solicitud en un archivo llamado
request.json
y ejecuta el siguiente comando:curl -X POST \
-H "Authorization: Bearer "$(gcloud auth application-default print-access-token) \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://recaptchaenterprise.googleapis.com/v1/ASSESSMENT_ID:annotate"PowerShell
Guarda el cuerpo de la solicitud en un archivo llamado
request.json
y ejecuta el siguiente comando:$cred = gcloud auth application-default 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 ContentDeberías recibir un código de estado exitoso (2xx) y una respuesta vacía.
- ASSESSMENT_ID: El valor del campo
Muestra de código
Java