Questa pagina descrive come rilevare e prevenire i takeover dell'account (ATO) utilizzando Google Cloud Fraud Defense.
Gli attacchi ATO si verificano in genere quando un malintenzionato invia richieste per accedere agli endpoint API utilizzando credenziali ottenute da una violazione dei dati, noto anche come dump di password. Questo tipo di attacco può avere successo, anche se il dump delle password proviene da un sito non correlato, perché le persone tendono a riutilizzare le password su più account. Questo tipo di attacco non influisce sugli utenti che praticano una corretta igiene delle password, ad esempio utilizzando un gestore delle password.
Prima di iniziare
Prepara il tuo ambiente per Google Cloud Fraud Defense.
Rilevare e prevenire i takeover degli account
Con Fraud Defense, puoi rilevare e prevenire gli ATO utilizzando una delle seguenti opzioni:
Utilizzare la casella di controllo Non sono un robot
L'aggiunta della casella di controllo Non sono un robot al tuo sito è il modo più rapido e semplice per fornire una protezione contro gli attacchi di acquisizione dell'account senza dover integrare funzionalità aggiuntive, come la verifica via SMS o verifica email. Per un malintenzionato, violare questa protezione ha un costo e questa opzione potrebbe essere sufficiente per alcuni siti.
Aggiungi la casella di controllo "Non sono un robot" alle tue pagine web.
Il seguente codice è un esempio reale di una pagina di accesso protetta dalla casella di controllo:
function onSuccess(token) {
// The token is included in the POST data in the g-recaptcha-response
// parameter. The backend must create an Assessment with the token
// and verify the token is valid.
console.log(token);
}<form id="loginForm" action="?" method="POST">
Username: <input type="text" name="username"/><br/>
Password: <input type="password" name="password"/><br/>
<div class="g-recaptcha" data-sitekey="reCATCHA_sitekey"
data-action="account_login" data-callback="onSuccess"></div>
</form><script src="https://www.google.com/recaptcha/enterprise.js" async defer></script>
Puoi sperimentare con questo codice in JSFiddle facendo clic sull'icona <> nell'angolo in alto a destra della finestra del codice.
<html>
<head>
<title>Account Login - Checkbox</title>
<script src="https://www.google.com/recaptcha/enterprise.js" async defer></script>
<script>
function onSuccess(token) {
// The token is included in the POST data in the g-recaptcha-response
// parameter. The backend must create an Assessment with the token
// and verify the token is valid.
console.log(token);
}
</script>
</head>
<body>
<form id="loginForm" action="?" method="POST">
Username: <input type="text" name="username"/><br/>
Password: <input type="password" name="password"/><br/>
<div class="g-recaptcha" data-sitekey="6LeAkOgUAAAAACcy3uY6N9H9SJMS27n3Zx2OOnYK"
data-action="account_login" data-callback="onSuccess"></div>
</form>
</body>
</html>Utilizzare i punteggi e le sfide personalizzate
Per proteggerti dagli ATO, utilizza le chiavi basate sul punteggio di Fraud Defense e le verifiche dell'autenticazione a più fattori (MFA), come le verifiche via email e SMS in cui vengono inviati codici monouso (OTP) all'utente.
Per utilizzare chiavi basate sul punteggio e sfide personalizzate, valuta le seguenti opzioni:
Installa chiavi basate sul punteggio per rilevare l'automazione negli attacchi ATO su larga scala.
Per installare chiavi basate sul punteggio sulle pagine web, consulta Installare chiavi basate sul punteggio sulle pagine web.
Per installare chiavi basate sul punteggio nelle applicazioni mobile, consulta Integrare Fraud Defense con le app per Android o Integrare Fraud Defense con le app per iOS.
Utilizza l'MFA per verificare la proprietà dell'account al momento dell'accesso o per le azioni sensibili.
Per saperne di più, consulta Configura l'autenticazione a più fattori.
A seconda del caso d'uso, puoi utilizzare l'MFA da sola o con chiavi basate sul punteggio. Ad esempio, potresti preferire l'utilizzo delle verifiche MFA solo per i punteggi inferiori a una determinata soglia per ridurre l'attrito.
L'esempio seguente mostra come integrare le chiavi basate su punteggio nello scenario di accesso.
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>
Puoi sperimentare con questo codice in JSFiddle facendo clic sull'icona <> nell'angolo in alto a destra della finestra del codice.
<html>
<head>
<title>Account Login - Score</title>
<script src="https://www.google.com/recaptcha/enterprise.js" async defer></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>Passaggi successivi
- Per scoprire di più sulle altre funzionalità di protezione degli account, consulta Funzionalità di protezione degli account utente.