Pour Renaud Lifchitz, tout est histoire de rythme. Ce jeune mathématicien vient de mettre au point une technique de détection d’empreinte d’horloge capable de révéler l’existence d’une machine en particulier n’importe où à l’intérieur d’un LAN –même complexe- ou, mieux encore, à distance via le réseau public.
« Il s’agit bien de détecter une machine en particulier, et non un modèle au sein d’une marque » précise le chercheur. « Cette technique peut servir notamment à tracer un ordinateur « stratégique » que l’on a localisé précédemment avec des moyens classiques, puis qui a «disparu » suite à certains changements de configuration (modification des signatures système, des adresses IP ou MAC etc). Il s’agit donc plus d’un outil complémentaire aux méthodes de fingerprinting classique que d’une arme unique et universelle ».
Le principe utilisé est simple : électroniquement parlant, il est quasiment impossible de trouver deux machines dont l’horloge système soit absolument parfaite. Les capacités parasites, la taille des quartz utilisés pour les entrées Clk, les longueurs de « fillasse » que constituent les pistes d’un circuit imprimé, les dégagement de température des circuits adjacents… tout contribue à ce qu’un quartz dérive, et par conséquent affecte l’horloge « logicielle » (qui elle-même extrapole ses battements de la base de temps constituée par le quartz). « Et c’est cette dérive dans le temps, parfois proche d’une seconde par jour, qu’il suffit de mesurer pour en extraire un profil qui sera propre à chaque machine ». Une mesure relativement simple en fait. « Il suffit de posséder une horloge de référence stable, précise, qui servira de référentiel. De tels étalons temporels existent partout dans le monde. Ce peut être un radio-source, tel que DCF77, qui envoie ses signaux depuis Mainhausen, près de Francfort, ou encore WWV sur 5, 10, 15 MHz (émetteur de Fort Collins, USA, premier étalon césium international aisément utilisable). Ou encore une source temporelle stable locale (il se vend dans le commerce des standards de fréquence au césium ou au rubidium, généralement fort chers). Le plus simple étant encore d’utiliser les protocoles NTP et SNTP, qui permettent de synchroniser l’heure d’une machine depuis un étalon secondaire situé sur Internet.
A ce petit jeu, tous les noyaux ne sont pas égaux, explique Renaud Lifchitz. Les systèmes Windows ont des temps de latence relativement élevé, et il est donc conseillé d’utiliser une machine Linux pour servir de plateforme de référence temporelle et d’outil de recherche d’empreinte.
La suite de l’opération est simple : il ne reste plus qu’à écouter les échanges entre machines, puis de relever tous les « timestamp » que l’on peut trouver dans les en-têtes de leurs datagrammes par exemple. « Que la machine distante soit « à l’heure » ou non n’a strictement aucune importance, puisque ce qui nous intéresse, c’est une mesure relative, un échantillonnage de sa dérive ». Après une période de relevé plus ou moins longue (certaines mesures peuvent être relativement significatives même après quelques secondes si le nombre d’ordinateurs à identifier est faible) l’on établit une « droite caractéristique » par la méthode des moindres carrés. Cette méthode peut être affinée en prenant d’autres paramètres en compte, notamment la constance des écarts type ou l’irrégularité de l’horloge dans le temps.
Les contre-mesures envisageables sont simples. En premier lieu, asservir tous les postes de travail et les serveurs avec des étalons de fréquence, action dont la première conséquence serait de supprimer ou fortement diminuer la dérive des oscillateurs. Il n’est alors plus possible de distinguer une machine de l’autre, puisque toutes les machines sont « à l’heure » et y restent. L’autre approche, plus « informaticienne », consiste à filtrer tous les timestamp révélateurs, afin de ne donner aucune information à un quelconque observateur.
Itzik Kotler, Security Operation Center Team Leader chez Radware, et Ziv Gadot, Senior Security Researcher, réinventent le botnet. « Ce sont, en termes d’agilité technique, les malwares qui se sont le mieux adapté et qui savent le mieux muter pour échapper aux techniques de détection, explique Itzik Kotler. Reste que leur fragilité intrinsèque, leur fameux « single point of failure » demeure leur centre de commande. C’est en tuant les C&C que l’on peut venir à bout d’un botnet ». C’est ainsi qu’est venue l’idée d’un botnet « sans C&C », sans serveur unique, ou du moins utilisant n’importe quel site Web en guise de centre de commande. « Une partie de l’intelligence de TurBot se trouve sur le bot, qui va tenter de lire un certain nombre de sites définis à l’avance. Cela peut être le second article de la première page de CNN, une annonce de Craigslist ou toute autre petite annonce, voir un stream youtube, « twit » ou toute autre intervention publique effectuée sur un réseau social ». Charge au botmaster de définir un dictionnaire précis qui permette au bot d’interpréter un texte apparemment anodin en une suite de commandes précises. Cette technique n’est pas sans rappeler les « messages secrets passés dans les petites annonces du Times » des romans de Conan Doyle. Le seul défaut de ce système, c’est le temps de latence qui sépare l’opération de lecture du bot de la « mise en ligne » des commandes sur l’un des sites prédéfinis (la description du mécanisme de requêtes ayant été simplifiée par la rédaction dans un but de clarté). « Cette latence peut d’ailleurs être éliminée après la réception du premier ordre, si celui-ci inclus l’heure exacte de la prochaine lecture et l’URL sur laquelle le Bot devra aller chercher ses prochaines instructions » précise Kotler. Une nécessité si le Bot en question fait partie d’un botnet d’attaque en déni de service ou d’un pool de serveurs d’infection. Après un tel prototype de vecteur d’attaque, plus personne ne lira les annonces du Times Online ou de Rue 89 avec le même œil.
Existe-t-il des contre-mesures ? « Bien entendu, reprend Ziv Gadot. Nous travaillons actuellement sur quelques possibilités en laboratoire. En théorie, il serait possible de bloquer l’activité du botnet en inféodant simplement l’accès des sites à la saisie d’un Captcha ». Mais est-ce réaliste ? Les internautes accepteraient-il de saisir une « clef d’entrée » à chaque changement de site ? Une autre approche consisterait à détecter une activité anormale sur le poste client. Chose difficile dans le cadre d’une petite structure, un peu plus évidente sur un réseau important sur lequel il est possible d’envisager l’investissement d’un équipement d’analyse comportementale, capable de signaler des tentatives de connexions identiques sur un site en particulier.
TurBot représente-t-il un risque à court terme ? « difficile à dire, déclare Itzik Kotler. TurBot est une preuve de faisabilité, un « bot d’atelier » rédigé en python. Ce n’est pour nous qu’un axe de recherche, d’autant plus nécessaire que les auteurs de bots nocifs agissent vite et exigent de la part de ceux qui souhaitent les combattre une certaine imagination ». Les chercheurs et les curieux peuvent récupérer ce « bot prototype » sur googlecode.