Kontoübernahmen erkennen und verhindern

Mit Google Cloud Fraud Defense können Sie Kontoübernahmen auf Ihren Websites und in Ihren mobilen Anwendungen erkennen und verhindern. Um Konten vor Credential Stuffing und automatisierten Übernahmen zu schützen, können Sie die Verhaltensanalyse auf Kontoebene in Account Defense mit der Prüfung auf gehackte Anmeldedaten in Password Defense und der Multi-Faktor-Authentifizierung (MFA) kombinieren.

ATO-Angriffe wie Credential Stuffing treten in der Regel auf, wenn ein Angreifer Anmeldeanfragen mit Anmeldedaten sendet, die bei Datenpannen und Passwort-Dumps offengelegt wurden. Da Nutzer Passwörter häufig auf verschiedenen Websites wiederverwenden, können automatisierte Stuffing-Angriffe auch bei ordnungsgemäß konfigurierten Authentifizierungsendpunkten erfolgreich sein, sofern Sie nicht das Verhaltensrisiko und geleakte Anmeldedaten bewerten.

Hinweis

Umgebung für Google Cloud Fraud Defense vorbereiten

Kontoübernahmen erkennen und verhindern

Mit Fraud Defense können Sie ATOs mithilfe der folgenden Funktionen erkennen und verhindern:

Account Defense und den ATO-Risikowert verwenden

Account Defense ist die wichtigste Funktion zum Erkennen und Verhindern von Kontoübernahmen auf Websites und in mobilen Apps.

Account Defense bietet einen dedizierten ATO-Risikowert (accountDefenderAssessment.accountTakeoverVerdict.risk, von 0.0 bis 1.0) und Erklärbarkeitssignale (riskReasons und trustReasons). Diese Signale werten den Verhaltensverlauf auf Kontoebene zusammen mit Sitzungssignalen aus und bieten eine etwa viermal höhere Genauigkeit bei der ATO-Erkennung als Bot-Bewertungen allein.

Wenn Sie Account Defense einbinden möchten, übergeben Sie eine stabile Konto-ID im Feld user_info.account_id (event.userInfo.accountId), wenn Sie CreateAssessment aufrufen. Wenn die Kontokennung erst nach der Authentifizierung verfügbar ist, übergeben Sie account_id, wenn Sie AnnotateAssessment aufrufen.

Gehackte Passwörter erkennen

Da Kontoübernahmen häufig auf Credential Stuffing mit Anmeldedaten beruhen, die in Passwort-Dumps offengelegt wurden, sollten Sie Password Defense bei der Anmeldung, Passwortänderung und Passwortzurücksetzung verwenden, um kompromittierte Anmeldedaten zu erkennen.

Wenn Sie Anmeldedaten während einer Bewertung prüfen, vergleicht Password Defense den kanonisierten Nutzernamen und das Passwort-Hash-Präfix mit bekannten Datenpannen, ohne Google die Anmeldedaten im Klartext offenzulegen. Wenn Sie CreateAssessment aufrufen, übergeben Sie das Hash-Präfix (lookupHashPrefix) des Nutzernamens (credentials.username) und den Hash der verschlüsselten Anmeldedaten (encryptedUserCredentialsHash) in privatePasswordLeakVerification. Wenn das Ergebnis (leakedPasswordVerdict) auf gehackte Anmeldedaten hinweist, fordern Sie ein Zurücksetzen des Passworts an oder lösen Sie eine zusätzliche MFA-Bestätigung aus.

Bewertungsbasierte Schlüssel und Step-up-MFA verwenden

Wenn der ATO-Risikowert (accountDefenderAssessment.accountTakeoverVerdict.risk) oder der Bot-Wert (riskAnalysis.score) auf ein erhöhtes Risiko hinweist, verwenden Sie wertbasierte Schlüssel, um in Ihrer Anwendung eine zusätzliche Authentifizierung oder Multi-Faktor-Authentifizierung (MFA) als Erzwingungsmechanismus auszulösen. Sie können den Nutzer beispielsweise auffordern, einen zusätzlichen Faktor anzugeben, eine erneute Authentifizierung verlangen oder eine Bestätigung per Einmalpasswort (OTP) auslösen.

So implementieren Sie punktzahlbasierte Schlüssel und die schrittweise MFA:

  • Installieren Sie punktzahlbasierte Schlüssel, um Sitzungssignale zu erfassen und Automatisierung bei groß angelegten ATOs zu erkennen:

  • Wenn accountTakeoverVerdict.risk Ihren Risikoschwellenwert überschreitet oder riskAnalysis.score unter Ihren Bot-Schwellenwert fällt, lösen Sie eine Step-up-Authentifizierung oder eine MFA-Abfrage in Ihrem Identitätsanbieter aus, um die Kontoinhaberschaft bei der Anmeldung oder für sensible Aktionen zu bestätigen. Wenn Sie zusätzliche Aufgaben nur bei Anfragen mit erhöhtem Risiko auslösen, werden legitime Nutzer weniger gestört.

Das folgende Beispiel zeigt, wie Sie punktzahlbasierte Schlüssel in einen Anmelde-Workflow einbinden:

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>

Sie können mit diesem Code in JSFiddle experimentieren. Klicken Sie dazu in der oberen rechten Ecke des Codefensters auf das Symbol <>.

<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>

Nächste Schritte