Pour les lecteurs qui ne passent peut-être pas leur temps libre à regarder des bobines de PLA se dérouler lentement, The Spaghetti Detective (TSD) est un projet open source qui vise à utiliser la vision par ordinateur et l’apprentissage automatique pour identifier quand une impression 3D a échoué et a entraîné une pile de « spaghetti » en plastique sur la plaque de construction. Une fois que les utilisateurs ont installé le plugin OctoPrint, ils doivent le faire pointer vers un serveur auto-hébergé qui s’exécute sur une machine relativement puissante, ou le service cloud payant de TSD qui gère tout le gros du travail d’IA pour un abonnement mensuel.

Malheureusement, 73 de ces clients du cloud ont fini par obtenir un peu plus que ce qu’ils avaient prévu lorsqu’une erreur de configuration a permis à des inconnus de prendre le contrôle de leurs imprimantes. Dans un billet de blog franc, le fondateur de TSD, Kenneth Jiang, reconnaît l’erreur du 19 août et explique exactement ce qui s’est passé, qui a été touché et comment les modifications apportées au code côté serveur devraient empêcher des problèmes similaires à l’avenir.

Capture d'écran de l'interface Web de TSD
TSD permet aux utilisateurs de gérer et de surveiller à distance leurs imprimantes.

Pour mémoire, il semble qu’aucun dommage permanent n’ait été causé, et toutes les personnes potentiellement concernées par ce problème ont été informées. Il y avait une fenêtre d’opportunité assez étroite pour que quiconque tombe sur le problème en premier lieu, ce qui signifie que tous les mauvais acteurs auraient dû être particulièrement rapides sur leurs claviers pour proposer un complot néfaste visant à saboter les imprimantes connectées à TSD. Cela dit, un utilisateur s’est tourné vers Reddit pour montrer l’avertissement physique que son imprimante a craché; l’œuvre apparente d’un autre client qui a découvert le problème par lui-même.

Selon Jiang, le problème provenait de la façon dont TSD associe les imprimantes et les utilisateurs. Lorsque le serveur voit plusieurs connexions provenant de la même adresse IP publique, il est supposé qu’elles sont physiquement connectées au même réseau local. Cela permet au serveur de lier le plugin OctoPrint exécuté sur un Raspberry Pi au téléphone ou à l’ordinateur de l’utilisateur. Mais la nuit en question, un système d’équilibrage de charge mal configuré a cessé de transmettre les adresses IP sources au serveur. Cela a fait croire à TSD tous des imprimantes et des utilisateurs qui se sont connectés pendant cette période étaient sur le même réseau local, permettant à quiconque de se connecter avec la machine de son choix.

Code TSD modifié de GitHub
Le nouveau code transmis au référentiel TSD limite le nombre de périphériques pouvant être associés à une seule adresse IP.

La confusion n’a duré que six heures environ et, jusqu’à présent, seul un utilisateur a signalé que son imprimante était contrôlée à distance par un tiers. Après avoir corrigé la configuration d’équilibrage de charge, l’équipe a également poussé une mise à jour du code TSD qui limite le nombre d’imprimantes que le serveur associera à une adresse IP donnée. Cela semble être une précaution suffisamment raisonnable, bien qu’il ne soit pas immédiatement évident de savoir comment ce changement affecterait les utilisateurs qui souhaitent ajouter plusieurs imprimantes à leur compte en même temps, comme dans le cas d’une ferme d’impression.

Bien qu’il s’agisse sans aucun doute d’un faux pas embarrassant pour l’équipe de The Spaghetti Detective, nous pouvons au moins apprécier la rapidité avec laquelle ils ont traité le problème et leur transparence pour mettre le défaut en lumière. C’est également un excellent exemple de la façon dont l’open source permet à la communauté d’évaluer de manière indépendante les correctifs appliqués par le développeur en réponse à une faille découverte. Jiang dit que l’équipe lancera également son propre audit de sécurité complet, alors attendez-vous à ce que davantage de changements soient poussés vers le référentiel dans un proche avenir.

Nous avons été impressionnés par TSD lorsque nous l’avons couvert pour la première fois en 2019, et heureux de voir que le projet a prospéré depuis notre dernier enregistrement. La confiance est difficile à gagner et facile à perdre, mais nous espérons que la gestion de ce problème par l’équipe montre qu’ils ‘ êtes au courant des choses et prêts à faire ce qu’il faut pour leur communauté, même si cela signifie de temps en temps avoir des œufs sur le visage.