Dimanche, pendant la conférence Defcon 21 sur la sécurité qui se tenait à Las Vegas, un chercheur a montré comment utiliser les dernières technologies web pour construire un système de stockage de fichiers sécurisé et distribué reposant sur le chargement d'un morceau de code JavaScript dans les navigateurs web des utilisateurs, à leur insu. Le système appelé HiveMind, a été mis au point par Sean T. Malone, consultant en sécurité chez FusionX, une entreprise spécialisée dans les tests de pénétration. Son système s'inspire du schéma des botnets. HiveMind se base sur des technologies type HTML5 WebSockets et Web Storage également utilisées par les applications Web légitimes.

Il ne s'agit en aucun cas d'un programme exploitant une faille et aucune parade ne permet de l'empêcher, a déclaré le consultant. Par contre, la construction du réseau de zombies repose sur le chargement, par les navigateurs, d'un morceau de code JavaScript et implique le stockage des données sur les ordinateurs de tierces personnes », a-t-il convenu, reconnaissant qu'on était là dans une zone juridique un peu flou.  « C'est un projet de recherche, pas un logiciel de production », a-t-il dit. « Je ne suis pas avocat, je n'ai donc pas l'intention de donner de conseils juridiques à quiconque sur le sujet », a-t-il dit, ajoutant que tout le monde était responsable de ce qu'il ferait avec le logiciel qu'il prévoit de sortir plus tard cette semaine.

Un serveur proxy anonyme

Le code HiveMind JavaScript peut être distribué aux navigateurs de différentes façons : soit en l'hébergeant sur des sites légitimes ou illégaux, soit à travers un réseau de publicité, ce qui veut dire que le code peut-être diffusé par plusieurs sites web. Pour ses recherches, Sean T. Malone a mis en place un serveur proxy web anonyme qui a été ensuite ajouté à des listes de proxy. Chaque fois que quelqu'un utilise le serveur proxy pour accéder à une page web, le serveur injecte du code HiveMind JavaScript dans cette page. Selon le chercheur, plus 20 000 adresses IP uniques se sont connectées à son serveur proxy toutes les dix minutes. Ces adresses ont été recrutées comme noeuds dans son réseau de zombies.

HiveMind dispose d'un serveur de commande et de contrôle (C&C) qui utilise une base de données SQL pour garder une trace de tous les fichiers et des noeuds - les navigateurs exécutant le code JavaScript - sur lesquels ils sont distribués. Quand un fichier est téléchargé vers le serveur, il est chiffré avec le protocole Advanced Encryption Standard (AES) avec un mot de passe fourni par l'envoyeur. Le fichier crypté se divise en plusieurs blocs qui sont répartis entre les différents noeuds. « Chaque fichier peut avoir un mot de passe différent », a expliqué le chercheur.