Kontoübernahmen erkennen und verhindern

Auf dieser Seite wird beschrieben, wie Sie mit Google Cloud Fraud Defense Kontoübernahmen erkennen und verhindern.

ATO-Angriffe treten in der Regel auf, wenn ein Angreifer Anfragen zum Anmelden bei API-Endpunkten mit Anmeldedaten sendet, die aus einer Datenpanne stammen, auch als Passwort-Dump bezeichnet. Diese Art von Angriff kann erfolgreich sein, selbst wenn der Kennwort-dump von einer anderen Website stammt, da Menschen dazu neigen, Kennwörter über mehrere Konten hinweg wiederzuverwenden. Diese Art von Angriff betrifft keine Nutzer, die auf eine gute Passwort-Hygiene achten, z. B. durch die Verwendung eines Passwortmanagers.

Hinweis

Umgebung für Google Cloud Fraud Defense vorbereiten

Kontoübernahmen erkennen und verhindern

Mit Fraud Defense können Sie ATOs mit einer der folgenden Optionen erkennen und verhindern:

Das Kästchen „Ich bin kein Roboter“ verwenden

Das Hinzufügen des Kontrollkästchens Ich bin kein Roboter zu Ihrer Website ist der schnellste und einfachste Weg, um einen gewissen Schutz gegen ATOs zu bieten, ohne zusätzliche Funktionen wie SMS- oder E-Mail-Bestätigung integrieren zu müssen. Es verursacht Kosten für einen Angreifer, diesen Schutz aufzuheben. Diese Option kann für einige Websites ausreichend sein.

Fügen Sie das Kästchen „Ich bin kein Roboter“ auf Ihren Webseiten hinzu.

Der folgende Code ist ein Live-Beispiel für eine Anmeldeseite, die durch das Kästchen geschützt ist:

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>

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

Punkte und individuelle Wettkämpfe verwenden

Um sich vor ATOs zu schützen, verwenden Sie die auf dem Fraud Defense-Score basierenden Schlüssel und Multi-Faktor-Authentifizierungsverfahren (MFA), z. B. E-Mail- und SMS-Verfahren, bei denen Einmalcodes an den Nutzer gesendet werden.

Wenn Sie punktzahlbasierte Schlüssel und individuelle Wettkämpfe verwenden möchten, haben Sie folgende Möglichkeiten:

Je nach Anwendungsfall können Sie die MFA allein oder mit scorebasierten Schlüsseln verwenden. Sie können beispielsweise MFA-Herausforderungen nur für Werte unter einem bestimmten Schwellenwert verwenden, um die Reibung zu verringern.

Das folgende Beispiel zeigt, wie Sie scorebasierte Schlüssel in das Anmeldeszenario 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" 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>

Nächste Schritte