mon mod minecraft envoyait de la télémétrie vers un webhook sans aucune limite

cybersecurity · Oct 4, 2026 · 2 min read

j'ai écrit un mod minecraft en java. une petite chose de confort, le genre de projet que l'on commence un week-end parce qu'on veut un meilleur interrupteur de vision nocturne. et quelque part au milieu, j'ai décidé qu'il serait intéressant de savoir combien de personnes l'utilisaient vraiment.

donc j'ai ajouté de la télémétrie. anonyme, agrégée, inoffensive. le mod envoyait une petite charge json à un webhook de temps en temps.

voici ce que je n'ai pas ajouté :

  • une limite de débit du côté du récepteur
  • un interrupteur de consentement que n'importe qui puisse désactiver
  • une authentification d'aucune sorte
  • aucune réflexion sur le fait qu'une url à l'intérieur d'un client est une url que tout le monde peut lire

ce qui s'est réellement passé

le code du mod est public, donc le point d'accès l'était aussi. en quelques jours le canal ne recevait plus de la télémétrie : il recevait la même ligne des milliers de fois. un vrai utilisateur, puis un script, puis un script avec une boucle, puis deux scripts avec une boucle.

la charge était sans valeur, mais le volume ne l'était pas. et le mode de défaillance était celui qui fait honte : je ne pouvais plus distinguer mes propres utilisateurs de l'abus, parce que j'avais construit quelque chose où ces deux choses se ressemblaient du côté du récepteur.

pourquoi le fait que les données soient inoffensives n'était pas une défense

c'est la partie sur laquelle je reviens toujours. la charge ne contenait rien. un script s'en fiche. la seule propriété qui rendait mon point d'accès dangereux était qu'il acceptait quoi que ce soit de quiconque, aussi vite que le réseau pouvait livrer.

dire « ce n'est que de la télémétrie » n'est pas un argument de sécurité. c'est la description de ce dont l'attaquant se moque.

le correctif

je n'ai pas corrigé le mod en espérant que plus personne ne regarderait. j'ai mis un filtre devant le point d'accès, au bord, dans cloudflare, pour que les requêtes soient rejetées avant d'atteindre quoi que ce soit qui m'appartienne. le bord est le seul endroit qui peut dire non à du trafic qu'il ne m'a pas laissé inviter.

c'est une règle, et c'est le plus petit et le meilleur travail de sécurité que j'aie jamais fait.

ce que j'en retiens

  • un point d'accès devient public dès que tu le publies, peu importe pour qui tu le voulais
  • les limites appartiennent au bord, pas au client qui les a demandées
  • si tu ne peux pas distinguer un utilisateur d'une attaque, tu n'as pas de la télémétrie, tu as un tuyau d'incendie
  • supprimer quelque chose est un contrôle de sécurité valable, et ça aurait dû être ma première option plutôt que ma dernière

le mod est toujours dehors. la télémétrie non plus.