O Google Cloud Fraud Defense permite detectar e evitar sequestros de conta (ATOs, na sigla em inglês) em sites e aplicativos para dispositivos móveis. Para ajudar a proteger as contas contra ataques de preenchimento de credenciais e invasões automatizadas, combine a análise comportamental no nível da conta na Defesa da conta com verificações de credenciais comprometidas na Defesa de senha e na autenticação multifator (MFA) avançada.
Os ataques de ATO, como o ataque de preenchimento de credenciais, normalmente ocorrem quando um invasor envia solicitações de login usando credenciais expostas em violações de dados e despejos de senha. Como os usuários costumam reutilizar senhas em sites não relacionados, os ataques de preenchimento automatizados podem ser bem-sucedidos mesmo contra endpoints de autenticação configurados corretamente, a menos que você avalie o risco comportamental e as credenciais vazadas.
Antes de começar
Prepare seu ambiente para o Google Cloud Fraud Defense.
Detectar e prevenir ATOs
Com o Fraud Defense, é possível detectar e evitar ATOs usando os seguintes recursos:
- Defesa da conta e pontuação de risco de ATO
- Defesa de senha para detecção de vazamento de senhas
- Chaves baseadas em pontuação e MFA de verificação
Usar a defesa da conta e a pontuação de risco de ATO
A defesa da conta é o principal recurso para detectar e prevenir ATOs em sites e apps para dispositivos móveis.
A defesa da conta fornece uma
pontuação de risco de ATO
dedicada (accountDefenderAssessment.accountTakeoverVerdict.risk, que varia de 0.0 a
1.0) e indicadores de explicabilidade (riskReasons e trustReasons). Esses
indicadores avaliam o histórico comportamental no nível da conta, além de indicadores de sessão,
fornecendo uma precisão de detecção de ATO aproximadamente quatro vezes maior do que as pontuações de bot
sozinhas.
Para integrar a Defesa da conta, transmita um identificador de conta estável no campo user_info.account_id (event.userInfo.accountId ao chamar CreateAssessment.
Se o identificador da conta estiver disponível apenas após a autenticação, transmita
account_id ao chamar
AnnotateAssessment.
Detectar senhas vazadas
Como os ATOs geralmente dependem do ataque de preenchimento de credenciais com credenciais expostas em despejos de senha, use a Defesa de senha nos fluxos de login, alteração e redefinição de senha para detectar credenciais comprometidas.
Quando você verifica as credenciais durante uma avaliação, a Defesa de senha compara o nome de usuário canônico e o prefixo de hash da senha com violações de dados conhecidas sem expor as credenciais em texto simples ao Google. Ao chamar
CreateAssessment,
transmita o prefixo de hash (lookupHashPrefix) do nome de usuário (credentials.username) e
o hash de credenciais criptografadas (encryptedUserCredentialsHash) em
privatePasswordLeakVerification. Se o veredito (leakedPasswordVerdict)
indicar credenciais comprometidas, exija uma redefinição de senha ou acione um
desafio de MFA de nível superior.
Usar chaves baseadas em pontuação e MFA de step-up
Quando a pontuação de risco de ATO
(accountDefenderAssessment.accountTakeoverVerdict.risk) ou de bot
(riskAnalysis.score) indicar um risco elevado, use chaves baseadas em pontuação para acionar
a autenticação de aumento ou a autenticação multifator (MFA) no aplicativo
como mecanismo de aplicação. Por exemplo, solicite ao usuário um fator adicional, exija uma nova autenticação ou acione a verificação de senha única (OTP).
Para implementar chaves baseadas em pontuação e MFA de verificação, siga estas etapas:
Instale chaves baseadas em pontuação para coletar indicadores de sessão e detectar automação em ATOs em grande escala:
Web:chame
grecaptcha.enterprise.execute()nas suas páginas da Web. Para mais informações, consulte Instalar chaves baseadas em pontuação em sites.Dispositivos móveis:chame
execute()nos SDKs para dispositivos móveis. Para mais informações, consulte Integrar o Fraud Defense a apps Android ou Integrar o Fraud Defense a apps iOS.
Quando
accountTakeoverVerdict.riskexceder o limite de risco ouriskAnalysis.scoreficar abaixo do limite de bot, acione a autenticação de aumento ou um desafio de MFA no provedor de identidade para verificar a propriedade da conta no login ou para ações sensíveis. Acionar desafios adicionais seletivamente em solicitações de risco elevado reduz o atrito para usuários legítimos.
O exemplo a seguir mostra como integrar chaves baseadas em pontuação em um fluxo de trabalho de login:
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>
Você pode experimentar esse código no JSFiddle clicando no ícone <> no canto superior direito da janela de código.
<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>A seguir
- Para saber mais sobre outros recursos de proteção de contas, consulte Recursos de proteção de contas de usuário.