la mia mod di minecraft mandava telemetria a un webhook senza alcun limite

cybersecurity · Oct 4, 2026 · 2 min read

ho scritto una mod per minecraft in java. una cosa piccola di qualità della vita, il tipo di progetto che si inizia di sabato perché vuoi un interruttore per la visione notturna un po' migliore. e a un certo punto, nel mezzo, ho deciso che sarebbe stato interessante sapere quante persone lo stessero davvero usando.

così ho aggiunto la telemetria. anonima, aggregata, innocua. la mod postava un piccolo json a un webhook ogni tanto.

ecco cosa non ho aggiunto:

  • un rate limit sul lato che riceve
  • un interruttore di consenso che chiunque potesse disattivare
  • autenticazione di qualsiasi tipo
  • nessuna riflessione sul fatto che un url dentro un client è un url che tutti possono leggere

cosa è successo davvero

il sorgente della mod è pubblico, quindi l'endpoint era pubblico. in pochi giorni il canale non riceveva più telemetria: riceveva la stessa riga migliaia di volte. un utente vero, poi uno script, poi uno script con un ciclo, poi due script con un ciclo.

il payload non valeva niente, ma il volume sì. e il guasto era quello imbarazzante: non riuscivo più a distinguere i miei utenti dall'abuso, perché avevo costruito una cosa in cui, dal lato di chi riceve, le due cose sembravano identiche.

perché il fatto che i dati fossero innocui non era una difesa

è la parte a cui torno sempre. il payload non conteneva niente. a uno script non importa. l'unica proprietà che rendeva pericoloso il mio endpoint era che accettava qualsiasi cosa da chiunque, veloce quanto la rete delivery.

dire "sono solo telemetria" non è un argomento di sicurezza. è una descrizione di ciò che all'attaccante non interessa.

la soluzione

non ho correttamente la mod e sperato che nessuno guardasse di nuovo. ho messo un filtro davanti all'endpoint, all'edge, su cloudflare, così che le richieste venissero respinte prima di arrivare a qualcosa che mi appartiene. l'edge è l'unico punto che può dire no a traffico che non sono stato io a invitare.

è una regola sola, ed è il pezzo di sicurezza più piccolo e migliore che abbia mai scritto.

cosa mi resta

  • un endpoint è pubblico dal momento in cui lo pubblichi, indipendentemente da chi avevi in mente
  • i limiti vanno messi all'edge, non nel client che li ha chiesti
  • se non riesci a distinguere un utente da un attacco, non hai la telemetria: hai un idrante
  • cancellare qualcosa è un controllo di sicurezza valido, e doveva essere la mia prima opzione, non l'ultima

la mod è ancora online. la telemetria no.