Présentation de la gestion des robots Google Cloud Armor

Google Cloud Armor et reCAPTCHA Enterprise fournissent des outils pour vous aider à évaluer et à traiter les requêtes entrantes susceptibles de provenir de clients automatisés.

reCAPTCHA Enterprise utilise des techniques avancées d'analyse des risques pour distinguer les utilisateurs humains des clients automatisés. reCAPTCHA Enterprise évalue l'utilisateur en fonction de la configuration des clés de site WAF reCAPTCHA. Il émet ensuite un jeton chiffré avec des attributs qui représentent le risque associé. Google Cloud Armor déchiffre ce jeton en ligne, sans requête ni réponse supplémentaire au service reCAPTCHA Enterprise. En fonction des attributs de jeton, Google Cloud Armor vous permet d'autoriser les requêtes entrantes, de les refuser, d'en limiter le débit ou de les rediriger. Pour en savoir plus, consultez la présentation de l'intégration de Google Cloud Armor et reCAPTCHA Enterprise.

La gestion des bots de Google Cloud Armor intègre les fonctionnalités suivantes.

  • Test manuel (page de test reCAPTCHA)

    • Vous devez configurer une règle de stratégie de sécurité pour rediriger une requête vers l'évaluation reCAPTCHA Enterprise.
    • Vous pouvez créer votre propre clé de site reCAPTCHA Enterprise WAF et l'associer à votre stratégie de sécurité. Nous vous recommandons vivement de le faire. Pour plus d'informations, consultez la section Mettre en œuvre un test reCAPTCHA.
    • Permet de n'autoriser que les utilisateurs finaux répondant correctement à la question d'authentification manuelle reCAPTCHA Enterprise, en redirigeant les utilisateurs finaux pour l'évaluation reCAPTCHA Enterprise.
  • Appliquer l'évaluation fluide de reCAPTCHA Enterprise

    • Vous pouvez effectuer différentes actions sur les requêtes entrantes, en fonction de l'évaluation réalisée par reCAPTCHA Enterprise du risque que la requête provienne d'un bot. Vous pouvez écrire des règles de stratégie de sécurité pour évaluer et filtrer le trafic en fonction du score de jeton et d'autres attributs de jeton.
    • Vous devez implémenter des jetons d'action reCAPTCHA Enterprise, des jetons de session ou les deux. Les jetons d'action reCAPTCHA sont compatibles avec les applications exécutées sur des sites Web, iOS et Android. Les jetons de session reCAPTCHA ne sont acceptés que sur les sites Web. Pour en savoir plus sur les jetons reCAPTCHA, consultez les pages Jetons d'action reCAPTCHA et Jetons de session reCAPTCHA.
    • Vous devez configurer une règle de stratégie de sécurité qui évalue les jetons reCAPTCHA Enterprise.
    • Pour éviter le vol de jetons, nous vous recommandons d'associer vos propres clés reCAPTCHA Enterprise pour WAF à votre règle de stratégie de sécurité.

La gestion des bots Google Cloud Armor inclut également les fonctionnalités suivantes.

  • Redirection (302)
    • Vous pouvez rediriger les requêtes vers l'URL alternative que vous avez configurée, en paramétrant Google Cloud Armor pour diffuser une réponse HTTP 302 au client.
  • Décorer la requête
    • Vous pouvez insérer des en-têtes personnalisés dans les requêtes, et des valeurs statiques dans ces en-têtes, avant d'envoyer par proxy les requêtes vers vos backends.

Cas d'utilisation

Cette section explique comment utiliser les fonctionnalités de gestion des bots de Google Cloud Armor pour limiter les risques liés aux bots et contrôler les accès émanant de clients automatisés.

Utiliser un défi d'authentification manuel pour distinguer les utilisateurs légitimes des clients automatisés

