Un’analisi dettagliata dell’incidente di sicurezza di ieri sera
 

Ho sbagliato. È stata la prima violazione della sicurezza che The Spaghetti Detective ha avuto in 2 anni della sua esistenza. Ma è stata una cosa imbarazzante che non riesco a perdonare a me stessa.

Quello che è successo? #
Ieri sera ho commesso uno stupido errore quando ho riconfigurato il cloud TSD per renderlo più efficiente e correre più veloce. Il mio errore ha creato una vulnerabilità di sicurezza per circa 8 ore. Gli utenti che in quel momento stavano collegando una stampante sono stati in grado di vedere la stampante dell’altro tramite il rilevamento automatico e sono stati anche in grado di collegarsi a loro! Siamo stati informati di un caso in cui un utente ha avviato una stampa sulla stampante di qualcun altro .

Di conseguenza, 73 utenti sono stati colpiti. Non è un numero enorme. Ci sono bug che colpiscono molti più utenti. Ma la conseguenza è molto grave. Nessuno vuole che le proprie stampanti siano collegate e controllate da un altro account.

Ho creato The Spaghetti Detective per consentire a tutti gli appassionati di stampa 3D di avere un modo per monitorare in sicurezza le proprie stampanti da qualsiasi luogo. E questo è uno dei peggiori errori che posso fare. Le mie sincere scuse alla nostra comunità per questo orribile errore.

I dettagli tecnici #
Uno dei modi in cui gli utenti possono collegare le proprie stampanti ai propri account TSD è tramite il “rilevamento automatico”. Il rilevamento automatico si basa sul fatto che quando i dispositivi sulla stessa rete locale tentano di connettersi a Internet, avranno lo stesso indirizzo IP pubblico. Quindi il server TSD può abbinare il Raspberry Pi con il computer/telefono che si trova nella stessa rete locale per consentire loro di scoprirsi a vicenda.

Ieri sera, quando ho eseguito la riconfigurazione del bilanciatore del carico , ho commesso un errore mancando una configurazione per consentire al bilanciatore del carico di passare l’indirizzo IP pubblico del client connesso al server TSD di backend. Invece, il sistema di bilanciamento del carico passerebbe semplicemente il proprio indirizzo IP al server.

Di conseguenza, il server ha ottenuto lo stesso indirizzo IP per gli utenti che collegavano contemporaneamente la propria stampante a TSD. Il server pensava che fossero sulla stessa rete locale e quindi ha permesso loro di collegare la stampante dell’altro!

La portata dell’impatto e cosa abbiamo fatto per risolverlo #
Il nostro database mostra che durante il periodo dell’incidente, 73 utenti hanno cercato di collegare le loro stampanti ai loro account TSD. Era altamente improbabile che stessero tutti cercando di collegarsi esattamente allo stesso tempo, ma per abbondanti precauzioni, abbiamo adottato le seguenti misure:

Disattivato la funzione di rilevamento automatico non appena abbiamo rilevato questa vulnerabilità di sicurezza e quindi impedito a questo problema di avere un impatto su più utenti.
Disabilitato il token di sicurezza per tutte le stampanti che appartenevano a questi 73 utenti interessati. Una volta disabilitato un token, il plug-in TSD rifiuterà di fidarsi del server e quindi non potrà più essere controllato da remoto. Solo le persone che hanno accesso fisico a quella stampante possono farlo.
Invia e-mail a tutti questi 73 utenti per informarli su cosa è successo e sui modi per riavere la loro stampante.
Gli utenti che non si collegavano durante questo periodo non sono stati interessati. Nessun dato utente, credenziali di accesso o altri dati sono stati violati.

Domande frequenti #
Il mio account TSD è interessato? Se sì, cosa dovrei fare al riguardo? #
Se tu fossi uno dei 73 utenti interessati, avresti ricevuto un’e-mail separata da noi.

Se eri uno degli utenti interessati, abbiamo disabilitato il token della stampante in modo che non possa essere connesso in remoto. Dovrai ricollegare la tua stampante per ripristinarla in TSD.

Se non hai ricevuto e-mail da noi, non sei stato interessato.

Il server TSD self-hosted è stato interessato dal problema tecnico? #
Il tuo server privato lo farà se tutti questi sono veri:

il tuo server privato è esposto a Internet.
Hai un proxy inverso, come nginx seduto di fronte al server privato.
Il proxy inverso è configurato per non passare l’IP del client
Qualcuno che conosce l’indirizzo del tuo server si connette al tuo server per collegare la sua stampante mentre stai cercando di collegare la tua.
Si prega di aggiornare il codice del server per farlo riparare in modo permanente.

Cronologia dettagliata #
2021-08-19 6:29 UTC. Il sistema di bilanciamento del carico è stato riconfigurato. L’inizio di questa vulnerabilità di sicurezza.
2021-08-19 ~11:00 UTC. Uno dei nostri ingegneri (Shutout to Bence Tamas) ha notato che poteva vedere le stampanti di altri utenti. Ha subito iniziato a indagare sul problema.
2021-08-19 ~12 PM UTC. È stata identificata la possibile causa del problema (bilanciamento del carico non configurato correttamente). In base alla gravità del problema, abbiamo deciso di disabilitare la funzione di rilevamento automatico.
2021-08-19 12:33 UTC. Una versione con patch del server viene inviata alla produzione per evitare che questo problema abbia un impatto su più utenti. Inoltre, sono iniziati i lavori per identificare gli utenti potenzialmente interessati.
2021-08-19 ~13:30 UTC. Il primo batch di utenti e stampanti potenzialmente interessati viene identificato e disabilitato.
2021-08-19 ~ 14:00 UTC. Il secondo lotto di utenti e stampanti potenzialmente interessati viene identificato e disabilitato.
2021-08-19 20:22 UTC. Abbiamo inviato un’e-mail a tutti gli interessati per l’accaduto, con le istruzioni su cosa potevano fare per riavere le loro stampanti.
2021-08-19 21:16 UTC. Confermato il codice che impedirà il ripetersi dello stesso problema .
Cosa abbiamo imparato #
Non voglio ricoprirlo di zucchero. Questa è una grave vulnerabilità di sicurezza. Ho creato The Spaghetti Detective per consentire a tutti gli appassionati di stampa 3D di avere un modo per monitorare in sicurezza le proprie stampanti da qualsiasi luogo. Questo è uno dei peggiori errori che posso fare.

Mi sono sinceramente scusato con tutti voi che ci avete accordato la vostra fiducia quando avete scelto TSD. Sono orgoglioso di ciò che ho fatto in TSD, ma questo incidente ha chiarito che devo ancora migliorare in quello che faccio!

Inizieremo immediatamente un controllo di sicurezza per il nostro codice per tappare buchi come questo. The Spaghetti Detective è open-source qui . Se hai esperienza in materia di sicurezza, aiutaci a verificare il codice e inviaci eventuali vulnerabilità se le trovi. Trasparenza e apertura sono ciò in cui crediamo.

Ultimo ma non meno importante: le persone sono fondamentalmente buone. Molte persone che hanno commentato su reddit e sul server discord di TSD hanno espresso la loro volontà di concederci il beneficio del dubbio. Non vediamo i troll. Vediamo solo fantastici appassionati di stampa 3D che perdonano e sono disposti ad aiutarci a migliorare. Questa è stata, e sarà sempre, la motivazione definitiva per rendere TSD migliore, più veloce e sì, più sicuro!

Kenneth Jiang, fondatore di TSD

Di Fantasy

Lascia un commento