Ce document explique comment utiliser reCAPTCHA Account Defender pour détecter et empêcher les activités frauduleuses liées aux comptes dans les applications mobiles.
reCAPTCHA vous aide à protéger les actions critiques, telles que la connexion et le règlement. Cependant, de nombreuses formes subtiles d'abus de compte peuvent être détecté en observant le comportement d'un utilisateur spécifique sur une application mobile sur une période de en temps réel. Le service reCAPTCHA Account Defender permet d'identifier ces types d'abus subtils en créant un modèle spécifique au site pour votre application mobile afin de détecter d'un comportement suspect ou d'un changement d'activité. En utilisant la balise reCAPTCHA Account Defender vous aide à détecter les éléments suivants:
- Activités suspectes
- Comptes avec des comportements similaires
- Requêtes provenant d'appareils marqués comme approuvés pour des utilisateurs spécifiques
En fonction de l'analyse de l'outil Account Defender de reCAPTCHA et du modèle spécifique au site, vous pouvez effectuer les actions suivantes :
- Limitez ou désactivez les comptes frauduleux.
- éviter les tentatives de piratage de compte ;
- Limiter les piratages de compte réussis
- Accordez l'accès uniquement aux requêtes provenant de comptes utilisateur légitimes.
- Réduisez les frictions pour les utilisateurs qui se connectent à partir de l'un de leurs appareils approuvés.
Avant de commencer
- Pour bénéficier de Account Defender reCAPTCHA pour les applications mobiles, vous devez déclencher un examen de sécurité automatique en ajoutant un compte de facturation à votre projet. Ajouter un compte de facturation à votre projet pour intégrer cette fonctionnalité à votre site.
- Préparez votre environnement pour reCAPTCHA.
- Créez une clé basée sur des scores.
Configurer votre application mobile pour reCAPTCHA Account Defender
reCAPTCHA Account Defender requiert une compréhension approfondie les activités du compte afin d'assurer une détection efficace. Pour commencer à transmettre des activités liées au compte à l'outil Account Defender de reCAPTCHA, et pour créer et améliorer votre modèle spécifique à votre site, procédez comme suit :
Intégrez reCAPTCHA à votre application mobile.
- Pour les applications Android, consultez Intégrer reCAPTCHA aux applications Android.
- Pour les applications iOS, consultez Intégrer reCAPTCHA aux applications iOS.
- Créez des rapports sur les actions critiques des utilisateurs.
- Évaluez les événements utilisateur critiques.
- Annotez des événements utilisateur pour ajuster le modèle spécifique à votre site.
Créer des rapports sur les actions critiques des utilisateurs
Pour détecter les activités suspectes et mieux comprendre
tendances d'activité types sur votre site, compte reCAPTCHA
défenseur a besoin d'informations sur les actions critiques des utilisateurs.
Pour chaque action de votre application protégée par reCAPTCHA, appelez la méthode execute()
avec RecaptchaAction
. Pour en savoir plus sur execute()
et RecaptchaAction
, consultez les pages suivantes:
- Android:
execute()
etRecaptchaAction
- iOS:
execute()
etRecaptchaAction
reCAPTCHA fournit un ensemble d'actions intégrées. Si nécessaire, vous pouvez créer des actions personnalisées.
Le tableau suivant répertorie les noms d'action que vous pouvez utiliser pour signaler les actions utilisateur critiques.
Nom de l'action | Événement ou action déclenchés par l'utilisateur |
---|---|
LOGIN |
Connectez-vous à l'application mobile. |
SIGNUP |
Inscrivez-vous sur l'application mobile. |
Évaluer les événements utilisateur critiques
Lorsque vous appelez execute()
sur une action utilisateur, un jeton est généré. Pour les plus critiques
les événements utilisateur, tels que les connexions réussies et échouées, les inscriptions et les actions des utilisateurs connectés ;
utilisateurs, créez une évaluation pour évaluer les résultats de l'appel execute()
. L'évaluation vous fournit un avis sur le risque, que vous pouvez utiliser pour décider de la manière de gérer les activités potentiellement frauduleuses. Vous pouvez par exemple bloquer les requêtes suspectes, contester les connexions à risque et examiner les comptes qui vous intéressent.
reCAPTCHA Account Defender exige que vous fournissiez un identifiant de compte stable à attribuer l'activité des utilisateurs (demandes de connexion, de connexion et d'inscription, par exemple) à un un compte spécifique. Cela permet au défenseur de compte reCAPTCHA de comprendre les tendances d'activité des utilisateurs et de créer un modèle d'activité pour chaque compte afin de mieux détecter le trafic anormal et abusif.
Choisissez un identifiant de compte accountId
stable qui n'est pas souvent modifié par l'utilisateur et fournissez-le à l'évaluation dans la méthode projects.assessments.create
. Cet identifiant de compte stable doit être associé au
la même valeur pour tous les événements
liés au même utilisateur. Vous pouvez indiquer les éléments suivants comme compte
identifiant:
Identifiants utilisateur
Si chaque compte peut être associé de manière unique à un nom d'utilisateur, une adresse e-mail ou un numéro de téléphone stables
vous pouvez l'utiliser comme accountId
. Lorsque vous fournissez de tels identifiants intersites (identifiants pouvant être réutilisés sur plusieurs sites), reCAPTCHA utilise ces informations pour améliorer la protection de vos comptes utilisateur en fonction de modèles intersites en signalant les identifiants de compte abusifs et en utilisant les connaissances sur les modèles d'abus intersites associés à ces identifiants.
Si vous disposez d'un ID utilisateur interne associé de manière unique à chaque compte, vous pouvez
indiquez-le comme accountId
.
Hachées ou chiffrées
Si aucun ID utilisateur interne n'est associé de manière unique à chaque compte, vous pouvez activer tout identifiant stable en un identifiant de compte opaque, spécifique au site. Cet identifiant est encore nécessaire pour permettre à reCAPTCHA Account Defender de comprendre l'activité des utilisateurs et de détecter les comportements anormaux. En revanche, ces données ne sont pas partagées avec les autres sites.
Choisissez un identifiant de compte stable et rendez-le opaque avant de l'envoyer à reCAPTCHA à l'aide du chiffrement ou du hachage :
Chiffrement (recommandé) : chiffrez l'identifiant de compte à l'aide d'une méthode de chiffrement déterministe qui produit un texte chiffré stable. Pour obtenir des instructions détaillées, consultez la section Chiffrer les données de manière déterministe. Lorsque vous choisissez le chiffrement symétrique plutôt que le hachage, vous n'avez pas besoin de conserver une mise en correspondance entre vos identifiants utilisateur et les identifiants utilisateur opaques correspondants. Déchiffrez les identifiants opaques renvoyés par reCAPTCHA pour les transformer en identifiant utilisateur.
Hachage : nous vous recommandons de hacher l'identifiant du compte à l'aide de la méthode SHA256-HMAC avec un sel personnalisé de votre choix. Étant donné que les hachages ne sont à sens unique que, vous devez conserver un mappage entre les hachages générés et vos identifiants utilisateur afin de pouvoir mapper l'identifiant de compte haché renvoyé aux comptes d'origine.
En plus de fournir un identifiant de compte stable pour toutes les requêtes liées au compte, vous pouvez fournir des identifiants de compte supplémentaires, potentiellement non stables, pour certaines requêtes spécifiques.
Les identifiants de compte spécifiques au contexte fournis en plus de accountId
aident l'outil Account Defender de reCAPTCHA à mieux comprendre l'activité des utilisateurs et à détecter les tentatives de prise de contrôle de compte afin de protéger vos comptes utilisateur. Lorsque vous fournissez des identifiants supplémentaires,
reCAPTCHA utilise ces informations pour améliorer la protection de vos comptes utilisateur en fonction de
des modèles intersites en signalant les identifiants de compte abusifs et en exploitant les connaissances sur les abus intersites.
des schémas liés à ces identifiants. Par exemple, vous pouvez fournir les informations suivantes :
Nom d'utilisateur, adresse e-mail ou numéro de téléphone utilisés comme identifiant de connexion requêtes
L'adresse e-mail ou le numéro de téléphone validés pour une demande d'authentification multifacteur
Une adresse e-mail ou un numéro de téléphone (principal ou secondaire) fourni par l'utilisateur lors d'une demande de modification de compte
Adresses e-mail et numéros de téléphone fournis par l'utilisateur lors de l'inscription demander
Ajoutez l'identifiant de compte stable choisi au paramètre accountId
dans
projects.assessments.create
pour toutes les demandes liées au compte. Éventuellement,
fournir des identifiants de compte supplémentaires pour les demandes pertinentes à l'aide de l'userIds
.
lors de l'évaluation.
Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :
- PROJECT_ID : ID de votre projet Google Cloud
- TOKEN : jeton renvoyé par l'appel
execute()
- KEY_ID : clé reCAPTCHA associée à l'application
- ACCOUNT_ID: l'identifiant associé de manière unique au compte utilisateur pour un compte utilisateur à votre application
- EMAIL_ADDRESS : facultatif. L'adresse e-mail associée à cette demande, si tout
- PHONE_NUMBER : facultatif. Un numéro de téléphone associé à cette demande, si tout
- USERNAME : facultatif. Un nom d'utilisateur associé à cette demande, le cas échéant
Méthode HTTP et URL :
POST https://recaptchaenterprise.googleapis.com/v1/projects/PROJECT_ID/assessments
Corps JSON de la requête :
{ "event": { "token": "TOKEN", "siteKey": "KEY_ID", "userInfo": { "accountId": "ACCOUNT_ID", "userIds": [ { "email": "EMAIL_ADDRESS" }, { "phoneNumber": "PHONE_NUMBER" }, { "username": "USERNAME" } ] } } }
Pour envoyer votre requête, choisissez l'une des options suivantes :
curl
Enregistrez le corps de la requête dans un fichier nommé request.json
, puis exécutez la commande suivante :
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
Enregistrez le corps de la requête dans un fichier nommé request.json
, puis exécutez la commande suivante :
$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
Vous devriez recevoir une réponse JSON de ce type :
{ "tokenProperties": { "valid": true, "androidPackageName": "com.example.app" or "iosBundleId": "com.example.app", "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"] } }
Exemple de code
Java
Pour vous authentifier auprès de reCAPTCHA, configurez les identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Interpréter le résultat du risque des événements utilisateur critiques
Lorsque vous créez une évaluation avec le Défenseur de compte activé, il renvoie accountDefenderAssessment
dans la réponse de l'évaluation.
La valeur de accountDefenderAssessment
aide
vous déterminez si l’activité de l’utilisateur
est légitime ou frauduleuse. Elle renvoie également
un ID d'évaluation que vous devez utiliser pour annoter des événements utilisateur.
Voici un exemple de réponse JSON :
{ "tokenProperties": { "valid": true, "androidPackageName": "com.example.app" or "iosBundleId": "com.example.app", "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"] } }
Le champ accountDefenderAssessment
peut avoir l'une des valeurs suivantes:
Valeur | Description |
---|---|
SUSPICIOUS_LOGIN_ACTIVITY |
Indique que la requête représente un risque élevé du credential stuffing ou du piratage de compte. |
SUSPICIOUS_ACCOUNT_CREATION |
Indique que la demande présente un risque élevé de création de compte abusif. |
PROFILE_MATCH |
Indique que les attributs de l'utilisateur correspondent aux attributs précédemment détectés pour cet utilisateur. Cette valeur indique que cet utilisateur se trouve sur un appareil approuvé qui a déjà été utilisé pour accéder à votre application mobile.
|
Annoter des événements pour ajuster votre modèle spécifique au site
Pour fournir plus d'informations à l'outil Account Defender de reCAPTCHA et améliorer votre modèle de détection spécifique à votre site, vous devez annoter les événements que vous avez évalués en créant des évaluations.
Pour annoter une évaluation, envoyez une requête à la méthode projects.assessments.annotate
avec l'ID de l'évaluation. Dans le corps de cette requête, vous incluez des étiquettes
en fournissant des informations supplémentaires sur un événement décrit dans l'évaluation.
Pour annoter une évaluation, procédez comme suit :
-
Déterminer les informations et les étiquettes à ajouter dans le corps JSON de la requête selon votre cas d'utilisation.
Le tableau suivant répertorie les étiquettes et les valeurs que vous pouvez utiliser pour annoter événements:
Libellé Description Exemple de requête reasons
Obligatoire. Un libellé pour étayer vos évaluations. Fournissez les détails des événements en temps réel dans la Libellé
reasons
quelques secondes ou minutes après l'événement car elles influencent la détection en temps réel.Pour la liste des valeurs possibles, voir reasons values.
Exemple: Pour détecter les piratages de compte, annotez si les valeurs saisies le mot de passe était correct avec
CORRECT_PASSWORD
ou ValeursINCORRECT_PASSWORD
. Si vous avez déployé votre propre MFA, vous pouvez ajouter les valeurs suivantes :INITIATED_TWO_FACTOR
,PASSED_TWO_FACTOR
ouFAILED_TWO_FACTOR
.{ "reasons": ["INCORRECT_PASSWORD"] }
annotation
Facultatif. Une étiquette indiquant la légitimité des évaluations. Fournissez des informations sur la connexion et d'inscription pour valider ou corriger vos évaluations des risques Libellé
annotation
.Valeurs possibles :
LEGITIMATE
ouFRAUDULENT
.Vous pouvez envoyer ces informations à tout moment ou dans le cadre d'une tâche par lot. Toutefois, nous vous recommandons d'envoyer ces informations quelques secondes ou minutes après l'événement, car elles ont une incidence sur la détection en temps réel.
{ "annotation": "LEGITIMATE" }
accountId
Facultatif. Libellé permettant d'associer un ID de compte à un événement.
Si vous avez créé une évaluation sans ID de compte, utilisez ce libellé pour indiquer le compte ID d'un événement, chaque fois qu'il est disponible.
{ "accountId": "ACCOUNT_ID" }
Créez une requête d'annotation avec les libellés appropriés.
Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :
- ASSESSMENT_ID: valeur du champ
name
renvoyé par l'appelprojects.assessments.create
. - ANNOTATION : facultatif. Libellé indiquant si l'évaluation est légitime ou frauduleuse
- REASONS : facultatif. Raisons pour lesquelles votre annotation est justifiée. Pour obtenir la liste des valeurs possibles, consultez la section Valeurs de reasons.
- ACCOUNT_ID : facultatif. Identifiant associé de manière unique au compte utilisateur de votre application.
Pour en savoir plus, consultez des libellés pour les annotations.
Méthode HTTP et URL :
POST https://recaptchaenterprise.googleapis.com/v1/ASSESSMENT_ID:annotate
Corps JSON de la requête :
{ "annotation": ANNOTATION, "reasons": REASONS, "accountId": ACCOUNT_ID }
Pour envoyer votre requête, choisissez l'une des options suivantes :
curl
Enregistrez le corps de la requête dans un fichier nommé
request.json
, puis exécutez la commande suivante :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
Enregistrez le corps de la requête dans un fichier nommé
request.json
, puis exécutez la commande suivante :$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 ContentVous devriez recevoir un code d'état indiquant le succès de l'opération (2xx), ainsi qu'une réponse vide.
- ASSESSMENT_ID: valeur du champ
Exemple de code
Java
Pour vous authentifier auprès de reCAPTCHA, configurez les identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Activer Account Defender pour reCAPTCHA
Après avoir configuré votre application mobile pour l'outil Account Defender de reCAPTCHA, vous pouvez l'activer.
Dans la console Google Cloud, accédez à la page reCAPTCHA.
Vérifiez que le nom de votre projet apparaît dans le sélecteur de ressources en haut de la page.
Si le nom de votre projet n'apparaît pas, cliquez sur le sélecteur de ressource, puis sélectionnez votre projet.
- Cliquez sur Paramètres.
Dans le volet Account Defender, cliquez sur Configurer.
Dans la boîte de dialogue Configure account Defender, cliquez sur Activer, puis cliquez sur Enregistrer.
La propagation de l'activation de Account Defender reCAPTCHA dans nos systèmes peut prendre quelques heures. Une fois l'activation de la fonctionnalité propagée dans nos systèmes, vous devriez commencer à recevoir des réponses liées au Défenseur de compte dans le cadre des évaluations.
Étape suivante
- Pour en savoir plus sur d'autres fonctionnalités de protection des comptes, consultez Fonctionnalités de protection des comptes utilisateur.