Vous pouvez rediriger une requête vers reCAPTCHA Enterprise afin d'évaluer le client final et de le soumettre si nécessaire à des questions d'authentification manuelle, sans aucune intégration supplémentaire de reCAPTCHA Enterprise. Lorsque des utilisateurs humains partagent la même signature (par exemple des chemins d'URL ou d'autres signatures L7) qu'un bot ou qu'un système défini comme abusif, cette action leur permet de prouver qu'ils sont humains. Seuls les utilisateurs qui réussissent l'évaluation peuvent accéder à votre service.

Le schéma suivant montre comment un défi d'authentification manuel distingue si une requête provient d'un client humain ou automatisé :

Exemple de redirection vers reCAPTCHA
Exemple de redirection vers reCAPTCHA (cliquez pour agrandir).

Supposons qu'un utilisateur Maya et un bot parcourent tous les deux la page de connexion (/login.html) de votre site. Pour autoriser l'accès à l'utilisateur Maya sans accorder l'accès au bot, vous pouvez configurer une règle de stratégie de sécurité avec l'expression de correspondance avancée request.path.matches("/login.html"), avec une action redirect de typeGOOGLE_RECAPTCHA. Voici comment se déroule l'ensemble de l'expérience utilisateur :

  1. Un utilisateur final visite votre site pour la première fois.
  2. Google Cloud Armor évalue la requête et détermine une redirection vers reCAPTCHA Enterprise.
  3. reCAPTCHA Enterprise répond par une page HTML avec le code JavaScript reCAPTCHA Enterprise intégré.
  4. Une fois la réponse affichée, le code JavaScript intégré s'exécute afin d'évaluer l'utilisateur, en le soumettant si nécessaire à des questions d'authentification manuelle.
    • Si l'utilisateur réussit l'évaluation, reCAPTCHA Enterprise émet un cookie d'exception, qui est automatiquement associé par le navigateur à chacune des requêtes ultérieurement adressées au même site, jusqu'à l'expiration du cookie.
    • Sinon, reCAPTCHA Enterprise n'émet pas de cookie d'exception.

Dans cet exemple, seul l'utilisateur Maya réussit l'évaluation reCAPTCHA Enterprise et reçoit un cookie d'exception permettant d'accéder à votre site.

Lorsque vous utilisez des questions d'authentification manuelle, nous vous recommandons de créer votre propre clé de site WAF reCAPTCHA et de l'associer à la stratégie de sécurité. Cela vous permet d'afficher les métriques reCAPTCHA Enterprise associées à la clé de site et d'entraîner un modèle de sécurité spécifique à la clé de site. Pour en savoir plus, consultez la section Créer une clé de site de test WAF reCAPTCHA.

Si vous ne créez et n'associez pas de clé de site, reCAPTCHA Enterprise utilise une clé de site gérée par Google lors de l'évaluation. Vous ne pouvez pas afficher les métriques reCAPTCHA associées à des clés de site qui ne vous appartiennent pas, y compris les clés de site gérées par Google.

Appliquer l'évaluation reCAPTCHA Enterprise

Lorsqu'un jeton reCAPTCHA Enterprise est associé à une requête entrante, Google Cloud Armor évalue la requête et applique l'action configurée en fonction des attributs individuels du jeton. L'évaluation des stratégies de sécurité Google Cloud Armor s'effectue à la périphérie du réseau de Google. Vos backends ne sont donc pas impliqués dans le déchiffrement du jeton.

Jetons reCAPTCHA Enterprise

reCAPTCHA Enterprise émet deux types de jetons : les jetons d'action et les jetons de session. Les deux types de jetons renvoient un score pour chaque requête en fonction des interactions avec votre site ou votre application. Les deux types de jetons contiennent des attributs, y compris un score qui représente le risque associé à l'utilisateur. Ils contiennent également des informations sur la clé reCAPTCHA Enterprise que vous avez utilisée lors de la génération du jeton.

Avant de configurer des règles de stratégie de sécurité, vous devez décider si vous allez utiliser des jetons d'action, des jetons de session, ou bien les deux. Nous vous recommandons de lire la documentation de reCAPTCHA Enterprise pour vous aider à prendre votre décision. Pour en savoir plus, consultez la comparaison des cas d'utilisation de reCAPTCHA Enterprise.

