Ezequiel Pereira, un étudiant d’Uruguay de 18 ans, a gagné plus de 36 000 dollars auprès de Google après avoir découvert une vulnérabilité critique pouvant entraîner une exécution de code à distance dans Google App Engine.
Partie intégrante de l’offre Google Cloud, App Engine est un framework qui permet aux utilisateurs de développer et d’héberger des applications Web sur une plateforme sans serveur entièrement gérée.
« Il y a quelque temps, j’ai remarqué que chaque application Google App Engine (GAE) répondait à toutes les requêtes HTTP avec un en-tête “X-Cloud-Trace-Context“, donc je supposais que tout site Web retournant cet en-tête fonctionnait probablement sur GAE. Grâce à cela, j’ai appris que “appengine.google.com” fonctionnait lui-même sur GAE. Pourtant, il peut effectuer certaines actions qui ne peuvent pas être effectuées ailleurs tandis que les applications utilisateur communes ne peuvent pas faire de même. Alors j’ai essayé de découvrir comment cela se faisait ».
L’étudiant s’est dit que “appengine.google.com” devait utiliser une API unique, ou alors un autre moyen. Et c’est cet évènement qui a marqué le début de ses recherches.
Durant le processus, en février, il a réussi à accéder à un environnement de développement Google App Engine hors production. Une fois qu’il a obtenu l’accès, il a découvert qu’il pouvait utiliser certaines API internes de Google.
À ce moment, Pereira n’a remarqué aucun appel de l’API qu’il pouvait considérer comme étant dangereux. Toutefois, le 25 février 2018, il a fait un rapport à Google et sa vulnérabilité a reçu une cote de priorité P1, ce qui indique que le problème doit être résolu rapidement car il peut affecter un grand pourcentage d’utilisateurs. .
Après ce rapport initial, il a décidé d’aller plus en profondeur dans ses recherches. Pour se faire, il a parcouru à nouveau ses notes à la recherche d’une variation qui pouvait être utilisée pour mener à bien une attaque. C’est ainsi que, le 4 mars 2018, il a remarqué une autre API cachée dans les arguments qu’il a obtenu du lanceur binaire Java qui était appelée “app_config_service”.
« Le “app_config_service” dispose de plusieurs méthodes intéressantes, mais les méthodes les plus intéressantes pour moi étaient les méthodes “app_config_service.ConfigApp” et “app_config_service.SetAdminConfig“, car elles m’ont permis de définir des paramètres internes tels que les expéditeurs autorisés, le service de l’application Identifiant du compte, ignorer les restrictions de quota, et définir mon application comme une “SuperApp” (je ne sais pas ce que cela signifie, mais ça a l’air délirant) et lui donner accès à “FILE_GOOGLE3_ACCESS” », a-t-il expliqué.
Il est également tombé sur d’autres API et méthodes et il a fait un second rapport à Google le 5 mars 2018. Dans le courriel qu’il a reçu en retour le lendemain, son interlocuteur l’a d’abord remercié, lui a notifié que la sévérité du bogue a été augmenté et lui a signifié qu’il fallait qu’il arrête ses tests car il pourrait « facilement casser quelque chose en utilisant ces API internes ». Son interlocuteur lui a signifié que ce qu’il aurait pu faire de cet accès serait pris en compte au moment de la récompense.
Le verdict de Google est tombé le 13 mars 2018. Après sa propre analyse, l’éditeur a estimé que ces failles de sécurité auraient pu être exploités pour l’exécution de code à distance « en raison de la façon dont Google fonctionne ».
Aussi, Google a accordé au chercheur un total de 36 337 $ pour ses découvertes, dont 5 000 $ pour un problème moins grave. Le premier rapport a été envoyé à l’entreprise le 25 février, un correctif a été déployé entre le 6 mars et le 13 mars, a indiqué Pereira, qui a pris la peine de donner des détails sur ses découvertes mais également sur ses interactions avec Google.
Il faut préciser que ce n’est pas la première fois que Pereira découvre une faille dans les services Google. Au cours de ces dernières années, il a pu gagné plus de 10 000 dollars grâce au Bug Bounty de Google.
Il arrive que des chercheurs poussent leurs tests lorsque les fournisseurs semblent ne pas prendre en compte l’impact potentiel d’une vulnérabilité. Cependant, au moins dans le cas de Pereira, Google semble avoir calculé les paiements de primes de bogues en fonction de l’impact potentiel total.
En janvier, Google a attribué 112 500 $ à un chasseur de primes pour la divulgation d’une chaîne d’exploitation qui pourrait être utilisée pour compromettre les appareils mobiles Pixel.