web-dev-qa-db-fra.com

Quel est l'impact de la fuite d'une clé secrète de recaptcha?

En raison des configurations de serveur, notre clé secrète recaptcha était lisible publiquement.

La clé a été mise à jour pour une nouvelle, mais quel est l'impact réel d'un utilisateur malveillant en possession de la clé?

Documentation n'est pas clair sur l'impact

La clé secrète autorise la communication entre votre backend d'application et le serveur reCAPTCHA pour vérifier la réponse de l'utilisateur. La clé secrète doit être conservée en sécurité pour des raisons de sécurité.

10
hogarth45

Pas la réponse que j'aurais deviné, mais:

Dans ce cas particulier, il n'y a aucun impact.

Ce qui semble être une déclaration audacieuse pour une clé secrète divulguée, mais dans ce cas, je pense que l'avertissement de ne pas divulguer la clé secrète concerne davantage les meilleures pratiques que les préoccupations réelles. Comme il s'agit d'une réponse plutôt inhabituelle, je voudrais décomposer les éléments qui seraient normalement préoccupants et expliquer pourquoi ils ne s'appliquent pas ici:

1. Contourner la vérification du captcha

C'est évidemment une préoccupation majeure - si la clé secrète captcha divulguée permet à un attaquant de contourner la protection captcha, alors vous avez un problème grave. Cependant, la façon dont fonctionne le flux de recaptcha rend cela impossible. Plus important encore, la vérification est effectuée en envoyant la réponse de l'utilisateur à une API Google (à l'aide de la clé secrète) et en vérifiant la confirmation. De plus, la réponse ne peut être vérifiée qu'une seule fois spécifiquement pour empêcher les attaques de relecture. Cela ne laisse tout simplement pas de place à un attaquant disposant d'une clé secrète pour se placer au milieu et truquer une confirmation. C'est vraiment aussi simple que ça.

2. Informations d'identification d'accès large

Dans de nombreux cas, une seule clé peut être utilisée pour s'authentifier pour plusieurs services. Vous pourriez imaginer une clé secrète utilisée non seulement pour recaptcha mais également pour d'autres tâches administratives dans le système Google Cloud. La fuite d'une telle clé serait très dangereuse, car elle aurait potentiellement un impact presque illimité.

Il s'avère cependant que les clés de recaptcha semblent limitées uniquement pour une utilisation dans le système de recaptcha. Apparemment, cela est un peu isolé des autres services Google et il ne semble pas possible de créer une clé utilisée pour autre chose que recaptcha.

. Utilisation de services payants

Si vous payez pour un service basé sur l'utilisation, l'accès à la clé secrète donne effectivement à quelqu'un la possibilité d'utiliser le service et de vous le faire payer (bien que dans ce cas, vous devrez également avoir une clé publique configurée de manière permissive). Bien sûr, ce service est gratuit, ce qui n'aide personne.

4. DoS par limitation de débit

Celui-ci peut être un problème, bien que je ne le pense pas. De nombreux services Google gratuits ont une limitation de taux pour éviter une utilisation excessive ou pour vous déplacer vers un niveau payant en fonction de votre niveau d'utilisation. Si le point de terminaison de vérification est limité en taux, un attaquant avec votre clé secrète pourrait spammer le point de terminaison assez rapidement pour effectuer efficacement la DoS, empêchant votre service de vérifier les captchas. L'impact que cela a dépend de la façon dont votre service gère les tentatives de vérification rejetées.

Cependant, je ne vois aucune mention de limites de taux dans la documentation. Cela ne signifie pas nécessairement qu'il n'y a pas de limite, mais s'il n'y a pas de limite, cette attaque n'est certainement pas possible.

Résumé

Il est possible que j'ai raté quelque chose, mais je pense que pour une clé secrète recaptcha, il n'y a pas d'impact réel en raison d'une fuite. Je continuerais à suivre la suggestion et à la garder secrète. Il est toujours préférable de pratiquer les meilleures pratiques.

6
Conor Mancone

Le but de la clé est susceptible d'identifier/d'authentifier votre instance reCAPTCHA par rapport au backend de Google. En théorie, la clé ne devrait avoir aucun autre accès à votre compte Google.

Quel est le pire qui puisse arriver avec un captcha? La protection pourrait être contournée, permettant à un attaquant de spammer ou d'abuser de vos services. Maintenant, s'il est réellement possible de détourner reCAPTCHA de cette manière ou s'il y a des protections supplémentaires en place, je ne sais pas.

L'impact de cela dépendra des services qu'un attaquant peut abuser.

1
multithr3at3d