Après avoir déterminé le type de jeton à utiliser, vous devez intégrer reCAPTCHA Enterprise pour que le jeton soit associé à une requête. Pour en savoir plus sur l'implémentation de jetons dans reCAPTCHA Enterprise, consultez les pages suivantes:

Enfin, utilisez le langage des règles Google Cloud Armor pour configurer des règles de stratégie de sécurité permettant d'évaluer les jetons reCAPTCHA Enterprise associés à la requête. Pour éviter le vol de jetons, nous vous recommandons vivement d'associer vos clés reCAPTCHA Enterprise à vos règles de stratégie de sécurité. Lorsque vous associez des clés reCAPTCHA à une règle de stratégie de sécurité, Google Cloud Armor effectue une validation supplémentaire sur le jeton en comparant la clé reCAPTCHA du jeton aux clés reCAPTCHA associées à la règle. Google Cloud Armor considère un jeton avec une clé reCAPTCHA inconnue comme non valide. Pour en savoir plus, découvrez comment appliquer l'évaluation fluide de reCAPTCHA Enterprise.

La figure suivante illustre le flux d'application des jetons reCAPTCHA Enterprise.

Flux d'application de jetons reCAPTCHA
Flux d'application des jetons reCAPTCHA (cliquez pour agrandir).

Redirection (réponse 302)

Vous pouvez utiliser une action de redirection basée sur l'URL pour rediriger les requêtes en externe vers un point de terminaison différent. Vous fournissez une cible de redirection sous la forme d'une URL, et Google Cloud Armor redirige la requête en envoyant une réponse HTTP 302 au client.

Décorer la requête

Google Cloud Armor peut insérer des en-têtes de requêtes personnalisés avec des valeurs définies par l'utilisateur, avant de transmettre les requêtes par proxy à votre application. Cette option vous permet de taguer les requêtes suspectes pour un traitement alternatif en aval, tel que la diffusion d'un pot de miel, ou pour une analyse et une surveillance supplémentaires. Notez que ce paramètre d'action doit être ajouté à une action allow existante.

En-têtes personnalisés

Si vous avez configuré Google Cloud Armor pour insérer un en-tête ou une valeur personnalisés ayant le même nom d'en-tête que l'un des en-têtes personnalisés de l'équilibreur de charge d'application externe global ou de l'équilibreur de charge d'application classique, la valeur de l'en-tête est écrasée par l'équilibreur de charge. Pour en savoir plus, consultez la page Créer des en-têtes personnalisés dans les services de backend.

En outre, si vous choisissez un nom d'en-tête déjà présent dans la requête, y compris les en-têtes HTTP standards, la valeur d'origine de cet en-tête est écrasée par la valeur définie par l'utilisateur dans la règle Google Cloud Armor.

Intégrer avec une limitation de débit

Les règles de limitation de débit de Google Cloud Armor sont compatibles avec les fonctionnalités de gestion des bots. Par exemple, vous pouvez rediriger une requête vers une évaluation reCAPTCHA Enterprise, ou vers une autre URL lorsque le nombre de requêtes dépasse le seuil configuré. En outre, vous pouvez identifier les clients soumis à limitation de débit en fonction de cookies d'exception ou de jetons reCAPTCHA Enterprise, afin de limiter les requêtes ou d'exclure les clients qui réutilisent ou font une utilisation abusive d'un même cookie ou d'un même jeton, à un débit supérieur au seuil configuré par l'utilisateur.

Configurer une limitation de débit pour les cookies d'exception ou les jetons reCAPTCHA Enterprise

Pour des raisons de sécurité, nous vous recommandons de configurer des règles de limitation de débit pour éviter l'utilisation abusive de jetons, en détectant les cas d'utilisations multiples pour un même jeton d'action, jeton de session ou cookie d'exception reCAPTCHA. Le tableau suivant montre comment définir un cookie d'exception ou un jeton reCAPTCHA Enterprise comme clé d'une règle de limitation de débit.

