Google Cloud Fraud Defense vous permet de détecter et d'empêcher les prises de contrôle de compte sur vos sites Web et vos applications mobiles. Pour protéger les comptes contre le bourrage d'identifiants et les piratages automatisés, vous pouvez combiner l'analyse comportementale au niveau du compte dans Account Defense avec les vérifications des identifiants compromis dans Password Defense et l'authentification multifacteur (MFA) renforcée.
Les attaques par piratage de compte, telles que le bourrage d'identifiants, se produisent généralement lorsqu'un pirate informatique envoie des requêtes de connexion à l'aide d'identifiants exposés lors de violations de données et de vidages de mots de passe. Comme les utilisateurs réutilisent fréquemment leurs mots de passe sur des sites sans rapport, les attaques par bourrage automatisées peuvent réussir, même sur des points de terminaison d'authentification correctement configurés, à moins que vous n'évaluiez le risque comportemental et les identifiants divulgués.
Avant de commencer
Préparer votre environnement pour Google Cloud Fraud Defense
Détecter et prévenir les prises de contrôle de compte
Avec Fraud Defense, vous pouvez détecter et empêcher les piratages de compte à l'aide des fonctionnalités suivantes :
- Account Defense et score de risque ATO
- Password defense pour la détection des fuites de mots de passe
- Clés basées sur un score et MFA renforcée
Utiliser Account Defense et le score de risque ATO
Account Defense est la principale fonctionnalité permettant de détecter et de prévenir les piratages de compte sur les sites Web et les applications mobiles.
Account Defense fournit un score de risque de piratage de compte dédié (accountDefenderAssessment.accountTakeoverVerdict.risk, compris entre 0.0 et 1.0) et des signaux d'explicabilité (riskReasons et trustReasons). Ces signaux évaluent l'historique comportemental au niveau du compte ainsi que les signaux de session, ce qui permet de détecter les piratages de compte avec une précision environ quatre fois supérieure à celle des scores de bot seuls.
Pour intégrer Account defense, transmettez un identifiant de compte stable dans le champ user_info.account_id (event.userInfo.accountId) lorsque vous appelez CreateAssessment.
Si l'identifiant de compte n'est disponible qu'après l'authentification, transmettez account_id lorsque vous appelez AnnotateAssessment.
Détecter les mots de passe volés
Étant donné que les ATO reposent fréquemment sur le bourrage d'identifiants avec des identifiants exposés dans des vidages de mots de passe, utilisez Password defense sur les flux de connexion, de modification de mot de passe et de réinitialisation du mot de passe pour détecter les identifiants compromis.
Lorsque vous vérifiez des identifiants lors d'une évaluation, Password defense évalue le nom d'utilisateur canonisé et le préfixe de hachage du mot de passe par rapport aux violations de données connues, sans exposer les identifiants en texte brut à Google. Lorsque vous appelez CreateAssessment, transmettez le préfixe de hachage (lookupHashPrefix) du nom d'utilisateur (credentials.username) et le hachage des identifiants chiffrés (encryptedUserCredentialsHash) dans privatePasswordLeakVerification. Si le verdict (leakedPasswordVerdict) indique que les identifiants ont été compromis, exigez une réinitialisation du mot de passe ou déclenchez un test MFA renforcé.
Utiliser des clés basées sur un score et l'authentification MFA renforcée
Lorsque le score de risque d'ATO (accountDefenderAssessment.accountTakeoverVerdict.risk) ou le score de bot (riskAnalysis.score) indique un risque élevé, utilisez des clés basées sur le score pour déclencher l'authentification renforcée ou l'authentification multifacteur (MFA) dans votre application en tant que mécanisme d'application. Par exemple, demandez à l'utilisateur un facteur supplémentaire, exigez une nouvelle authentification ou déclenchez la validation par mot de passe à usage unique (OTP).
Pour implémenter les clés basées sur un score et l'authentification MFA renforcée, procédez comme suit :
Installez des clés basées sur un score pour collecter des signaux de session et détecter l'automatisation dans les ATO à grande échelle :
Web : appelez
grecaptcha.enterprise.execute()sur vos pages Web. Pour en savoir plus, consultez Installer des clés basées sur un score sur des sites Web.Mobile : appelez
execute()dans les SDK mobiles. Pour en savoir plus, consultez Intégrer Fraud Defense aux applications Android ou Intégrer Fraud Defense aux applications iOS.
Lorsque
accountTakeoverVerdict.riskdépasse votre seuil de risque ou queriskAnalysis.scoreest inférieur à votre seuil de bot, déclenchez une authentification renforcée ou un test MFA dans votre fournisseur d'identité pour vérifier la propriété du compte lors de la connexion ou pour les actions sensibles. Le déclenchement sélectif de défis supplémentaires sur les requêtes à risque élevé réduit les frictions pour les utilisateurs légitimes.
L'exemple suivant montre comment intégrer des clés basées sur un score dans un workflow de connexion :
function submitForm() {
grecaptcha.enterprise.ready(function() {
grecaptcha.enterprise.execute(
'reCAPTCHA_site_key', {action: 'account_login'}).then(function(token) {
document.getElementById("token").value = token;
document.getElementByID("loginForm").submit();
});
});
}<form id="loginForm" action="?" method="POST"> Username: <input type="text" name="username"/><br/> Password: <input type="password" name="password"/><br/> <input type="hidden" id="token" name="recaptcha_token"/> <button onclick="submitForm()">Login</button> </form>
<script src="https://www.google.com/recaptcha/enterprise.js" async defer></script>
Vous pouvez tester ce code dans JSFiddle en cliquant sur l'icône <> dans l'angle supérieur droit de la fenêtre de code.
<html>
<head>
<title>Account Login - Score</title>
<script src="https://www.google.com/recaptcha/enterprise.js"></script>
<script>
function submitForm() {
grecaptcha.enterprise.ready(function() {
grecaptcha.enterprise.execute(
'reCAPTCHA_site_key', {action: 'account_login'}).then(function(token) {
document.getElementById("token").value = token;
document.getElementByID("loginForm").submit();
});
});
}
</script>
</head>
<body>
<form id="loginForm" action="?" method="POST">
Username: <input type="text" name="username"/><br/>
Password: <input type="password" name="password"/><br/>
<input type="hidden" id="token" name="recaptcha_token"/>
<button onclick="submitForm()">Login</button>
</form>
</body>
</html>Étapes suivantes
- Pour en savoir plus sur les autres fonctionnalités de protection des comptes, consultez Fonctionnalités de protection des comptes utilisateur.