Ressource enforce_on_key enforce_on_key_name
Cookie d'exception HTTP-COOKIE recaptcha-ca-e
Jeton d'action HTTP-HEADER X-Recaptcha-Token
Jeton de session HTTP-COOKIE recaptcha-ca-t

Vous pouvez limiter les requêtes ou exclure les clients qui dépendent du même cookie d'exception ou du même jeton, et qui dépassent le seuil configuré. Pour plus d'informations sur les paramètres de limitation de débit, consultez la section Appliquer la limitation du débit.

Exemples de limitation du débit

Supposons tout d'abord que vous n'utilisiez que des questions d'authentification manuelle sur une sélection d'URL (/login.html, par exemple) de votre site. Pour ce faire, configurez les règles de stratégie de sécurité comme suit :

  • Règle 1 : si un cookie d'exception valide est associé à la requête et que le nombre d'utilisations du cookie d'exception est inférieur au seuil défini, alors autoriser la requête.
  • Règle 2 : rediriger la requête vers l'évaluation reCAPTCHA Enterprise.
Appliquez des questions d'authentification manuelles.
Appliquer des questions d'authentification manuelles (cliquez pour agrandir).

Ensuite, supposons que vous n'utilisiez que des jetons d'action ou de session sur votre site. Par exemple, vous pouvez utiliser des jetons d'action pour protéger les actions utilisateur les plus significatives, telles que /login.html. Pour ce faire, engagez des actions en fonction du score du jeton d'action, selon les règles suivantes :

  • Règle 1 : lorsque le score du jeton d'action est supérieur à un seuil prédéfini (0.8, par exemple), autoriser la requête si le nombre d'utilisations du jeton d'action est inférieur au seuil défini.
  • Règle 2 : refuser la requête.
Appliquez l'évaluation des jetons d'action reCAPTCHA Enterprise.
Appliquer l'évaluation des jetons d'action reCAPTCHA Enterprise (cliquez pour agrandir).

Vous pouvez configurer des règles de stratégie de sécurité similaires pour appliquer l'évaluation reCAPTCHA Enterprise des jetons de session.

Supposons enfin que vous combiniez des jetons d'action ou des jetons de session avec des questions d'authentification manuelle sur une sélection d'URL (telles que /login.html) et que vous souhaitiez engager des actions en fonction du score du jeton d'action. En outre, vous voulez donner une deuxième chance à l'utilisateur en le soumettant à des questions d'authentification si le score n'est pas satisfaisant. Pour ce faire, configurez les règles de stratégie de sécurité comme suit :

  • Règle 1 : lorsque le score du jeton d'action est supérieur à un seuil prédéfini (0.8, par exemple), autoriser la requête si le nombre d'utilisations du jeton d'action est inférieur au seuil défini.
  • Règles 2 et 3 : lorsque le score du jeton d'action est supérieur à un autre seuil prédéfini (0.5, par exemple), rediriger la requête vers l'évaluation reCAPTCHA Enterprise, sauf s'il existe un cookie d'exception valide associé à la requête et si le nombre d'utilisations du cookie d'exception est inférieur au seuil que vous avez défini.
  • Règle 4 : refuser la requête.
Appliquez l'évaluation des jetons d'action reCAPTCHA Enterprise à l'aide de questions d'authentification manuelles.
Appliquez l'évaluation des jetons d'action reCAPTCHA Enterprise à l'aide de questions d'authentification manuelles (cliquez pour agrandir).

Vous pouvez configurer des règles de stratégie de sécurité similaires pour appliquer l'évaluation reCAPTCHA Enterprise des jetons de session avec des questions d'authentification manuelle.

Si vous n'ajustez pas les règles de limitation du débit, Google Cloud Armor n'impose aucune limite au nombre d'utilisations pour chaque jeton d'exception reCAPTCHA, jeton d'action et jeton de session. Pour les jetons d'action, nous vous recommandons d'utiliser un seuil faible (1, par exemple) et un intervalle de temps élevé (30 minutes, par exemple, car les jetons d'action sont valides pendant 30 minutes). Nous vous recommandons de déterminer le seuil en fonction de vos statistiques de trafic.

Étapes suivantes